The Directions class from the module provides access to the Mapbox Directions API. You can also import it directly from the mapbox module.

>>> from mapbox import Directions

See for general documentation of the API.

Your Mapbox access token should be set in your environment; see the access tokens documentation for more information.

Directions methods

The methods of the Directions class that provide access to the Directions API return an instance of requests.Response. In addition to the json() method that returns Python data parsed from the API, the Directions responses provide a geojson() method that converts that data to a GeoJSON like form.


To get travel directions between waypoints, you can use the Directions API to route up to 25 points. Each of your input waypoints will be visited in order and should be represented by a GeoJSON point feature.

>>> service = Directions()

The input waypoints to the directions method are features, typically GeoJSON-like feature dictionaries.

>>> origin = {
...    'type': 'Feature',
...    'properties': {'name': 'Portland, OR'},
...    'geometry': {
...        'type': 'Point',
...        'coordinates': [-122.7282, 45.5801]}}
>>> destination = {
...    'type': 'Feature',
...    'properties': {'name': 'Bend, OR'},
...    'geometry': {
...        'type': 'Point',
...        'coordinates': [-121.3153, 44.0582]}}

The directions() method can be called with a list of features and the desired profile.

>>> response = service.directions([origin, destination],
...     'mapbox.driving')
>>> response.status_code
>>> response.headers['Content-Type']
'application/json; charset=utf-8'

It returns a response object with a geojson() method for accessing the route(s) as a GeoJSON-like FeatureCollection dictionary.

>>> driving_routes = response.geojson()
>>> driving_routes['features'][0]['geometry']['type']

See import mapbox; help(mapbox.Directions) for more detailed usage.