Skip to main content
View as Markdown

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.

Code examples
curl comes with macOS, Linux and Windows 10 and later. Nothing to install.

Environments​

EnvironmentBase URLUse it for
Sandboxhttps://sandbox-api.vatit-stream.com/client_api/v2Building and testing. The carriers are stand-ins, so nothing is really shipped or charged.
Productionhttps://orders-production.vatit-stream.com/client_api/v2Real 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/json with 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​

  1. Sign in for a token.
  2. Create a quote: describe the shipment, and we price it with each carrier that can take it.
  3. Create an order from the estimate you choose.
  4. Create a waybill once the order's documents are in.
  5. List pickup slots, then book a pickup.
  6. 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:

FieldFormat
A pickup's scheduled_dateYYYY/MM/DD HH:MM:SS UTC, but the time is always midnight, so read only the date
A pickup's time_from and time_toHH:MM:SS
An order's pickup_dateYYYY-MM-DD
Webhook payloadsISO 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.

API ExplorerSandbox

Pick a call on the right and run it. Every call goes to the sandbox, so nothing is really shipped or charged. The answer appears here.