RouteMateRouteMate
Developer API

Build with RouteMate

Connect your platform via our REST API. Import stops from your e-commerce store, trigger route optimization, and track deliveries programmatically across Australia, New Zealand, and the US.

RouteMate API
POST /v1/integration-import

Request

{
  "external_job_id": "BATCH-001",
  "title": "Morning Deliveries",
  "driver_email": "driver@example.com",
  "stops": [
    {
      "external_stop_id": "STOP-1",
      "address": "1 George St, Brisbane QLD 4000",
      "label": "Customer A",
      "parcel_count": 2
    }
  ]
}

Response

{
  "job_id": "e7ad097b-...",
  "optimization": {
    "total_distance_km": 12.4,
    "total_duration_minutes": 25
  },
  "stops": [ /* optimized order */ ],
  "warnings": [...]
}

Get Credentials

Generate your client ID and secret from the RouteMate dashboard settings page.

Request Token

Exchange your credentials for a bearer token that stays valid for one hour.

Call the API

Include the token in the Authorization header for import and status requests.

Authentication

Client Credentials Flow

The RouteMate API uses a client credentials OAuth2 flow. Exchange your client ID and secret for a short-lived bearer token, then include it in the Authorization header of later requests.

01

Get Credentials

Generate your client ID and secret from the RouteMate dashboard settings page.

02

Request Token

Exchange your credentials for a bearer token that stays valid for one hour.

03

Call the API

Include the token in the Authorization header for import and status requests.

API

Core API Endpoints

These endpoints cover the most common delivery workflow integration tasks.

POST/v1/integration-token

Get Access Token

Exchange client credentials for a short-lived access token valid for 1 hour.

Request

{
  "client_id": "rm_ci_your_client_id",
  "client_secret": "rm_cs_your_client_secret"
}

Response

{
  "access_token": "rm_at_e5988dd1b91a...",
  "token_type": "Bearer",
  "expires_in": 3600
}
POST/v1/integration-import

Import Job & Optimize Route

Import a job with stops, geocode addresses, optimize the route, and assign the driver.

Request

{
  "external_job_id": "BATCH-001",
  "title": "Morning Deliveries",
  "driver_email": "driver@example.com",
  "stops": [
    {
      "external_stop_id": "STOP-1",
      "address": "1 George St, Brisbane QLD 4000",
      "label": "Customer A",
      "parcel_count": 2
    }
  ]
}

Response

{
  "job_id": "e7ad097b-...",
  "optimization": {
    "total_distance_km": 12.4,
    "total_duration_minutes": 25
  },
  "stops": [ /* optimized order */ ],
  "warnings": [...]
}
GET/v1/integration-jobs

Query Job Status

Check job and stop status, including delivery progress and counts.

Request

// GET request

Response

{
  "job_id": "e7ad097b-...",
  "status": "assigned",
  "stop_count": 3,
  "status_counts": {
    "pending": 2,
    "completed": 1
  },
  "stops": [...]
}
Code Examples

Get started in minutes

Use the examples below to authenticate, import jobs, and check delivery status.

curl
curl -X POST https://api.routemate.app/v1/integration-token \
  -H "Content-Type: application/json" \
  -d '{"client_id":"rm_ci_your_client_id","client_secret":"rm_cs_your_client_secret"}'
node
const tokenRes = await fetch("https://api.routemate.app/v1/integration-token", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    client_id: "rm_ci_your_client_id",
    client_secret: "rm_cs_your_client_secret",
  }),
});
python
import requests

token_res = requests.post(
    "https://api.routemate.app/v1/integration-token",
    json={
        "client_id": "rm_ci_your_client_id",
        "client_secret": "rm_cs_your_client_secret",
    },
)
Built for SaaS Teams

Production-ready from day one

Designed for reliable delivery workflows, retries, and downstream operations.

Secure auth
Short-lived bearer tokens and controlled credential exchange.
Fast imports
Push deliveries from your own system in a single request.
Reliable retries
Use idempotency keys to safely retry failed requests.
Status visibility
Track jobs and stop progress programmatically.

Need a custom integration?

Talk to us about partner workflows, custom onboarding, and enterprise API access.