Stream API
The Stream API lets your own system do what your team does in the client portal: price a shipment with each carrier, book it, get the carrier's waybill, book the collection and follow the shipment to delivery. We can also tell your system when a shipment changes, through webhooks.
Every example on the reference pages is one the API really sent, recorded by the API's own tests, so what you read is what you get back. The guides' examples are shortened and use made-up prices.
Reference pages show each call in the language you pick on the site.
curl comes with macOS, Linux and Windows 10 and later. Nothing to install.Environments
| Environment | Base URL | Use it for |
|---|---|---|
| Sandbox | https://sandbox-api.vatit-stream.com/client_api/v2 | Building and testing. The carriers are stand-ins, so nothing is really shipped or charged. |
| Production | https://orders-production.vatit-stream.com/client_api/v2 | Real shipments. |
The two environments have separate logins and separate data. Build against the sandbox first, then switch the base URL and your login when you go live.
Making requests
- Every request goes over HTTPS, and sends and receives JSON. Send
Content-Type: application/jsonwith a body. - Sign in once for a token, then send it on every other call as
Authorization: Bearer <token>. - Ids are numbers. Take the ids a call needs, such as a country or a purpose of shipment, from the reference data calls.
Your first shipment
- Sign in for a token.
- Create a quote: describe the shipment, and we price it with each carrier that can take it.
- Create an order from the estimate you choose.
- Create a waybill once the order's documents are in.
- List pickup slots, then book a pickup.
- Follow the shipment with Get an order and List tracking events, or have us call you with a webhook.
Conventions
Errors. Every error has the same shape, { "success": false, "error": "...", "errors": [...] }. See Errors.
Dates and times. All times are UTC. Most dates come as YYYY/MM/DD HH:MM:SS UTC, for example 2026/10/23 07:14:46 UTC. The exceptions:
| Field | Format |
|---|---|
A pickup's scheduled_date | YYYY/MM/DD HH:MM:SS UTC, but the time is always midnight, so read only the date |
A pickup's time_from and time_to | HH:MM:SS |
An order's pickup_date | YYYY-MM-DD |
| Webhook payloads | ISO 8601, for example 2026-10-23T07:14:46Z |
Pages. List orders answers ten orders at a time, newest first. Ask for another page with ?page=2, or for more per page with ?items_per_page=50. The answer's meta gives page_count and record_count.
Rate limits. Create a quote, Create an order and the Companies calls take 20 requests a minute. Past that they answer 429 until the minute is up.
Retries. Don't retry Create a waybill after a timeout: the first request may still be booking with the carrier. Read the order first, and call again only if it has no waybill.
For AI tools
Every page has a Markdown version: add .md to its address, or use Copy for LLM at the top of the page. /llms.txt lists every page, and /llms-full.txt has all of them in one file. The OpenAPI file describes every call.