> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryoto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OTO API overview

> Build on the OTO API: 76 REST endpoints for orders, hubs, shipments and carriers, plus webhooks, a sandbox and a Postman collection.

Everything the dashboard does, the API does. If you are running OTO underneath your own system — a storefront, an ERP, a WMS, a marketplace — this is the whole surface.

## What you can build

The API is organized around the same objects as the product, which means the mental model transfers: an **order** arrives, it is assigned to a **hub**, a **shipment** is booked with a **carrier**, and the customer is told. Four verbs, **76 endpoints** across **20 groups**.

| If you want to… | Start at |
| - | - |
| Push orders in from a system with no connector | [Authentication](https://docs.tryoto.com/developers/authentication.md), then `createOrder` |
| Show live shipping options and delivery dates at checkout | [Checkout API](https://docs.tryoto.com/modules/sales-channels/checkout-api.md) |
| Be told when something happens, instead of polling | [Webhooks](https://docs.tryoto.com/developers/webhook-events.md) |
| Run your own WMS and keep stock in step | Stock Management, in the [endpoint index](https://docs.tryoto.com/developers/rest-api-reference.md) |
| Resell OTO to your own sellers | Marketplace, in the [endpoint index](https://docs.tryoto.com/developers/rest-api-reference.md) |

## The shape of an integration

Most integrations are the same five calls, in the same order. The rest of the surface exists for the cases around them.

| # | Call | Why |
| - | - | - |
| 1 | `POST /rest/v2/refreshToken` | Get an access token. Once an hour, not once a request. |
| 2 | `POST /rest/v2/createOrder` | The order now exists in OTO and is subject to [routing](https://docs.tryoto.com/modules/omnichannel-oms/order-routing.md). |
| 3 | `POST /rest/v2/checkOTODeliveryFee` | Optional. What the options and prices are, if you want to choose rather than let automation choose. |
| 4 | `POST /rest/v2/createShipment` | The carrier is booked and an AWB exists. |
| 5 | `POST /rest/v2/webhook` | Registered once, not per order. Everything after this point is pushed to you. |

> [!TIP]
>
> **Step 5 is the one people skip**
>
> It is tempting to poll `orderStatus` on a timer, because it works on day one with no endpoint of your own to host.
>
> It stops working at volume: you are making thousands of calls to learn that nothing changed, and the one status you actually needed arrives up to a polling interval late. A webhook is a morning's work and removes the problem permanently.

## Where it lives

| Resource | Where |
| - | - |
| **Your refresh token** | **Settings → API Integrations → Connect** |
| **Full request and response schemas** | [apis.tryoto.com](https://apis.tryoto.com) — the live reference, with examples in 30+ languages |
| **Production base URL** | `https://api.tryoto.com` |
| **Sandbox base URL** | `https://staging-api.tryoto.com` |

## In this section

> **[Authentication](https://docs.tryoto.com/developers/authentication.md)**
>
> Tokens, headers, the sandbox and plan availability.

> **[REST API reference](https://docs.tryoto.com/developers/rest-api-reference.md)**
>
> All 76 endpoints, with the plan each one needs.

> **[Webhook events](https://docs.tryoto.com/developers/webhook-events.md)**
>
> The three event types, payloads and signature verification.

> **[Postman collection](https://docs.tryoto.com/developers/postman-collection.md)**
>
> Run every endpoint against the sandbox without writing code.

> **[Errors & rate limits](https://docs.tryoto.com/developers/errors-and-rate-limits.md)**
>
> What failure looks like, and how to handle it.

## What it connects to

* [Sales Channels](https://docs.tryoto.com/modules/sales-channels/overview.md) — the prebuilt integrations, for when you do not need to build one.
* [Order sync](https://docs.tryoto.com/modules/omnichannel-oms/order-sync.md) — what happens to an order you push in.
* [Hubs Management](https://docs.tryoto.com/modules/hubs-management/overview.md) — pickup locations, created here as hubs.


## Related topics

- [OTO API Postman collection](https://docs.tryoto.com/developers/postman-collection.md)
- [Integrations overview](https://docs.tryoto.com/integrations/overview.md)
- [SMS, email and WhatsApp providers](https://docs.tryoto.com/integrations/messaging-providers.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.