Get your refresh token
In the dashboard, go to Settings → API Integrations and press Connect. That produces yourrefresh_token.
It is permanent, and it is the only long-lived credential you hold. It cannot be used to call anything except the token endpoint.
Exchange it for an access token
POST /rest/v2/refreshToken Free+
access_token with a lifetime of one hour. Send it on every other call:
Check the connection
GET /rest/v2/healthCheck Free+
Confirms the platform is reachable and responding. Worth wiring into your own monitoring, so that when something breaks you already know which side it broke on.
The sandbox
A separate environment with its own account, its own token and test carriers, athttps://staging-api.tryoto.com. Same paths, same shapes.
Build against the sandbox, but test the switchThe sandbox is where you create orders that do not become real parcels and bookings that do not become real invoices. Nothing else is safe to iterate against.The failure to plan for is the cutover: production has different carrier contracts, different hubs and different codes. A configuration value hard-coded during development is the classic first-day-live incident, so keep every environment-specific value in configuration from the first commit.
Plan availability
Endpoints are gated by subscription tier, and some also require an add-on. Every endpoint in the index carries the lowest plan that includes it.Ship-from-store over the API is an Enterprise capabilityPickup locations can be created on every plan, but only as warehouses. Creating one of
type: "branch" — a shop that also ships — is Enterprise only.If your plan is to make stores fulfill orders programmatically, that is the line to check before you design around it. See Hubs Management for what a branch is and why it matters.Related
- Webhooks — being told instead of asking.
- Endpoint index — the full surface.

