Sandbox

Test the API for free with otg_test_… keys. No purchase, never charged.

Limits

ParamTypeDescription
Stops per calloptional≤ 10Hard limit — returns 400 sandbox_limit beyond.
Calls per minuteoptional≤ 20429 with Retry-After when exceeded.
Stops per dayoptional≤ 200Paris calendar day. 429 when exceeded.
Locationsoptionallat/lng onlyNo street addresses — geocoding is disabled in sandbox.
EngineoptionalVROOMMay differ slightly from production (no Google fallback).

Example

curl https://app.otiggo.com/api/v1/optimize \
  -H "Authorization: Bearer otg_test_..." \
  -H "Content-Type: application/json" \
  -d '{
  "start": { "latitude": 48.8566, "longitude": 2.3522 },
  "end": { "latitude": 48.8566, "longitude": 2.3522 },
  "stops": [
    { "id": "A", "latitude": 48.87, "longitude": 2.30 },
    { "id": "B", "latitude": 48.86, "longitude": 2.33 }
  ]
}'
200
{
  "order": ["B", "A"],
  "waypoints": [
    { "id": "B", "order": 1, "latitude": 48.86, "longitude": 2.33 },
    { "id": "A", "order": 2, "latitude": 48.87, "longitude": 2.30 }
  ],
  "totalDistanceKm": 6.1,
  "estimatedTimeMin": 32,
  "schedule": [
    { "colisId": "B", "arrivee": "2026-10-20T05:40:00Z" },
    { "colisId": "A", "arrivee": "2026-10-20T05:52:00Z" }
  ],
  "departAt": "2026-10-20T05:30:00Z",
  "returnAt": "2026-10-20T06:02:00Z",
  "lateStops": null,
  "stopsCharged": 0,
  "sandbox": true,
  "sandboxStopsRemainingToday": 198
}

Sandbox-specific errors

  • 400 sandbox_limit — too many stops in one call
  • 400 sandbox_addresses_unsupported — address instead of coordinates
  • 429 sandbox_rate_limited — minute or daily cap hit
  • 503 sandbox_unavailable — engine temporarily down