Docs / Endpoints
All endpoints
Set RECALLDB_KEY to your key, then paste. Each endpoint's own page has JavaScript and Python versions and the full response.
export RECALLDB_KEY=rdb_your_keyGET /v1/recalls/{id}
One recall by its official number.
curl https://recalldb.app/v1/recalls/21V215000 \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/vehicles/{make}/{model}/{year}
The NHTSA recalls for one make, model and model year (up to 50).
curl https://recalldb.app/v1/vehicles/honda/civic/2019 \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/recalls/{id}/history
What the agency changed in a recall since we first saw it.
curl https://recalldb.app/v1/recalls/21V215000/history \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/search
Full-text search across every category, with filters.
curl https://recalldb.app/v1/search?q=bunk+bed&category=consumer_product \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/barcode/{code}
Recalls whose official notice lists this barcode.
curl https://recalldb.app/v1/barcode/036000291452 \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/new
Recalls first seen since a date, newest first, for polling integrations.
curl https://recalldb.app/v1/new?category=consumer_product&limit=5 \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/companies/{id}
All recalls filed under one company name, across agencies.
curl https://recalldb.app/v1/companies/ford-motor \
-H "Authorization: Bearer $RECALLDB_KEY"POST /v1/vins/batch
Decode many VINs and list the recalls filed for each one's make, model and year.
curl -X POST https://recalldb.app/v1/vins/batch \
-H "Authorization: Bearer $RECALLDB_KEY" \
-H "Content-Type: application/json" \
-d '{"vins": ["1HGCM82633A004352", "5YJ3E1EA7KF317000"]}'POST /v1/vin
Decode a VIN to the vehicle and its model's recalls.
curl -X POST https://recalldb.app/v1/vin \
-H "Authorization: Bearer $RECALLDB_KEY" \
-H "Content-Type: application/json" \
-d '{"vin": "1HGCM82633A004352"}'GET /v1/usage
Your key's usage this month, your limit and the reset date.
curl https://recalldb.app/v1/usage \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/downloads
The monthly snapshot files, for keys with approved research access.
curl https://recalldb.app/v1/downloads \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/health
How fresh each data source is. No key needed.
curl https://recalldb.app/v1/healthPOST /v1/watchlists
Create a watchlist of makes, models, brands, categories and UPCs.
curl -X POST https://recalldb.app/v1/watchlists \
-H "Authorization: Bearer $RECALLDB_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "My brands", "brands": ["Graco"], "categories": ["car_seat"], "webhook_id": "wh_3f9a1c07b2d4"}'GET /v1/watchlists
Your watchlists and your plan limits.
curl https://recalldb.app/v1/watchlists \
-H "Authorization: Bearer $RECALLDB_KEY"DELETE /v1/watchlists/{id}
Delete a watchlist.
curl -X DELETE https://recalldb.app/v1/watchlists/wl_8c1d2e3f4a5b \
-H "Authorization: Bearer $RECALLDB_KEY"POST /v1/webhooks
Register an HTTPS address that receives signed messages.
curl -X POST https://recalldb.app/v1/webhooks \
-H "Authorization: Bearer $RECALLDB_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/recalls"}'GET /v1/webhooks
Your webhooks and their status.
curl https://recalldb.app/v1/webhooks \
-H "Authorization: Bearer $RECALLDB_KEY"DELETE /v1/webhooks/{id}
Delete a webhook and its delivery log.
curl -X DELETE https://recalldb.app/v1/webhooks/wh_3f9a1c07b2d4 \
-H "Authorization: Bearer $RECALLDB_KEY"POST /v1/webhooks/{id}/test
Queue a signed test message.
curl -X POST https://recalldb.app/v1/webhooks/wh_3f9a1c07b2d4/test \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/webhooks/{id}/deliveries
The last 50 deliveries for a webhook.
curl https://recalldb.app/v1/webhooks/wh_3f9a1c07b2d4/deliveries \
-H "Authorization: Bearer $RECALLDB_KEY"GET /v1/downloads
Monthly summary snapshots (gzipped CSV and JSON) for keys with approved research and journalism access (request it at /data). Daily full-field snapshots are planned for Pro. Free keys created before 2026-11-15 can use them until 2026-12-15; other keys get 403 plan_limit.
curl https://recalldb.app/v1/downloads \
-H "Authorization: Bearer $RECALLDB_KEY"
curl -O https://recalldb.app/v1/downloads/recalls-2026-10.csv.gz \
-H "Authorization: Bearer $RECALLDB_KEY"