Carrier’s official API

C.H. Robinson API: integration guide

C.H. Robinson exposes its brokerage network to customers through the Navisphere API, a JSON REST API. One quote call prices LTL and truckload moves across many underlying carriers; you then book an order from the chosen quote, follow it through an event feed with GPS updates, and pull invoice summaries once it is billed. It suits shippers, 3PLs and TMS vendors that buy freight from C.H. Robinson under a customer code.

This guide covers C.H. Robinson’s own API. Credentials come from C.H. Robinson, not from FreightAPIs, and we are not affiliated with them.

Want one API key for carrier terminals, NMFC and ports instead? C.H. Robinson location API · FreightAPIs API docs →

Interface REST/JSONEndpoints 4Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierC.H. Robinson
TypeTruckload & LTL broker
InterfaceREST/JSON
AuthenticationOAuth 2.0 client credentials → Bearer token
CapabilitiesRate quote (LTL and truckload), Order booking, Shipment tracking, Invoices

Getting access

  • You need a C.H. Robinson customer relationship. Every quote, order and invoice call is scoped to your customerCode, which C.H. Robinson assigns.
  • API documentation and client credentials are provided to customers on request through your C.H. Robinson representative. The material reviewed for this guide does not describe a self-serve sign-up flow.
  • Access is granted per API product. For example, a customer account can have quoting, ordering, tracking and invoices enabled but not the proof-of-delivery document API; ask your representative for each product you plan to use.
  • Accessorials that are not covered by the specialRequirement flags have their own codes, which must be arranged with your C.H. Robinson representative before you can send them in optionalAccessorials.
  • The documentation reviewed does not state pricing or rate limits for API use.

Authentication

OAuth 2.0 client credentials → Bearer token.

  • POST a JSON body with client_id, client_secret, audience and grant_type=client_credentials to the token endpoint (/v1/oauth/token). C.H. Robinson supplies the client ID, secret and audience value.
  • The response contains access_token, token_type and expires_in. Tokens last 24 hours (expires_in 86400), so cache and reuse one token instead of requesting a new one per call.
  • Send the token on every request as Authorization: Bearer YOUR_TOKEN. A 401 means the token is missing, expired or invalid.

Endpoints

Rate quote (LTL and truckload)

One endpoint quotes both modes; set transportModes[].mode to LTL or TL. The response is a list of quoteSummaries, each from a specific underlying carrier, with total, freight and accessorial charges and an itemized rate list.

POST/v1/quotesGet LTL or truckload quotes for a lane, ship date and item list.
Key inputscustomerCode, shipDate (ISO 8601 UTC)transportModes[]: mode (LTL, TL, Flatbed, IMDL …), equipments[] (equipmentType, quantity) for truckloadorigin / destination: countryCode, postalCode (required); name, city, address1, stateProvinceCodeorigin / destination specialRequirement: liftGate, insidePickup, insideDelivery, residentialNonCommercial, limitedAccess, appointmentNotification …items[]: weight, weightUnitOfMeasure (Pounds | Kilograms), freightClass, packagingCode (PLT, BOX, CRT …), quantityOptional: optionalAccessorials, referenceNumbers, item dimensions, hazmat fields (isHazardous, unNumber …)
Key outputsquoteSummaries[].quoteIdcarrier: carrierName, scactotalCharge, totalFreightCharge, totalAccessorialChargerates[]: rateCode, rateCodeValue (Line Haul, Fuel Surcharge, Lift Gate …), totalRate, currencyCodetransit: minimumTransitDays (and maximumTransitDays on truckload), originService, destinationServicetransportModeType, equipmentType, cargoLiability, quoteSource

Order booking

Turn a quote into a shipment by posting the quoteId with full pickup and delivery details. The body is an array, so you can book several orders in one call.

POST/v1/orders/quotesCreate one or more orders from previously returned quotes.
Key inputsquoteId (from /v1/quotes)customer: customerCode, contacts[] (type, name, contactMethods)origin / destination: locationName, address (address1, city, stateProvinceCode, postalCode, country), contactName, phoneorigin / destination: requestedShipDateOpen, requestedShipDateClose, specialInstructionsbillTo.referenceNumbers[], referenceNumbers[] (types such as SHID, PO, BOL, MBOL)
Key outputsorderNumber (used for tracking and invoices)trackingNumberquoteId

