Jawg Isochrone API
Valhalla isochrone service computing areas reachable within specified time or distance intervals from one or more locations, returned as GeoJSON polygon or line contours.
Valhalla isochrone service computing areas reachable within specified time or distance intervals from one or more locations, returned as GeoJSON polygon or line contours.
openapi: 3.0.3
info:
title: Jawg Maps API
description: >-
Representative OpenAPI description of the public Jawg location platform:
customizable vector and raster map tiles and hosted styles (tile.jawg.io),
Places geocoding, Valhalla-based routing, matrix and isochrone services, and
static maps (api.jawg.io). Every request is authenticated with a Jawg access
token supplied as the `access-token` query parameter (a Bearer token in the
Authorization header is also accepted on the api.jawg.io surfaces).
termsOfService: https://www.jawg.io/en/terms/
contact:
name: Jawg Support
url: https://www.jawg.io/en/contact/
version: '1.0'
servers:
- url: https://tile.jawg.io
description: Map tiles, styles, and TileJSON
- url: https://api.jawg.io
description: Places, routing, matrix, isochrone, and static maps
security:
- accessToken: []
tags:
- name: Tiles
- name: Styles
- name: Places
- name: Routing
- name: Matrix
- name: Isochrone
- name: Static Maps
paths:
/{styleId}/{z}/{x}/{y}.png:
get:
operationId: getRasterTile
tags:
- Tiles
summary: Get a raster (PNG) map tile.
description: >-
Returns a raster map tile in the XYZ slippy-map scheme for the given
hosted style. Append `@2x` before `.png` for retina tiles.
servers:
- url: https://tile.jawg.io
parameters:
- $ref: '#/components/parameters/StyleId'
- $ref: '#/components/parameters/Z'
- $ref: '#/components/parameters/X'
- $ref: '#/components/parameters/Y'
- $ref: '#/components/parameters/AccessTokenQuery'
- $ref: '#/components/parameters/Lang'
- $ref: '#/components/parameters/Worldview'
responses:
'200':
description: A raster map tile.
content:
image/png:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/Unauthorized'
/{styleId}/{z}/{x}/{y}.pbf:
get:
operationId: getVectorTile
tags:
- Tiles
summary: Get a vector (Mapbox Vector Tile) map tile.
description: Returns a gzip-encoded Mapbox Vector Tile for the given hosted style.
servers:
- url: https://tile.jawg.io
parameters:
- $ref: '#/components/parameters/StyleId'
- $ref: '#/components/parameters/Z'
- $ref: '#/components/parameters/X'
- $ref: '#/components/parameters/Y'
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A vector map tile.
content:
application/x-protobuf:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/Unauthorized'
/styles/{styleId}.json:
get:
operationId: getStyleJson
tags:
- Styles
summary: Get the style JSON document for a hosted style.
description: >-
Returns the Mapbox GL style specification JSON for the hosted style,
used to render vector maps in the browser.
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/StyleId'
- $ref: '#/components/parameters/AccessTokenQuery'
- $ref: '#/components/parameters/Lang'
- name: extrude
in: query
description: Whether to enable 3D building extrusion in the returned style.
schema:
type: boolean
- $ref: '#/components/parameters/Worldview'
responses:
'200':
description: A Mapbox GL style JSON document.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/styles/{styleId}/tilejson.json:
get:
operationId: getTileJson
tags:
- Styles
summary: Get the TileJSON metadata for a hosted style.
description: Returns a TileJSON 2.x metadata document describing the tileset.
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/StyleId'
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A TileJSON metadata document.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/places/v1/search:
get:
operationId: geocodeSearch
tags:
- Places
summary: Forward geocoding search.
description: >-
Searches for places, addresses, and points of interest matching a free
text query and returns ranked results as a GeoJSON FeatureCollection.
servers:
- url: https://api.jawg.io
parameters:
- name: text
in: query
required: true
description: The free-text query to geocode.
schema:
type: string
example: 10 rue de la paix, Paris
- $ref: '#/components/parameters/Size'
- name: layers
in: query
description: Comma-separated feature layers to restrict the search to (e.g. address, venue, locality).
schema:
type: string
- name: sources
in: query
description: Comma-separated data sources to restrict the search to (e.g. osm, oa, wof, gn).
schema:
type: string
- name: boundary.country
in: query
description: ISO 3166-1 alpha-2/alpha-3 country code to restrict results.
schema:
type: string
- name: focus.point.lat
in: query
description: Latitude used to bias results toward a location.
schema:
type: number
format: double
- name: focus.point.lon
in: query
description: Longitude used to bias results toward a location.
schema:
type: number
format: double
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A GeoJSON FeatureCollection of geocoding results.
content:
application/json:
schema:
$ref: '#/components/schemas/GeocodingResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/places/v1/autocomplete:
get:
operationId: geocodeAutocomplete
tags:
- Places
summary: Autocomplete geocoding.
description: Returns type-ahead suggestions for a partial text query.
servers:
- url: https://api.jawg.io
parameters:
- name: text
in: query
required: true
description: The partial text to complete.
schema:
type: string
example: 10 rue de la pa
- name: focus.point.lat
in: query
schema:
type: number
format: double
- name: focus.point.lon
in: query
schema:
type: number
format: double
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A GeoJSON FeatureCollection of autocomplete suggestions.
content:
application/json:
schema:
$ref: '#/components/schemas/GeocodingResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/places/v1/reverse:
get:
operationId: geocodeReverse
tags:
- Places
summary: Reverse geocoding.
description: Returns the places nearest to a latitude/longitude coordinate.
servers:
- url: https://api.jawg.io
parameters:
- name: point.lat
in: query
required: true
description: Latitude to reverse-geocode.
schema:
type: number
format: double
example: 48.8534
- name: point.lon
in: query
required: true
description: Longitude to reverse-geocode.
schema:
type: number
format: double
example: 2.3488
- $ref: '#/components/parameters/Size'
- name: layers
in: query
schema:
type: string
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A GeoJSON FeatureCollection of reverse-geocoding results.
content:
application/json:
schema:
$ref: '#/components/schemas/GeocodingResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/places/v1/place/{id}:
get:
operationId: getPlaceDetails
tags:
- Places
summary: Get details for a place by its global identifier.
description: Returns the full record for a place identified by its gid (source:layer:id).
servers:
- url: https://api.jawg.io
parameters:
- name: id
in: path
required: true
description: The global identifier of the place (e.g. openstreetmap:venue:node/12345).
schema:
type: string
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A GeoJSON FeatureCollection containing the requested place.
content:
application/json:
schema:
$ref: '#/components/schemas/GeocodingResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/routing/route:
post:
operationId: computeRoute
tags:
- Routing
summary: Compute a route between two or more locations.
description: >-
Valhalla turn-by-turn routing. Computes the best route across the
supplied locations for the given costing model (auto, bicycle,
pedestrian, ...).
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/AccessTokenQuery'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRequest'
responses:
'200':
description: A Valhalla route (trip) response.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/routing/optimized_route:
post:
operationId: computeOptimizedRoute
tags:
- Routing
summary: Compute an optimized (traveling-salesman) route.
description: >-
Valhalla optimized_route service that reorders the intermediate
locations to minimize total cost between the fixed start and end.
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/AccessTokenQuery'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RouteRequest'
responses:
'200':
description: An optimized Valhalla route response.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/routing/sources_to_targets:
post:
operationId: computeMatrix
tags:
- Matrix
summary: Compute a time-distance matrix.
description: >-
Valhalla sources_to_targets service computing travel time and distance
from every source location to every target location.
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/AccessTokenQuery'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/MatrixRequest'
responses:
'200':
description: A Valhalla sources_to_targets matrix response.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/routing/isochrone:
post:
operationId: computeIsochrone
tags:
- Isochrone
summary: Compute isochrone / isodistance contours.
description: >-
Valhalla isochrone service returning GeoJSON contours of the area
reachable within the requested time or distance intervals.
servers:
- url: https://api.jawg.io
parameters:
- $ref: '#/components/parameters/AccessTokenQuery'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/IsochroneRequest'
responses:
'200':
description: A GeoJSON FeatureCollection of isochrone contours.
content:
application/json:
schema:
type: object
'401':
$ref: '#/components/responses/Unauthorized'
/static:
get:
operationId: getStaticMap
tags:
- Static Maps
summary: Render a standalone static map image.
description: >-
Renders a static map image from a center, zoom, and size (or from an
auto-fit set of features), optionally decorated with markers and paths.
servers:
- url: https://api.jawg.io
parameters:
- name: layer
in: query
description: The hosted style / layer to render (e.g. jawg-sunny).
schema:
type: string
example: jawg-sunny
- name: center
in: query
description: Map center as "lat,lon".
schema:
type: string
example: 48.856,2.351
- name: zoom
in: query
schema:
type: integer
example: 12
- name: size
in: query
description: Image size as "widthxheight" in pixels.
schema:
type: string
example: 400x300
- name: format
in: query
schema:
type: string
enum:
- png
- jpg
default: png
- name: markers
in: query
description: Marker overlays to render on the image.
schema:
type: string
- name: paths
in: query
description: Path (polyline/polygon) overlays to render on the image.
schema:
type: string
- name: bearing
in: query
schema:
type: number
format: double
- name: pitch
in: query
schema:
type: number
format: double
- $ref: '#/components/parameters/AccessTokenQuery'
responses:
'200':
description: A rendered static map image.
content:
image/png:
schema:
type: string
format: binary
image/jpeg:
schema:
type: string
format: binary
'401':
$ref: '#/components/responses/Unauthorized'
components:
securitySchemes:
accessToken:
type: apiKey
in: query
name: access-token
description: Jawg access token, obtained from the Jawg App account.
bearerAuth:
type: http
scheme: bearer
description: Jawg access token supplied as a Bearer token on api.jawg.io surfaces.
parameters:
AccessTokenQuery:
name: access-token
in: query
required: true
description: Your Jawg access token.
schema:
type: string
StyleId:
name: styleId
in: path
required: true
description: The hosted Jawg style identifier (e.g. jawg-sunny, jawg-streets, or a custom style ID).
schema:
type: string
example: jawg-streets
Z:
name: z
in: path
required: true
description: Tile zoom level.
schema:
type: integer
X:
name: x
in: path
required: true
description: Tile column.
schema:
type: integer
Y:
name: y
in: path
required: true
description: Tile row.
schema:
type: integer
Lang:
name: lang
in: query
description: Preferred label language (ISO 639-1).
schema:
type: string
Worldview:
name: worldview
in: query
description: Worldview used to render disputed borders.
schema:
type: string
Size:
name: size
in: query
description: Maximum number of results to return.
schema:
type: integer
default: 10
responses:
Unauthorized:
description: The access token is missing or invalid.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
error:
type: object
properties:
code:
type: integer
message:
type: string
Location:
type: object
required:
- lat
- lon
properties:
lat:
type: number
format: double
lon:
type: number
format: double
type:
type: string
enum:
- break
- through
- via
- break_through
RouteRequest:
type: object
required:
- locations
- costing
properties:
locations:
type: array
minItems: 2
items:
$ref: '#/components/schemas/Location'
costing:
type: string
enum:
- auto
- bicycle
- pedestrian
- bus
- truck
- motor_scooter
example: auto
costing_options:
type: object
description: Per-mode costing options.
directions_options:
type: object
properties:
units:
type: string
enum:
- kilometers
- miles
MatrixRequest:
type: object
required:
- sources
- targets
- costing
properties:
sources:
type: array
items:
$ref: '#/components/schemas/Location'
targets:
type: array
items:
$ref: '#/components/schemas/Location'
costing:
type: string
enum:
- auto
- bicycle
- pedestrian
example: auto
IsochroneRequest:
type: object
required:
- locations
- costing
- contours
properties:
locations:
type: array
items:
$ref: '#/components/schemas/Location'
costing:
type: string
enum:
- auto
- bicycle
- pedestrian
example: pedestrian
contours:
type: array
items:
type: object
properties:
time:
type: number
description: Contour time in minutes.
distance:
type: number
description: Contour distance in kilometers.
color:
type: string
polygons:
type: boolean
default: false
GeocodingResponse:
type: object
description: A GeoJSON FeatureCollection returned by the Places API.
properties:
type:
type: string
example: FeatureCollection
geocoding:
type: object
description: Query metadata (version, engine, query echo, timestamp).
features:
type: array
items:
$ref: '#/components/schemas/GeocodingFeature'
GeocodingFeature:
type: object
properties:
type:
type: string
example: Feature
geometry:
type: object
properties:
type:
type: string
example: Point
coordinates:
type: array
items:
type: number
format: double
properties:
type: object
properties:
gid:
type: string
layer:
type: string
source:
type: string
name:
type: string
label:
type: string
confidence:
type: number
format: double
country:
type: string
region:
type: string
locality:
type: string