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/inventorywith headerAuthorization: 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=falseto 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 & path | What it does |
|---|---|
POST /inventory | Full inventory sync (CSV or JSON). Cars not included are marked sold. |
PUT /vehicles/{stock_number} | Add or update one car (JSON). |
POST /vehicles | Add 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 /vehicles | Your listings with their public URLs. Optional ?status=active|sold, limit, offset. |
GET /vehicles/{stock_number} | One car. |
GET /imports | Your last 20 imports with counts and any skipped rows. |
GET /me | Check 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
| Field | Description | Needed |
|---|---|---|
stock_number | Your stock number (or send a VIN). This is the car's ID in our system — keep it the same for updates. | Required* |
vin | 17-character VIN. Used to fill in body style, drivetrain, fuel and transmission when you don't send them. | Recommended |
year, make, model | e.g. 2019, Honda, Accord | Required |
price | Asking price in dollars, whole number. Cars without a price are skipped. | Required |
trim | e.g. EX-L | |
mileage | Odometer miles | Recommended |
body_style | Sedan, SUV, Truck, Coupe, Hatchback, Convertible, Wagon, Minivan, Van | |
transmission | Automatic, Manual, CVT | |
drivetrain | FWD, RWD, AWD, 4WD | |
fuel_type | Gasoline, Hybrid, Plug-in Hybrid, Electric, Diesel, Flex Fuel | |
exterior_color, interior_color | Color names | |
condition | Excellent, Good, Fair, Poor | |
title_status | Clean, Lien (financed), Rebuilt, Salvage | |
description | Up to 5,000 characters. HTML is removed. | |
photo_urls | Up to 30 public https image URLs. In CSV, separate with | ; or spaces. In JSON send an array named photos. | Recommended |
status | Send sold to mark a car sold. Anything else (or blank) = for sale. | |
zip, city | Only 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].