ShipCargo Partner Pricing API
Version 1 · Updated November 6, 2026 · Live prices, secure booking and affiliate credit.
How it works
Apply through the partner application form. Our team reviews applications and replies by email if approved. API keys are issued manually by staff only after approval; there is no self-serve key signup.
- Your server sends the route, vehicles, transport type and ship date to Directory prices, without customer contact details.
- We return Standard and Expedited retail totals, pickup and estimated delivery windows, and a separate bookingUrl for each.
- Send the shopper to the selected bookingUrl. Contact details stay in the form until they confirm their card and book.
- Pay At Pickup: $0 today. ShipCargo charges the customer's card the full total when the vehicle is picked up. You are never billed.
- The customer gets our usual confirmation emails and texts. You can check progress with Get quote status.
Prices are the same live retail prices shown on shipcargoai.com. Include integration questions in your partner application.
Base URL
https://shipcargoai.com/api/public/partner/v1Authentication
Calls are server-to-server. Every request needs your secret API key in the Authorization header, formatted as Bearer followed by a space and your key. Never expose the key in browser JavaScript, HTML, mobile app bundles, URLs or public repositories.
Authorization: Bearer atai_live_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Content-Type: application/jsonLimit: 60 requests per minute per key. Over the limit returns 429.
Directory prices — no contact details
POST https://shipcargoai.com/api/public/partner/v1/prices · Response 200. Use this endpoint for directory search results, not Create quote.
Every successful price request is saved as a partner API price quote with its source, route, vehicles, ship date and both totals. It appears in Ops daily quote metrics with its partner origin. No customer contact record or Sales Pipeline contact is created, and no emails, texts or drip follow-ups are sent by a price search.
{
"pickup": { "address": "Houston, TX 77002" },
"delivery": { "address": "Atlanta, GA 30303" },
"vehicles": [
{ "year": 2021, "make": "Toyota", "model": "Camry", "operable": true }
],
"transportType": "open",
"firstAvailableDate": "2026-11-05"
}Required: pickup and delivery addresses, 1–8 vehicles with year/make/model, and firstAvailableDate (valid YYYY-MM-DD, today or later). Transport type is open (default) or enclosed. Operable defaults to true. Optional VIN and sizeClass follow the vehicle definitions below. Do not send customer or serviceLevel fields; both service levels are returned.
Illustrative response only — example totals are not a rate promise; render the returned live totals:
{
"currency": "USD",
"source": "your-dealership",
"vehicleCount": 1,
"dueToday": 0,
"prices": [
{
"serviceLevel": "standard",
"price": 1149,
"priceValidUntil": "2026-11-13T03:09:00.000Z",
"transportType": "open",
"pickupWindow": { "start": "2026-11-05", "end": "2026-11-11", "description": "Pickup within 1–7 business days" },
"deliveryWindow": { "start": "2026-11-07", "end": "2026-11-11", "estimated": true },
"bookingUrl": "https://shipcargoai.com/book/partner?ticket=<signed-standard-ticket>"
},
{
"serviceLevel": "expedited",
"price": 1379,
"priceValidUntil": "2026-11-13T03:09:00.000Z",
"transportType": "open",
"pickupWindow": { "start": "2026-11-05", "end": "2026-11-09", "description": "Pickup within 1–5 business days" },
"deliveryWindow": { "start": "2026-11-07", "end": "2026-11-11", "estimated": true },
"bookingUrl": "https://shipcargoai.com/book/partner?ticket=<signed-expedited-ticket>"
}
]
}Forward bookingUrl exactly as returned; do not rebuild it or put your API key on it. Booking links do not expire, but each price is valid for seven days from issuance, until its priceValidUntil timestamp (UTC). During that period ShipCargo honors the returned price for the unchanged shipment. After seven days, or if the pickup date is in the past, the link opens an updated-quote page instead of checkout. The customer confirms their pickup date, gets a fresh price and reviews it before booking; ShipCargo never silently charges a different amount. Dates are estimates, not guaranteed appointments.
curl -X POST https://shipcargoai.com/api/public/partner/v1/prices \
-H "Authorization: Bearer $SHIPCARGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"pickup":{"address":"Houston, TX 77002"},"delivery":{"address":"Atlanta, GA 30303"},"vehicles":[{"year":2021,"make":"Toyota","model":"Camry"}],"transportType":"open","firstAvailableDate":"2026-11-05"}'Booking flow
- Show both returned totals and send the shopper to the selected bookingUrl.
- On ShipCargo, they review the route and total, enter their contact details, and authorize Pay At Pickup.
- Stripe securely saves the card with no charge or hold. Only after successful card confirmation do we store the customer, create the quote and order, and send our usual booking confirmation email and text.
- The customer, never your dealership, is charged the full order total when their vehicle is picked up. Nothing is due at delivery.
- The quote and order are attributed to your partner account. The customer receives shipment confirmation and tracking links.
The directory response does not include a customer quoteId; its saved price request is linked to the order after successful checkout. The customer quote is created at checkout. There is no booking callback/webhook in version 1: use the affiliate dashboard or obtain the customer quote number from ShipCargo Ops for status lookup. Do not assume a booking succeeded just because someone clicked a booking link.
API keys: refresh and turn off
ShipCargo staff manage credentials in Ops → Admin Settings → Partner API. Create the key with the correct affiliate credit account selected. The full secret is shown once; share it privately and store it on your server.
- Refresh key: replaces the secret immediately. The old credential returns 401; deploy the replacement on your server before resuming requests. Existing signed booking links, historical status ownership and affiliate identity remain intact.
- Turn off: rejects new authenticated requests and outstanding booking links. Already-created shipments and earned affiliate credit are not cancelled. Requests already processing may finish.
- Coordinate refreshes with ShipCargo; do not refresh the production key solely to test the control.
Affiliate sales and commission
A key linked to an affiliate account credits customer quotes and delivered shipments to that account without adding a discount code or changing the retail price. Linked API attribution takes precedence over another affiliate's code. ShipCargo tracks the price request → booking → delivered shipment; a price request or button click alone earns no commission.
Commission uses the affiliate's existing agreement and settings. The current payout rules require a delivered/closed, nondeleted shipment with customer-payment evidence and no refunded payment record. Earnings and monthly payment records are visible in Ops → Partners and the affiliate dashboard at https://shipcargoai.com/affiliates/login. Payouts are administered by ShipCargo; the API does not automatically transfer commission money.
Vendor launch checklist
- Confirm the source slug, affiliate account, sign-in email, commission agreement and payout details with ShipCargo.
- Keep the key on your server. Protect your own price proxy against abuse and validate every form field.
- Use POST /prices, display each returned live price and use its bookingUrl unchanged.
- After form edits, clear old results and fetch new prices. Ignore late responses from older searches.
- Display priceValidUntil and request a fresh price after seven days. Verify an older booking link opens the updated-quote page, not a card form.
- Check both tiers, open/enclosed, operable/inoperable, multiple vehicles, mobile navigation, validation failures, rate limits and outages.
- Coordinate a payment-safe checkout with ShipCargo, confirm the order in Ops, and confirm affiliate credit after actual delivery before signing off.
- Publish ShipCargo's updates and deploy your own integration before launch. Monitor errors without recording secrets, contact details or full booking tickets.
Create quote
Legacy contact-based endpoint. This creates a customer and quote and sends normal quote follow-ups immediately. Do not use it for directory browsing or the contact-free booking flow above.
POST https://shipcargoai.com/api/public/partner/v1/quotes
{
"pickup": { "address": "1600 Main St, Houston, TX 77002" },
"delivery": { "address": "200 Peachtree St, Atlanta, GA 30303" },
"vehicles": [
{ "year": 2021, "make": "Toyota", "model": "Camry", "operable": true }
],
"transportType": "open", // "open" (default) or "enclosed"
"serviceLevel": "standard", // "standard" (default) or "expedited"
"firstAvailableDate": "2026-11-05", // optional, YYYY-MM-DD
"customer": {
"name": "Jane Smith",
"email": "jane@example.com",
"phone": "713-555-0100", // optional
"smsOptIn": true // customer agreed to texts
}
}- Use full addresses with city, state and ZIP for the most accurate price.
- 1–8 vehicles. Optional per vehicle:
vin(17 characters) andsizeClass(sedan, coupe, small_suv, large_suv, small_truck, truck, large_truck, van, large_van). - Standard: pickup within 1–7 business days. Expedited: pickup within 1–5 business days.
Response 201:
{
"quoteId": "48213907",
"status": "quoted",
"currency": "USD",
"price": 1149,
"dueToday": 0,
"paymentTerms": "Pay At Pickup: $0 today. The card is charged the full total when the vehicle is picked up.",
"serviceLevel": "standard",
"vehicleCount": 1,
"distanceMiles": 790,
"pickupWindow": { "start": "2026-11-05", "end": "2026-11-13" },
"deliveryWindow": { "start": "2026-11-07", "end": "2026-11-16" },
"bookingUrl": "https://shipcargoai.com/book/48213907"
}Get quote status
GET https://shipcargoai.com/api/public/partner/v1/quotes/{quoteId} — only customer quotes created or booked with your key. Refreshing that key preserves access. Price-request IDs are not accepted here.
{
"quoteId": "48213907",
"status": "driver_assigned",
"price": 1149,
"currency": "USD",
"serviceLevel": "standard",
"pickupWindow": { "start": "2026-11-05", "end": "2026-11-13" },
"deliveryWindow": { "start": "2026-11-07", "end": "2026-11-16" },
"bookingUrl": null
}Status values: quoted, booked, searching_for_driver, driver_assigned, picked_up, in_transit, delivered, cancelled.
Errors
401 missing_or_invalid_api_key— key missing, wrong or turned off.400 invalid_json— send valid JSON with Content-Type: application/json.404 not_found— no quote exists for this partner source and identifier.422 validation_failed— seedetailsfor the fields to fix.422 quote_failed— the route couldn't be priced; check the addresses.429 rate_limited— wait 60 seconds.503 pricing_unavailable / service_unavailable— pricing or a required service is unavailable; retry shortly.
{
"error": "rate_limited",
"retryAfterSeconds": 60,
"limit": 60
}Rate-limited responses include the Retry-After: 60 header. Limit is shared by all endpoints for a key, including malformed authenticated requests. Validation errors include details keyed by field. Never treat an error response as a price.
Example (curl)
curl -X POST https://shipcargoai.com/api/public/partner/v1/quotes \
-H "Authorization: Bearer $SHIPCARGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"pickup":{"address":"Houston, TX 77002"},"delivery":{"address":"Atlanta, GA 30303"},
"vehicles":[{"year":2021,"make":"Toyota","model":"Camry"}],
"customer":{"name":"Jane Smith","email":"jane@example.com"}}'Cancellations and changes
There are no API endpoints for cancellation, changes or commission transfers in version 1. Customers can manage their booking from their confirmation email. Include partner integration questions in your application.