Build your own delivery operation on our engines
Route optimization, geocoding, distance, arrival estimates, carton selection and 3D load planning — as an API, without your data entering our database.
Nothing you send is stored
There are no orders here, no shipments, and no history. Every request carries its own data, every response returns the answer, and neither is kept. A result must be collected or it is gone. If you want us to host orders, tracking and webhooks for you, that is the platform account at api.superroute.ca — a different product with a different promise.
Four ways in, one contract
REST, GraphQL and MCP reach the same capabilities, bill the same units, and authenticate the same way. Pick whichever fits how you build.
REST
The reference, generated from the routes and the validation rules that actually run.
GraphQL
The same capabilities as GraphQL operations. Shares no operation with the tenant schema.
MCP
An MCP server for agents. It lists only the capabilities you have purchased.
Capabilities
What exists, what each one is billed in, and which release stage it is at.
Maps for websites and apps
Superroute's map service and its SDKs for web, React, React Native, Flutter, Android, iOS, macOS and Windows. A map key works only for the sites and apps on its allowlist; tiles are billed per 1,000.
Open sMap
· sMap integration
· sMap interoperability
· Playground
· SDK downloads
· map.tiles
The SDK for building on Superroute
Apps and websites for customers and drivers, desktop programs, back-end services and webhook receivers, with one client per language.
Open sApp · Installation · Playground · UI kit · App Center
Delivery to Superroute smart lockers
Delivery tasks, remote door opening, deposits, pickups and webhooks for carriers and delivery partners, with a mock cabinet to test without hardware.
Open sLocker · Installation · Sandbox · Webhooks · Delivery API reference
Printing labels and documents
Network, USB and Bluetooth printers, printer language detection, labels, PDF, HTML, images and raw commands, and Superroute print nodes, with one printing engine on every platform.
Open sPrint · Installation · Printing · Bluetooth · Print node
Widgets for a client's own website
Parcel tracking, price quotes, shipping orders and a pickup point picker on any web page, added with one script tag and configured in the back office.
Open sWidget · Embedding · Events and JavaScript API · Errors
Authentication
Every request carries one header: your API token as a Bearer credential. Clients that should not hold the real token — MCP clients, the console on this site — exchange it for a short-lived, narrower session.
Authorization: Bearer osk_…
Send it over TLS and treat it like any bearer credential: out of source control, out of query strings, and scoped as narrowly as the work allows.
Capabilities
| Capability | Billed in | Stage | Surfaces |
|---|---|---|---|
routing.optimize
|
node | Stable | 1 REST · 1 GraphQL · 1 MCP |
routing.refine
|
node | Stable | 1 REST · 1 GraphQL · 1 MCP |
routing.whatif
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
geo.forward
|
point | Stable | 1 REST · 1 GraphQL · 1 MCP |
geo.reverse
|
point | Stable | 1 REST · 1 GraphQL · 1 MCP |
geo.batch
|
point_1k | Stable | 2 REST · 1 GraphQL · 1 MCP |
geo.validate
|
point | Stable | 1 REST · 1 GraphQL · 1 MCP |
matrix.compute
|
element_1k | Beta | 1 REST · 1 GraphQL · 1 MCP |
directions.compute
|
call | Stable | 1 REST · 1 GraphQL · 1 MCP |
eta.estimate
|
call | Stable | 1 REST · 1 GraphQL · 1 MCP |
map.static
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
map.tiles
|
tile_1k | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.recost
|
node | Stable | 1 REST · 1 GraphQL · 1 MCP |
plan.validate
|
node | Stable | 1 REST · 1 GraphQL · 1 MCP |
plan.resequence
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.move
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.remove
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.insert
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.refine
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
plan.what_if
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
packing.solve
|
job | Beta | 1 REST · 1 GraphQL · 1 MCP |
loading.solve
|
job | Beta | 1 REST · 1 GraphQL · 1 MCP |
picking.batch
|
job | Beta | 1 REST · 1 GraphQL · 1 MCP |
territory.design
|
point_1k | Beta | 1 REST · 1 GraphQL · 1 MCP |
routing.insert
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
slots.quote
|
node | Beta | 1 REST · 1 GraphQL · 1 MCP |
isochrone.compute
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
trace.match
|
point_1k | Beta | 1 REST · 1 GraphQL · 1 MCP |
weight.chargeable
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
label.barcode
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
document.verify
|
call | Beta | 1 REST · 1 GraphQL · 1 MCP |
geo.autocomplete
|
call | Beta | 2 REST · 2 GraphQL · 2 MCP |
network.site_scenario
|
job | Beta | 1 REST · 1 GraphQL · 1 MCP |
platform.auth
|
free | Stable | 3 REST · 0 GraphQL · 0 MCP |
platform.capabilities
|
free | Stable | 4 REST · 3 GraphQL · 3 MCP |
platform.resources
|
free | Stable | 3 REST · 3 GraphQL · 3 MCP |
platform.jobs
|
free | Stable | 7 REST · 7 GraphQL · 7 MCP |
platform.health
|
free | Stable | 0 REST · 1 GraphQL · 1 MCP |