osrmroute-com Sandbox API
The Sandbox API API from osrmroute-com — 1 operation(s) for sandbox api.
The Sandbox API API from osrmroute-com — 1 operation(s) for sandbox api.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/osrmroute-com:osrmroute-com-sandbox-api-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: OSRMRoute Sandbox API
version: 1.1.0
description: 'OSRMRoute — Maps, Routing, Truck Routing, Search, Road Data, Studio and integration APIs. Use `Authorization: Bearer ` unless an operation documents another flow. Legacy APIs also accept the key query parameter; New geospatial APIs, MCP and private map delivery require Bearer authentication. Mobile challenge/token endpoints use device attestation instead. Coordinates and units are documented per operation: GeoJSON uses longitude,latitude; some legacy and background-job inputs use latitude,longitude. Examples are illustrative, not guaranteed current results. Guides · Mobile Access · MCP · Postman collection.'
contact:
name: OSRMRoute Support
url: https://osrmroute.com/contact
email: support@osrmroute.com
termsOfService: https://osrmroute.com/terms
servers:
- url: https://osrmroute.com
security:
- bearerAuth: []
- apiKeyQuery: []
tags:
- name: Sandbox API
paths:
/api/sandbox:
post:
tags:
- Sandbox API
operationId: runSandboxFixture
summary: Run a deterministic zero-credit fixture
description: Sandbox key required, with the selected service scope. Live keys are rejected. Sixty requests/minute/key, 24,000-byte body. Fixed geocode or entered-order straight-line route/matrix/VRP fixtures; not live routing, optimization or navigation. Input points use latitude,longitude. Sandbox guide.
security:
- bearerAuth: []
- apiKeyQuery: []
requestBody:
required: true
content:
application/json:
schema:
oneOf:
- type: object
properties:
operation:
type: string
enum:
- geocode
input:
type: object
properties:
q:
type: string
minLength: 1
maxLength: 254
required:
- q
required:
- operation
- input
- type: object
properties:
operation:
type: string
enum:
- route
- matrix
- vrp
input:
type: object
properties:
points:
type: array
items:
type: array
minItems: 2
maxItems: 2
items:
type: number
description: '[latitude, longitude]; latitude ±90, longitude ±180.'
minItems: 2
maxItems: 20
required:
- points
required:
- operation
- input
example:
operation: route
input:
points:
- - 40.4
- 49.8
- - 40.5
- 49.9
responses:
'200':
description: Deterministic fixture; zero credits.
content:
application/json:
schema:
oneOf:
- type: object
properties:
sandbox:
type: boolean
enum:
- true
source:
type: string
enum:
- deterministic_fixture
billed_credits:
type: number
enum:
- 0
not_for_navigation:
type: boolean
enum:
- true
notice:
type: string
hits:
type: array
items:
type: object
properties:
name:
type: string
point:
type: object
properties:
lat:
type: number
lng:
type: number
required:
- lat
- lng
confidence:
type:
- number
- 'null'
required:
- name
- point
- confidence
required:
- sandbox
- source
- billed_credits
- not_for_navigation
- notice
- hits
- type: object
properties:
sandbox:
type: boolean
enum:
- true
source:
type: string
enum:
- deterministic_fixture
billed_credits:
type: number
enum:
- 0
not_for_navigation:
type: boolean
enum:
- true
notice:
type: string
distances:
type: array
items:
type: array
items:
type: number
required:
- sandbox
- source
- billed_credits
- not_for_navigation
- notice
- distances
- type: object
properties:
sandbox:
type: boolean
enum:
- true
source:
type: string
enum:
- deterministic_fixture
billed_credits:
type: number
enum:
- 0
not_for_navigation:
type: boolean
enum:
- true
notice:
type: string
routes:
type: array
items:
type: object
properties:
geometry:
type: object
properties:
type:
type: string
enum:
- LineString
coordinates:
type: array
items:
type: array
minItems: 2
maxItems: 2
items:
type: number
description: '[longitude, latitude] in decimal degrees. Request bounds: longitude ±180, latitude ±85.'
minItems: 2
required:
- type
- coordinates
distance:
type: number
point_order:
type: array
items:
type: integer
minimum: 0
required:
- geometry
- distance
- point_order
optimized:
type: boolean
enum:
- false
required:
- sandbox
- source
- billed_credits
- not_for_navigation
- notice
- routes
- optimized
example:
sandbox: true
source: deterministic_fixture
billed_credits: 0
not_for_navigation: true
hits:
- name: Fixture · Bakı
point:
lat: 40.4093
lng: 49.8671
confidence: null
notice: Fixed example result. This is not a live search result for the submitted address.
'400':
description: Invalid input. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'401':
description: Missing or invalid authentication. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'403':
description: Scope, account or plan restriction. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'413':
description: Payload too large. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'429':
description: Rate, quota or concurrency limit. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
'503':
description: Service temporarily unavailable. See the returned error code. Failed operations are not charged.
content:
application/problem+json:
schema:
type: object
properties:
error:
type: string
code:
type: string
problem_code:
type: string
type:
type: string
format: uri
title:
type: string
status:
type: integer
minimum: 0
detail:
type: string
instance:
type: string
request_id:
type: string
format: uuid
retryable:
type: boolean
required:
- error
- code
- problem_code
- type
- title
- status
- detail
- instance
- request_id
- retryable
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
components:
securitySchemes:
apiKeyQuery:
type: apiKey
in: query
name: key
bearerAuth:
type: http
scheme: bearer