Skip to main content
The fastest way to understand an API is to call it. The published collection lets you do that against the sandbox before you write a line of your own code.

The collection

The full reference lives at apis.tryoto.com. It is generated from the Postman collection itself, which means it does not drift from the API: every endpoint carries its real request body, a live example response, and runnable code in more than thirty languages.

Working against the sandbox

Point the collection at https://staging-api.tryoto.com and it behaves exactly as production does, with test carriers instead of real ones. Same paths, same payloads, same responses — no parcels, no invoices.
Set the base URL as a variable on day oneThe only difference between sandbox and production is the host and the token. If both are collection variables from the start, switching environments is a dropdown.If they are typed into each request instead, switching means editing every request and missing one. The one you miss is usually the one that creates something.

A ten-minute first run

  1. Get a sandbox account, and its refresh_token from Settings → API Integrations.
  2. Call POST /rest/v2/refreshToken. Save the access_token into a variable.
  3. Call GET /rest/v2/healthCheck to confirm the token and the host are both right.
  4. Call POST /rest/v2/createOrder with the example body, changing the address to somewhere your test carriers cover.
  5. Call POST /rest/v2/checkOTODeliveryFee for that route and look at what comes back — prices, delivery estimates and cut-off times per carrier.
  6. Call POST /rest/v2/createShipment. You now have an AWB you can print.
That sequence is the whole integration in miniature. Everything else is a variation on it.
Use a real address in the sandboxCarrier coverage is checked even in the sandbox, so an invented city produces “no carriers available” and looks like a broken integration rather than a bad test fixture.Pick a city you can see in availableCities and keep using it.