Need to charter a bus? Visit All Bus Charter.

Get Charter Quote

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

POST https://allbussales.com/api/public/v1/listings/bulk

Authentication

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_xxxxxxxxxxxxxxxx

Request 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).

FieldRequiredNotes
stock_numberNoYour internal unique ID. Used as the upsert key for this partner.
bus_typeNoMotorcoach, School Bus, Shuttle Bus, Mini Bus, Transit Bus…
makeYesMCI, Prevost, Van Hool, Blue Bird…
modelYesJ4500, H3-45, D4505…
yearYes4-digit model year.
mileageNoOdometer in miles (numbers only).
passenger_capacityNoNumber of passenger seats.
fuel_typeNoDiesel, Gasoline, CNG, Electric…
engineNoDetroit DD13, Cummins ISX…
transmissionNoAllison B500, Manual…
conditionNonew or used.
priceYesUSD, numbers only. 0 = call for price.
vinNoVehicle identification number.
cityNoWhere the unit is located.
stateNoUS state (2-letter or full name).
photo_urlsNoPublic image URLs separated by comma, semicolon or pipe. First one becomes the cover.
video_urlNoYouTube/Vimeo/MP4 link.
descriptionNoFree-text description of the unit.
seller_companyNoDealer / fleet name shown on the listing.
seller_typeNoFleet Operator, Licensed Dealer, Independent Seller or Manufacturer.
seller_phoneNoContact phone. Phone or email is required.
seller_emailNoContact 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; see errors[] for row number and reason.
  • moderationapproved for verified partners (published immediately) or pending_review for everyone else.

Status codes

  • 200 — processed (check the per-row errors array).
  • 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.