Carrier’s official API
Mothership API: integration guide
Mothership is a US freight platform that quotes and books LTL and truckload moves, both on its own network and through partner LTL carriers such as ABF, Saia, Old Dominion and TForce. Its REST/JSON API lets you request quotes, buy a rate to create a shipment, follow tracking events, download BOL and POD documents, and sync invoices. It suits shippers and platforms that want instant freight pricing and booking without a carrier-by-carrier integration.
This guide covers Mothership’s own API (api.mothership.com). Credentials come from Mothership, not from FreightAPIs, and we are not affiliated with them.
Want one API key for carrier terminals, NMFC and ports instead? FreightAPIs API docs →
At a glance
| Carrier | Mothership |
|---|---|
| Type | Freight marketplace |
| SCAC | MHPG |
| Interface | REST/JSON |
| Authentication | Static bearer token |
| Capabilities | Account check, Rate quote, Transit time, Booking & shipment management, Shipment tracking, Documents (BOL, POD), Invoices |
Getting access
- Create a Mothership user account first, then request API access through Mothership’s developer documentation site (developers.mothership.com), which requires signing in.
- Mothership generates a static API token for you. Production tokens are also managed from the API settings area of the Mothership dashboard.
- Booking a shipment charges the default payment method on your Mothership organization, so a payment method must be set up in the dashboard before you can buy rates in production.
- The documentation reviewed does not list API fees or published rate limits beyond a 429 response when too many shipments are created in a short time.
Authentication
Static bearer token.
- Send Authorization: Bearer <API_TOKEN> on every request. There is no OAuth exchange and no documented token expiry.
- Call GET /account to confirm a token works; it returns your company account details.
- Authentication failures come back with error type UNAUTHENTICATED; a token without access to a resource returns MISSING_PERMISSION.
Environments
| Production | https://api.mothership.com/beta |
|---|
Endpoints
Account check
Retrieve the account tied to your token. Useful as a health check when wiring up credentials.
| GET | /account | Return company account details for the calling token. |
Rate quote
Send pickup and delivery locations, freight lines and a pickup-ready date. Mothership returns a quote ID with an expiry time and a list of rates from its own network and partner carriers, each with price, transit days and service options.
| POST | /quotes | Create a quote and return the available rates. |
Transit time
Transit time is part of each rate rather than a separate call. Every rate carries a minimum and maximum transit-day range plus estimated pickup and delivery dates.
| POST | /quotes | Read transitDays and estimated dates from each returned rate. |
Booking & shipment management
Turn a quote into a shipment by sending the quote ID and the chosen rate ID. Mothership charges your default payment method and returns a shipment ID (for example MS-prefixed) with an initial status of Unallocated. Shipments can also be listed, fetched and cancelled.
| POST | /shipments | Buy a rate from a quote and create the shipment. |
| GET | /shipments | List your shipments. |
| GET | /shipments/{id} | Get one shipment in full. |
| POST | /shipments/{id}/cancel | Cancel a shipment. |
Shipment tracking
Get the tracking event history for a shipment. Events include a timestamp, the current city and state when the carrier supplies them, and the carrier PRO number once one is assigned.
| GET | /tracking/{shipmentId} | Return tracking events for a shipment. |
Documents (BOL, POD)
List the documents available for a shipment, each with a temporary download URL and its expiry time. A separate call resolves a file ID to its download location through a redirect.
| GET | /documents/{shipmentId} | List available documents with temporary download URLs. |
| GET | /files/{fileId} | Redirect (301) to the download location of a file. |
Invoices
Sync invoices incrementally by asking for everything created or changed since a timestamp, list invoices for a shipment, and fetch full invoice detail with line items, payments, credits and status.
| GET | /invoices/modified_since | List invoice IDs created or modified since a timestamp (paginated). |
| GET | /invoices/by_shipment_id/{shipmentId} | List invoices linked to one shipment (paginated). |
| GET | /invoices/{invoiceId} | Get one invoice with line items, payments and status. |
Example request
Pick a rate from data.rates, then POST {"quoteId": "<data.id>", "rateId": "<rate id>"} to /shipments before data.expiresAt passes. Check data.metadata.purchasable first.
Integration notes
- Money uses two units. Quote and shipment prices are in dollars, while every invoice amount (total, amountDue, line items) is in cents. Convert before comparing a quote to its invoice.
- Quotes expire at expiresAt. Booking with an expired quoteId fails, so re-quote rather than caching quotes for long.
- A quote can return rates but still not be purchasable. If metadata.purchasable is false, fill in the fields listed in invalidFieldsRequiredForPurchase (for example contact details) and quote again; booking otherwise fails with QUOTE_NOT_PURCHASABLE.
- Times are 24-hour HHmm strings ("0900"), dates are YYYY-MM-DD, phone numbers are E.164 ("+1..."). Freight weight is pounds per piece and dimensions are whole inches, each at least 1.
- rateResponseTimeoutMs defaults to 25,000 ms (minimum 5,000). Lowering it speeds up the response but can drop slower carriers from the rate list.
- Document URLs are temporary. Store the file, not the link, and call the documents endpoint again after expiresAt. POD only appears after delivery.
- Tracking eventType and status are free text from the carrier, not a fixed enum. Match loosely, and expect city, state and proNumber to be missing on some events.
- All responses wrap their payload in a data object, including errors, which carry a type such as INVALID_REQUEST, NO_RATES_FOUND, CARGO_TOO_LARGE, PAYMENT_REQUIRED or RATE_LIMIT_EXCEEDED. The rate fields truck and serviceType are deprecated in favor of services.
FAQ
Does Mothership have an API?
Yes. Mothership has a REST/JSON API for freight quotes, booking, tracking, documents and invoices.
How do I get a Mothership API token?
Create a Mothership account, then request API access through the Mothership developer site. Mothership issues a static bearer token that you send in the Authorization header.
Which carriers does the Mothership API quote?
Rates can come from Mothership's own network and from partner LTL carriers including ABF, Central Transport, Forward Air, Old Dominion, Saia, Southeastern, TForce, Ward and XPO. Each rate names its provider and SCAC.
How do I book a shipment with the Mothership API?
Create a quote with POST /quotes, choose a rate, then POST /shipments with the quoteId and rateId. The shipment is charged to your organization's default payment method.
Can I get a proof of delivery from the Mothership API?
Yes. GET /documents/{shipmentId} lists available documents, including billOfLading and proofOfDelivery, each with a temporary download URL. The POD appears once the shipment is delivered.
On FreightAPIs
Official resources
- Mothership developer docs: developers.mothership.com
- Authentication reference: developers.mothership.com/reference/authentication
Written from Mothership’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with Mothership; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.
Other carrier API guides
ABF Freight · Estes Express Lines · Saia LTL Freight · TForce Freight · Old Dominion Freight Line · XPO (LTL) · AAA Cooper Transportation · AIT Worldwide Logistics