Shipment tracking

Pull the event history for an order. Event payloads differ by eventType: order events, load events with carrier and equipment, in-transit events with GPS location and ETA, and arrival, pickup and delivery events with stop details.

GET/v2/events?orderNumber={orderNumber}List all events recorded for one C.H. Robinson order.
Key inputsorderNumber (query parameter)
Key outputstotalCount, results[]: eventTime, billToReferenceNumber, customerReferenceNumberevent.eventType (ORDER CREATED, LOAD BOOKED, LOAD PICKED UP, IN TRANSIT, LOAD DELIVERED, ORDER COMPLETED, ORDER CANCELED …)event.loadNumber, event.carrierevent.location (latitude, longitude, city, stateProvinceCode) and deliveryEta, nextStop on in-transit eventsevent.proofOfDelivery on delivery events (may be null)

Invoices

Fetch the invoice summary for an order after it has been billed, including amount, open balance and the shipments on the invoice.

GET/v1/financials/invoiceSummaries?customerCode={customerCode}&orderNumber={orderNumber}Return invoice summaries for one order under your customer code.
Key inputscustomerCodeorderNumber
Key outputsinvoiceSummaries[]: invoiceNumber, invoiceDate, dueDate, invoiceAmount, invoiceBalance, receivedAmountinvoiceShipments[]: chrOrderNumber, loadNumber, customerReferenceNumber, invoiceAmount

Example request

LTL quote request body (POST /v1/quotes)json
{ "customerCode": "YOUR_CUSTOMER_CODE", "shipDate": "2026-10-15T00:00:00Z", "transportModes": [{ "mode": "LTL" }], "origin": { "name": "Origin Warehouse", "city": "Chicago", "stateProvinceCode": "IL", "postalCode": "60601", "countryCode": "US" }, "destination": { "name": "Customer Site", "city": "Los Angeles", "stateProvinceCode": "CA", "postalCode": "90001", "countryCode": "US", "specialRequirement": { "liftGate": true, "residentialNonCommercial": true, "appointmentNotification": true } }, "items": [ { "weight": 500, "weightUnitOfMeasure": "Pounds", "freightClass": 70, "quantity": 1, "packagingCode": "PLT" } ] }

Send with Content-Type: application/json and Authorization: Bearer YOUR_TOKEN. Pick one quoteSummaries[].quoteId from the response to book the order.

Integration notes

  • shipDate cannot be in the past and cannot be more than 30 days out. All date-times are ISO 8601, in UTC on the quote call.
  • For LTL, freightClass and packagingCode are optional for a quote but required if you later book that quote. The same goes for location name and city. Send them up front so the quote can be booked.
  • Quotes expire. Book soon after quoting; an expired or unknown quoteId fails on the order call.
  • The order endpoint takes a JSON array, even for a single order, and returns an array in the same order.
  • Keep the orderNumber from the booking response. Tracking and invoice lookups are keyed on it, not on the trackingNumber or your own reference.
  • Each quote can come from a different underlying carrier (see carrier.scac). Transit fields are sparse: LTL quotes may return only minimumTransitDays, so do not promise a delivery date from the quote alone.
  • Tracking events come back newest first, and the shape of event depends on eventType. Parse by type rather than expecting one fixed schema.
  • proofOfDelivery on a delivery event can be null, and the POD document API is a separately enabled product.

FAQ

Does C.H. Robinson have an API?

Yes. The Navisphere API is a REST/JSON API for C.H. Robinson customers that covers quotes, order booking, tracking events and invoice summaries. Credentials are issued through your C.H. Robinson representative.

How do I authenticate with the Navisphere API?

Use OAuth 2.0 client credentials: post your client ID, client secret and audience to the token endpoint, then send the returned token as a Bearer header. Tokens last 24 hours.

Can the C.H. Robinson API quote both LTL and truckload?

Yes. The same /v1/quotes endpoint handles both; set transportModes[].mode to LTL or TL and add equipment details for truckload.

How do I track a C.H. Robinson shipment through the API?

Call GET /v2/events with the orderNumber returned when you booked the order. The response lists every event, including GPS position and ETA while the load is in transit.

On FreightAPIs

Official resources

Written from C.H. Robinson’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with C.H. Robinson; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.

Other carrier API guides