Dashboard
Live counts for your current keys.
More room to build
Upgrade in one click; your keys move to the new plan instantly.
Your first request
- Base URL
- Auth
- header
x-api-key - Rate limit
- —
- Quota
- —
- Data refresh
- daily · NHTSA/EPA every build · press kits weekly
curl "/vehicles?make=kia&year=2026" \
-H "x-api-key: YOUR_KEY"What happens tonight
- Every night
- Every VIN on your list is re-checked against the current NHTSA record
- If something changes
- One email the next morning — never one per vehicle
- If nothing changes
- Silence, and the check is still recorded
- Your record
- A dated log of every change, exportable as CSV
- On the 1st
- A statement for the month just ended, emailed — including any vehicle that left your list with a campaign still open
API keys
| Name | Client ID | Key | Created |
|---|
Each key gets its own client ID so you can attribute usage per app or environment. Keys are shown once at creation.
Bulk dataset
Last night’s build, as one file
Every vehicle record, every recall campaign, grades, trouble codes and the OEM lookup table — the same JSON the API serves, zipped nightly with a README and a SHA-256. Included in the Pro and Business plans; for use inside your own applications and analyses, never for redistribution.
Endpoints, and what broke
| Endpoint | Calls | Failed | Failure rate | Keys |
|---|
Last 30 days, counted as we answer each request. A failure is any 4xx or 5xx — mostly a bad identifier or an over-quota 429. Rate limits and status codes.
No requests on your keys in the last 30 days. Once you start calling the API this becomes a breakdown by endpoint, with the failures separated out.
Quick start
curl
curl "/vehicles?make=kia&year=2026" \
-H "x-api-key: YOUR_KEY"JavaScript
const r = await fetch(
"/vehicles/2026_kia_sportage",
{ headers: { "x-api-key": "YOUR_KEY" } });
const v = await r.json();Python
import requests
r = requests.get("/recalls",
params={"since": "2026-01"},
headers={"x-api-key": "YOUR_KEY"})
print(r.json()["count"])Recall Watch
Watch your inventory
Paste VINs, one per line — or VIN,stock number to keep your own numbering, or VIN,stock number,lot if you run more than one rooftop. We re-check every one against the NHTSA record each night and email you the morning something changes. How it works.
Exports are kept for three years from the date of the check.
On the 1st of each month we also email you a statement covering the month just ended — what opened, what closed, and any vehicle removed from the list while a campaign was still open. Each row's disclosure link prints a dated, source-cited one-page recall disclosure for that vehicle.
| Vehicle | VIN | Stock | Lot | Open recalls | Last checked |
|---|
Sold — still watched
A vehicle you mark sold stays on the list and is checked every night, so your service department hears when a campaign lands on a car you sold — warranty-paid work, and a call the owner is glad to get before the manufacturer's letter. Sold vehicles count toward the plan's vehicle limit; remove one to free the slot.
| Vehicle | VIN | Stock | Lot | Sold on | Open recalls | Last checked |
|---|
Reconcile with your lot list
Paste what is actually on the lot today and see three things: what is new, what has gone, and — the one worth reading — what has gone while a recall was still open. Nothing is added or removed by this; it only tells you.
Webhook delivery
Post the same nightly digest to your own system as JSON, signed so you can prove it came from us. The email still goes out — this is the integration, not a replacement for the person who books the shop visit. How to verify a delivery.
Cancelling Recall Watch
One click, no email, no retention call. You keep the plan until the end of the period you have paid for, and then drop to the free tier — your VIN list is not deleted. The ten oldest stay watched nightly; the rest are kept but not checked, so re-subscribing picks up exactly where you left off. Export your change log first if you need the dated record for a file.
Your new API key
Copy it now — it will not be shown again.
Client ID: