API

Vehicle Data API — VIN, value & recalls as JSON

Decode any VIN and pull open recalls, market value, insurance and fuel cost in one call. Clean JSON, one key, built on live NHTSA, EPA and real US market data — for dealers, listing sites and inventory tools.

Base · https://forcar.org · JSON · CORS-enabled · 10,000 decodes/day · Dealer plan
In one line

One key returns a VIN decode with open recalls and complaints, a mileage-adjusted market value, an insurance premium estimate and fuel cost — all as JSON, all from US government feeds or live listings. Part of the Dealer plan.

4
Endpoints
10k
Decodes / day
JSON
CORS-enabled

One key, four datasets

Every response is US-market and comes straight from government feeds or live listings — no scraping, no guesswork:

VIN decode + recalls — make, model, year, trim, engine, plant, plus open NHTSA recalls and complaint counts, per VIN.
Market value — low / estimate / high from real live US listings, mileage-adjusted; price a whole lot programmatically.
Insurance cost — estimated full-coverage premium by state, from HLDI loss indices × NAIC state premiums.
Fuel & MPG — EPA combined MPG (or MPGe) and the real yearly fuel cost per model, gas and EV.

The endpoints

Base URL https://forcar.org. Every response is JSON, CORS-enabled.

GET/api/v1/decodeDealer
Parameters
vinrequired17-character VIN (no I, O, Q).
keyauthYour API key, or send it as a Bearer header.
Response
"vin": "1HGCM82633A004352",
"year": 2003, "make": "HONDA",
"model": "Accord", "trim": "EX",
"body_class": "Coupe",
"engine": "6-cyl 3.0L",
"fuel": "Gasoline",
"plant": "Marysville, USA",
"open_recalls": 2,
"complaints": 147
GET/api/v1/valueDealer
Parameters
makerequired
modelrequired
yearrequired
mileageOptional — mileage-adjust the estimate.
Response
"make": "Toyota", "model": "Camry",
"year": 2019, "mileage": 62000,
"low": 17250,
"estimate": 19400,
"high": 21800,
"n": 143, "currency": "USD"
GET/api/v1/insuranceDealer
Parameters
makerequired
modelrequired
stateOptional 2-letter code (default US average).
Response
"make": "Ford", "model": "F-150",
"state": "TX",
"premium": 1612,
"loss_index": 112.0,
"vs_average_pct": 12,
"currency": "USD"
GET/api/v1/fuelDealer
Parameters
makerequired
modelrequired
milesOptional annual miles (default 15,000).
gasOptional $/gallon (default 3.50).
Response
"make": "Toyota", "model": "Prius",
"is_ev": false,
"mpg_combined": 52,
"annual_fuel": 1009,
"currency": "USD"

Quick start

Authenticate with ?key= or a Bearer header — both work everywhere.

# by query param
curl "https://forcar.org/api/v1/decode?vin=1HGCM82633A004352&key=YOUR_API_KEY"

# or Bearer header
curl -H "Authorization: Bearer YOUR_API_KEY" \
     "https://forcar.org/api/v1/value?make=Toyota&model=Camry&year=2019&mileage=62000"

Your key lives in your account — generate or rotate it any time. The API is part of the Dealer plan.

Limits & plan

Counters reset at midnight UTC. Over the limit returns HTTP 429.

EndpointDealer plan
/api/v1/decode — VIN, recalls, complaints10,000 / day
/api/v1/value — market value5,000 / day*
/api/v1/insurance — premium estimate5,000 / day*
/api/v1/fuel — MPG & fuel cost5,000 / day*

* Value, Insurance and Fuel share one 5,000/day pool. The API is part of the Dealer plan.

Questions, answered

Is there a free tier?+
Every VIN decode and recall check is free to use on the site. The REST API is part of the Dealer plan: 10,000 decode calls/day plus the Value, Insurance and Fuel APIs at 5,000 calls/day. No separate API sign-up — your account key just starts working.
How do I authenticate?+
Every request takes a 40-character API key, either as ?key=YOUR_KEY or an Authorization: Bearer YOUR_KEY header. You generate and rotate the key yourself from your account page. Keep it server-side.
Where does the data come from?+
Decode, recalls and complaints come straight from NHTSA's vPIC and recalls/complaints databases. Market values are computed from real, live US classified listings refreshed daily. Insurance uses HLDI loss indices × NAIC state premiums; fuel uses EPA combined MPG. All US-market.
Can I build a dealer inventory tool on it?+
Yes — that's the point. Decode a whole lot by VIN, pull a market value + under/over verdict per car, estimate insurance and fuel cost, and flag open recalls. Clean JSON, CORS-enabled, 10,000 decodes/day. Plenty for listing sites, lot management and CRM enrichment.
Is accident or title history in the API?+
No. Salvage/rebuilt titles and accident records aren't in public data, so they aren't in the API. The API covers decode, recalls, complaints, market value, insurance and fuel — the data we compute or source from US government feeds.
What are the rate limits?+
Decode: 10,000/day. Value + Insurance + Fuel share a 5,000/day pool. Over the limit returns HTTP 429 with the limit in the body. Counters reset at midnight UTC.