Carrier’s official API
Estes Express Lines API: integration guide
Estes Express Lines publishes a family of REST/JSON APIs on its developer portal for rating, transit times, electronic bills of lading, pickup requests, shipment tracking and document images. There are also event subscriptions so you can receive pickup and shipment updates instead of polling. The APIs are aimed at shippers integrating their own systems and at TMS providers acting on behalf of Estes customers.
This guide covers Estes Express Lines’s own API (cloudapi.estes-express.com). Credentials come from Estes Express Lines, not from FreightAPIs, and we are not affiliated with them.
Want one API key for carrier terminals, NMFC and ports instead? Estes Express location API · FreightAPIs API docs →
At a glance
| Carrier | Estes Express Lines |
|---|---|
| Type | LTL carrier |
| SCAC | EXLA |
| Interface | REST/JSON |
| Authentication | API key + short-lived bearer token (MyEstes credentials via Basic auth) |
| Capabilities | Authentication & API key, Rate quote, Transit time (RouteGuides), Electronic BOL, Pickup requests, Shipment tracking, Documents & images, Event subscriptions |
Getting access
- You need a MyEstes user profile. The username and password of that profile are sent when you request a bearer token. If you do not have one, sign up on the Estes website first.
- TMS providers must collect and store the MyEstes credentials of each Estes customer they serve, because every token is tied to one set of customer credentials.
- Email the Estes Web Support team (WebSupport@estes-express.com) with the developer name, email, title and company. Estes replies with a client ID and client secret for the test environment and a separate pair for production.
- Use the client ID and secret once to create your API key (POST /v1/api-key) in each environment. The response returns the API key plus a new client secret that replaces the emailed one. One key covers all of the new REST APIs.
- Some products are request-only: the Reserve PRO API and invoice event notifications are arranged through Web Support rather than self-service.
- The portal does not publish pricing or rate limits for API use.
Authentication
API key + short-lived bearer token (MyEstes credentials via Basic auth).
- Step 1 (one time per environment): call POST /v1/api-key with Basic authentication, using your client ID as the username and client secret as the password. GET /v1/api-key retrieves a lost key and DELETE /v1/api-key removes it; both use the new client secret.
- Step 2: call POST /authenticate with an `apikey` header and the MyEstes username and password in a Basic `Authorization` header. The JSON response contains `access_token`, `token_type` (Bearer) and `expires_in`.
- The sample token response shows `expires_in` of about 36,000 seconds (roughly 10 hours). Cache the token and refresh it before it expires.
- Step 3: send both headers on every API call: `Authorization: Bearer <token>` and `apikey: <your key>`.
- A bearer token is bound to one MyEstes login. TMS providers must not reuse a token across different customers.
- Client IDs and secrets are not API keys. The API key is not used by the older Estes legacy web services.
Environments
| Production | https://cloudapi.estes-express.com |
|---|---|
| Test (UAT) | https://uat-cloudapi.estes-express.com |
Endpoints
Authentication & API key
Create, retrieve or delete your API key with client credentials, then exchange MyEstes credentials for a bearer token.
| POST | /v1/api-key | Generate an API key; also returns a replacement client secret. |
| GET | /v1/api-key | Retrieve the API key already issued to your client. |
| DELETE | /v1/api-key | Delete your API key. |
| POST | /authenticate | Return a bearer token for a MyEstes user. |
Rate quote
Returns quotes for one or more Estes service levels from a single request. Handling units and their commodity line items are nested the same way as in the eBOL. The response also flags direct vs indirect lanes and includes origin and destination terminal details.
| POST | /v1/rate-quotes | Request rate quotes for the requested service levels. |
Transit time (RouteGuides)
Calculates service days from one origin to one or more destinations, and returns the origin and destination terminals that serve each point.
| POST | /v1/route-guides | Calculate transit days between an origin and a list of destinations. |
Electronic BOL
Submits an eBOL that follows version 2.0.1 of the NMFTA Digital LTL Council BOL standard. Freight bills are generated from the submitted data, and the request can ask for the BOL document and shipping labels back.
| POST | /v1/bol | Create an electronic bill of lading. |
Pickup requests
Create, update, read and cancel pickup requests. The status response includes expanded statuses and exception codes, and when the driver is en route it can show an ETA, stops away and GPS coordinates.
| POST | /v1/pickup-requests | Create a pickup request. |
| PUT | /v1/pickup-requests | Update an existing pickup request. |
| GET | /v1/pickup-requests/{requestNumber} | Get the details and status of a pickup request. |
| DELETE | /v1/pickup-requests/{requestNumber} | Cancel a pickup request. |
Shipment tracking
Returns full movement history and current status for a shipment, looked up by PRO or by a reference number. The response can include a dynamic estimated delivery date, ETA and stops away when out for delivery, appointment history and GPS coordinates.
| GET | /v1/shipments/history | Get tracking history by PRO or reference number. |
Documents & images
Fetches document images for a PRO, one document type per call. Results are URLs by default, with optional base64 data and an option to return only the latest version.
| GET | /v1/search/images/{document-type} | Get images of one document type (BOL, delivery receipt, invoice, etc.) for a PRO. |
Event subscriptions
Subscribe to pickup or shipment events so updates are pushed to you instead of polled. You can subscribe at the account level or for a specific pickup request or PRO.
| POST | /v1/events/pickup-requests/subscriptions | Create a pickup event subscription. |
| GET | /v1/events/pickup-requests/subscriptions | List pickup event subscriptions. |
| GET | /v1/events/pickup-requests/subscriptions/{subscriptionId} | Get one pickup event subscription. |
| GET | /v1/events/pickup-requests/subscriptions/{subscriptionId}/accounts | List accounts on a pickup subscription. |
| DELETE | /v1/events/pickup-requests/subscriptions/{subscriptionId}/accounts | Remove accounts from a pickup subscription. |
| POST | /v1/events/shipments/subscriptions | Create a shipment event subscription. |
| GET | /v1/events/shipments/subscriptions | List shipment event subscriptions. |
| GET | /v1/events/shipments/subscriptions/{subscriptionId} | Get one shipment event subscription. |
| GET | /v1/events/shipments/subscriptions/{subscriptionId}/accounts | List accounts on a shipment subscription. |
| DELETE | /v1/events/shipments/subscriptions/{subscriptionId}/accounts | Remove accounts from a shipment subscription. |
Example request
Use https://uat-cloudapi.estes-express.com with your test API key while developing. The test and production keys are different.
Integration notes
- You need two API keys, one for test and one for production, created separately with the matching client ID and secret. Creating a key returns a new client secret that replaces the emailed one, so store it immediately.
- Every call needs both the `Authorization: Bearer` token and the `apikey` header. Sending only the token fails.
- Rate quote dates use YYYY-MM-DD and ship time uses HH:MM (24-hour). The eBOL requestedPickupDate uses full ISO 8601, and setting it does not schedule a pickup; you still need the Pickup API.
- Weights are integers in pounds and dimensions are integers in inches. Many handling-unit fields (dimensions, tareWeight, packagingType, isStackable) only become required for time-critical, volume or exclusive-use service levels. Send them when you request ALL to get the most options back.
- Class is required per line item for LTL and LTLTC quotes and must be one of the standard values (50 through 500). NMFC item and sub are optional.
- Tracking accepts a PRO or one reference type (po, bol, pur, ldn, exl, interline-pro). Reference lookups can match other people's shipments, so set party-to=true to see only shipments your account is a party to. Non-payers get no charge data, and unauthorized callers get a redacted payload.
- The Images API takes one document type per call and needs the 10-character PRO. Some types (such as invoices) require payer authorization, others only party-to; consignee-zipCode enables non-party access for the party-to types.
- The API key is only for the new REST APIs. Estes' older legacy web services use a different scheme and are documented separately.
FAQ
Does Estes Express have a public API?
Yes. Estes publishes REST/JSON APIs for rate quotes, transit times, eBOL, pickups, tracking, document images and event subscriptions on its developer portal. You need a MyEstes login and an API key to call them.
How do I get an Estes API key?
Email Estes Web Support with your developer details to receive a client ID and secret for test and production. Then call POST /v1/api-key with those credentials in Basic auth to generate the key.
Can I track an Estes shipment by BOL or PO number through the API?
Yes. GET /v1/shipments/history accepts a PRO or a reference number such as po, bol, pur, ldn, exl or interline-pro. Use party-to=true to limit reference lookups to shipments your account is on.
How long does an Estes API bearer token last?
The documented sample token response shows an expires_in of about 36,000 seconds, roughly 10 hours. Read expires_in from each response rather than hard-coding it.
Can I download a delivery receipt (POD) from the Estes API?
Yes. Call GET /v1/search/images/dr with the PRO. You get image URLs by default and base64 data if you set include-image=true.
On FreightAPIs
Official resources
- Estes API developer portal: developer.estes-express.com/
- Estes REST API specs (Swagger): cloudapi.estes-express.com/specs/
Written from Estes Express Lines’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with Estes Express Lines; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.
Other carrier API guides
ABF Freight · Saia LTL Freight · TForce Freight · Old Dominion Freight Line · XPO (LTL) · AAA Cooper Transportation · AIT Worldwide Logistics · Amazon Freight