Full endpoint reference for the Parcel Radar APIs.
Production
This is the production API
The consoles below call the live Parcel Radar deployment, not a sandbox. Enter your X-API-Key to authorize the requests, then run any endpoint.
Instant Quote — Synchronous
One request, one response: POST your shipment to /quote and the call blocks until every carrier's rate is in (or a ~60s timeout, which returns 504). The simplest way to integrate — choose this unless you must avoid holding a request open for up to a minute (e.g. serverless/edge functions with short timeouts, or very high concurrency).
Submit a shipment and receive the live rate from every supported carrier in a single call. Blocks until the carrier fan-out settles (or ~60s → 504).
POST/api/partner/v1/instant-quote/quote
Enter your X-API-Key above to run this request.
This endpoint gathers live rates from every supported carrier in real time, so it can take a few seconds longer than a typical API call to respond. Please allow the request to finish.
1
{}
Send the request to see the response.
Instant Quote — Asynchronous
Non-blocking, in three steps: POST /inquiry to start, GET /inquiry?id= to poll until the status leaves "processing", then GET /results?inquiryId= for the rates. Returns the same rates as the sync lane — choose this when you don't want a long-held request, want to show progressive UI, or run where request timeouts are short.
Get live rates (async)
Create an inquiry, poll it until it's ready, then fetch the results — the same rates as the synchronous /quote, without holding a request open. Call these three endpoints in order.
Your app
Parcel Radar API
1POST /inquiry
202 · { inquiryId }id to poll
2GET /inquiry?id={inquiryId}loop
{ status }until "ready"
3GET /results?inquiryId={inquiryId}
{ status, results[] }promoted first, then cheapest
Polling tips: wait ~1–2s between polls (a short exponential backoff is fine) and give up after about 60s — the same ceiling the synchronous /quote uses. Only POST /inquiry needs your X-API-Key; the poll and results calls just need the returned inquiryId.
The shipping conditions for one provider — incoterms, transit time, service network, features, weight config and route coverage. Pass a provider id from a /quote result.
The rate card for one provider — display flags, banners, and (for manual-rate providers) a static price curve. Pass a provider id from a /quote result.
GET/api/partner/v1/instant-quote/ratecard
Enter your X-API-Key above to run this request.
Send the request to see the response.
Address Book
Your tenant's saved sender/recipient addresses — the same book members manage in the Member Portal, so changes show up there. Partner lane only. Switching an address off keeps it on file and listed; deleting removes it.
A page of your tenant's saved addresses. Ordering is by stored value, so `country` sorts by ISO code rather than localized name. Switched-off addresses are included by default.
Full replacement (PUT): send the complete address — omitted optional fields clear to null. Omit `isActive` to keep the current on/off state (toggle it with `PATCH /{id}/active`).
Switch an address on or off. A soft disable: it stays in the book and still comes back from the list, so it can be switched back on. Idempotent. To remove it for good, use DELETE.
Permanently remove an address. This cannot be undone and the id stops resolving. To keep it on file but unused, PATCH /{id}/active with `isActive: false` instead.
DELETE/api/partner/v1/address-book/{id}
Enter your X-API-Key above to run this request.
Send the request to see the response.
Orders
Your tenant's shipping orders, shared with the Member Portal. Partner lane only.
Put an order on hold (→ ON_HOLD). Only from CREATED or PROCESSING.
POST/api/partner/v1/orders/{id}/suspend
Enter your X-API-Key above to run this request.
Send the request to see the response.
Order Documents
The files attached to an order's Package Documents (invoices, packing lists, …). Bytes travel base64 — no multipart. Also embedded as `attachments` on a single-order GET. Partner lane only.
The order's uploaded Package Documents (metadata only, newest first). These are the FILES — distinct from the `documents` milestone (the tab's JSON state). The same list is embedded as `attachments` on a single-order GET.
Attach a file to the order. The bytes travel base64-encoded in `contentBase64` (a `data:…;base64,` prefix is accepted) — plain JSON, no multipart. Decoded size ≤ 10 MB.