Partner Inventory API
Push your inventory straight into the All Bus Sales marketplace. Same field dictionary as the spreadsheet import and the XML/JSON feed sync.
Endpoint
https://allbussales.com/api/public/v1/listings/bulkAuthentication
Generate an API key in Bulk Import → API keys. The key is shown once and stored hashed on our side. Always send it in a header — never as a query string parameter.
Authorization: Bearer abs_live_xxxxxxxxxxxxxxxx
# or
X-API-Key: abs_live_xxxxxxxxxxxxxxxxRequest body
A JSON array of listings, or an object with a listings array. Maximum 500 items per request. Records are upserted using stock_number as the unique key within your partner account (VIN is used as fallback when no stock number is supplied).
| Field | Required | Notes |
|---|---|---|
| stock_number | No | Your internal unique ID. Used as the upsert key for this partner. |
| bus_type | No | Motorcoach, School Bus, Shuttle Bus, Mini Bus, Transit Bus… |
| make | Yes | MCI, Prevost, Van Hool, Blue Bird… |
| model | Yes | J4500, H3-45, D4505… |
| year | Yes | 4-digit model year. |
| mileage | No | Odometer in miles (numbers only). |
| passenger_capacity | No | Number of passenger seats. |
| fuel_type | No | Diesel, Gasoline, CNG, Electric… |
| engine | No | Detroit DD13, Cummins ISX… |
| transmission | No | Allison B500, Manual… |
| condition | No | new or used. |
| price | Yes | USD, numbers only. 0 = call for price. |
| vin | No | Vehicle identification number. |
| city | No | Where the unit is located. |
| state | No | US state (2-letter or full name). |
| photo_urls | No | Public image URLs separated by comma, semicolon or pipe. First one becomes the cover. |
| video_url | No | YouTube/Vimeo/MP4 link. |
| description | No | Free-text description of the unit. |
| seller_company | No | Dealer / fleet name shown on the listing. |
| seller_type | No | Fleet Operator, Licensed Dealer, Independent Seller or Manufacturer. |
| seller_phone | No | Contact phone. Phone or email is required. |
| seller_email | No | Contact email. Phone or email is required. |
Additionally, at least one of seller_phone or seller_email must be present on every record.
Example request
curl -X POST "https://allbussales.com/api/public/v1/listings/bulk" \
-H "Authorization: Bearer abs_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"listings": [
{
"stock_number": "AB-1042",
"bus_type": "Motorcoach",
"make": "MCI",
"model": "J4500",
"year": 2016,
"mileage": 412000,
"passenger_capacity": 56,
"fuel_type": "Diesel",
"engine": "Detroit DD13",
"transmission": "Allison B500",
"condition": "used",
"price": 179000,
"vin": "1M8PDMPA7GP012345",
"city": "Orlando",
"state": "FL",
"photo_urls": "https://cdn.example.com/1.jpg,https://cdn.example.com/2.jpg",
"video_url": "https://youtu.be/example",
"description": "Well maintained coach, service records available.",
"seller_company": "Example Coach Lines",
"seller_phone": "+1 (321) 204-7724",
"seller_email": "sales@example.com"
}
]
}'Example response
{
"received": 1,
"created": 1,
"updated": 0,
"failed": 0,
"moderation": "pending_review",
"errors": []
}created/updated— records inserted or upserted.failed— records rejected; seeerrors[]for row number and reason.moderation—approvedfor verified partners (published immediately) orpending_reviewfor everyone else.
Status codes
- 200 — processed (check the per-row
errorsarray). - 400 — malformed JSON or missing listings array.
- 401 — missing, invalid or revoked API key.
- 413 — more than 500 listings in one request.
Other import methods
Prefer not to code? Upload a CSV/XLSX or register a public XML/JSON feed URL from the Bulk Import area of your account — the field dictionary above applies to all three.