Dealer Inventory API & Feeds

Send your used-car inventory to NJCarListings.com automatically. Listing is free. All you need is a dealer account and an API key from your dashboard.

Authentication

Create a key under Dashboard → Inventory feed & API. Send it on every request:

Authorization: Bearer njcl_your_key_here

Keys are shown once — store them like a password. You can revoke a key at any time from your dashboard. Base URL: https://njcarlistings.com/api/v1

Feeds for inventory providers

If vAuto, HomeNet, Dealer.com, DealerOn, Dealer Inspire or another provider already syndicates your inventory, give them these instructions:

  • Destination: POST https://njcarlistings.com/api/v1/inventory with header Authorization: Bearer <dealer's key>
  • Format: CSV (comma, tab or pipe delimited, with a header row) or JSON. Common column names from other syndication feeds are recognized automatically — e.g. Stock #, VIN, Year, Make, Model, Trim, Odometer, Internet Price, Body Style, Ext Color, Image URLs.
  • Full inventory each time: send every car currently for sale. Cars that were in the last file but aren't in this one are marked sold. (Add ?mark_missing=false to only add/update.)
  • Frequency: up to every hour; once a night is typical.

Feed URL instead? If your provider or website can publish your inventory at a URL (CSV or JSON), paste it into your dashboard. We fetch it every night and you can press Sync now any time. FTP and XML feeds aren't supported yet.

curl -X POST "https://njcarlistings.com/api/v1/inventory" \
  -H "Authorization: Bearer njcl_your_key_here" \
  -H "Content-Type: text/csv" \
  --data-binary @inventory.csv

Endpoints

Method & pathWhat it does
POST /inventoryFull inventory sync (CSV or JSON). Cars not included are marked sold.
PUT /vehicles/{stock_number}Add or update one car (JSON).
POST /vehiclesAdd or update one car, or {"vehicles": [...]}. Other cars aren't touched.
DELETE /vehicles/{stock_number}Mark a car sold. Add ?status=removed to take it down instead.
GET /vehiclesYour listings with their public URLs. Optional ?status=active|sold, limit, offset.
GET /vehicles/{stock_number}One car.
GET /importsYour last 20 imports with counts and any skipped rows.
GET /meCheck your key: dealer name and listing counts.

Example: add or update one car

curl -X PUT "https://njcarlistings.com/api/v1/vehicles/A1234" \
  -H "Authorization: Bearer njcl_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "vin": "1HGCV1F34KA000000",
    "year": 2019, "make": "Honda", "model": "Accord", "trim": "EX-L",
    "mileage": 45210, "price": 21995,
    "exterior_color": "Black",
    "description": "One owner, clean history, new tires",
    "photos": ["https://example.com/photos/a1234-1.jpg"]
  }'

Example: mark sold

curl -X DELETE "https://njcarlistings.com/api/v1/vehicles/A1234" -H "Authorization: Bearer njcl_your_key_here"

Vehicle fields

FieldDescriptionNeeded
stock_numberYour stock number (or send a VIN). This is the car's ID in our system — keep it the same for updates.Required*
vin17-character VIN. Used to fill in body style, drivetrain, fuel and transmission when you don't send them.Recommended
year, make, modele.g. 2019, Honda, AccordRequired
priceAsking price in dollars, whole number. Cars without a price are skipped.Required
trime.g. EX-L
mileageOdometer milesRecommended
body_styleSedan, SUV, Truck, Coupe, Hatchback, Convertible, Wagon, Minivan, Van
transmissionAutomatic, Manual, CVT
drivetrainFWD, RWD, AWD, 4WD
fuel_typeGasoline, Hybrid, Plug-in Hybrid, Electric, Diesel, Flex Fuel
exterior_color, interior_colorColor names
conditionExcellent, Good, Fair, Poor
title_statusClean, Lien (financed), Rebuilt, Salvage
descriptionUp to 5,000 characters. HTML is removed.
photo_urlsUp to 30 public https image URLs. In CSV, separate with | ; or spaces. In JSON send an array named photos.Recommended
statusSend sold to mark a car sold. Anything else (or blank) = for sale.
zip, cityOnly if the car is at a different NJ lot than your profile address.

*A stock number or a valid VIN is required. New-vehicle rows (Type = New) are skipped — NJCarListings.com lists used cars. Photos are shown from your image server, so the URLs must stay public.

CSV format

One row per car with a header row. Column names are flexible (case, spaces and punctuation are ignored). Download the template.

stock_number,vin,year,make,model,trim,mileage,price,body_style,transmission,drivetrain,fuel_type,exterior_color,interior_color,condition,title_status,description,photo_urls
A1234,1HGCV1F34KA000000,2019,Honda,Accord,EX-L,45210,21995,Sedan,Automatic,FWD,Gasoline,Black,Gray,Excellent,Clean,"One owner, clean history, new tires",https://example.com/photos/a1234-1.jpg|https://example.com/photos/a1234-2.jpg

Responses & errors

Imports return a summary. Rows we couldn't use are listed with the reason, and the rest are still imported:

{
  "ok": true,
  "received": 120, "created": 4, "updated": 11, "unchanged": 103,
  "sold": 2, "skipped": 2,
  "errors": [ { "row": 17, "ref": "B552", "error": "missing price (we can't list cars without a price)" } ]
}

401 bad or revoked key · 403 not a dealer account · 400 bad request · 413 more than 3,000 cars or 15 MB in one request. If a full sync contains no usable cars, nothing is marked sold.

Questions or need help with a provider? Email [email protected].