DocumentationIntegrations
DOCS

API reference

Programmatic access to shipments, milestones, documents, and exceptions via the Orbex Data REST API at api.orbexdata.com.

Read time:
12 min
Updated:
January 2026

Authentication

All API requests require a Bearer token. Generate API keys in Settings → Developers. Keys are scoped to your workspace and inherit the creating user's permissions unless using a service account with explicit role assignment.

curl https://api.orbexdata.com/v1/shipments \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx" \
  -H "Content-Type: application/json"

Protect your keys

Never expose live keys in client-side code or public repositories. Rotate keys immediately if compromised.

Base URL and versioning

The current API version is v1. All endpoints are prefixed with https://api.orbexdata.com/v1. Breaking changes require a new major version with advance notice to registered developers.

Response conventions
HTTP codeMeaning
200Success
201Resource created
400Invalid request body or parameters
401Missing or invalid API key
404Resource not found
429Rate limit exceeded
500Server error—retry with backoff

Shipments

Create and retrieve shipments with house bill references, legs, containers, and party assignments. Use external_id for idempotent upserts from your TMS.

curl -X POST https://api.orbexdata.com/v1/shipments \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "tms-booking-88421",
    "mode": "ocean_fcl",
    "house_bill": "ORB-HBL-2026-00421",
    "container_numbers": ["MSCU1234567"],
    "carrier_scac": "MAEU",
    "origin_port": "CNSHA",
    "destination_port": "USLAX",
    "etd": "2026-02-15T00:00:00Z",
    "eta": "2026-03-22T00:00:00Z",
    "shipper": { "name": "Shanghai Exports Co.", "external_id": "shipper-102" },
    "consignee": { "name": "West Coast Retail LLC", "external_id": "consignee-445" }
  }'
{
  "id": "shp_7Kx9mN2pQ8vR",
  "external_id": "tms-booking-88421",
  "status": "in_transit",
  "house_bill": "ORB-HBL-2026-00421",
  "created_at": "2026-01-10T14:32:00Z",
  "url": "https://app.orbexdata.com/shipments/shp_7Kx9mN2pQ8vR"
}

Milestones

List milestones for a shipment or post manual milestones when carrier feeds are unavailable. Milestone codes use Orbex Data canonical names—see the milestones reference endpoint for the full catalog.

curl https://api.orbexdata.com/v1/shipments/shp_7Kx9mN2pQ8vR/milestones \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx"

curl -X POST https://api.orbexdata.com/v1/shipments/shp_7Kx9mN2pQ8vR/milestones \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "delivered",
    "occurred_at": "2026-03-21T16:45:00Z",
    "source": "manual",
    "reason_code": "customer_confirmed",
    "location": "Los Angeles, CA"
  }'

Pagination and rate limits

List endpoints return paginated results with cursor-based navigation. Default page size is 50; maximum is 200. Standard plans allow 1,000 requests per minute per API key.

curl "https://api.orbexdata.com/v1/shipments?status=in_transit&limit=50" \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx"

# Follow next cursor from response
curl "https://api.orbexdata.com/v1/shipments?cursor=eyJpZCI6InNocF8..." \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx"

Prefer webhooks

For real-time updates, subscribe to webhooks instead of polling shipment endpoints.

Documents

Upload documents via multipart request or presigned URL flow for large files. Document metadata is available as JSON; binary content requires a separate download request.

curl -X POST https://api.orbexdata.com/v1/shipments/shp_7Kx9mN2pQ8vR/documents \
  -H "Authorization: Bearer orb_live_sk_xxxxxxxxxxxx" \
  -F "type=commercial_invoice" \
  -F "file=@/path/to/invoice.pdf"

Need help? Email hello@orbexdata.com or visit Trust & security.