Docs / Recalls by company
Recalls by company
All recalls filed under one company name, across agencies.
GET/v1/companies/{id} · API key required
The id is the company address on checkrecalls.org (/company/ford-motor). Companies need at least two recalls. Names are matched as the agencies wrote them (case, punctuation and endings like Inc or LLC are ignored); companies with similar names can be listed separately.
A listing is a notice that names the company. It does not say whether an item is or is not affected.
Parameters
| Name | In | Required | Description |
|---|---|---|---|
id | path | yes | The company id from its checkrecalls.org address. Example: ford-motor |
Request
curl https://recalldb.app/v1/companies/ford-motor \
-H "Authorization: Bearer $RECALLDB_KEY"const res = await fetch('https://recalldb.app/v1/companies/ford-motor', {
headers: { Authorization: `Bearer ${process.env.RECALLDB_KEY}` },
})
const { data, source } = await res.json()
console.log(data, source.official_url)import os, requests
r = requests.get("https://recalldb.app/v1/companies/ford-motor", headers={"Authorization": f"Bearer {os.environ['RECALLDB_KEY']}"})
r.raise_for_status()
body = r.json()
print(body["data"], body["source"]["official_url"])Try it
Runs a real request with no signup (20 a day per network, read-only). VINs you try are used only for this call and never stored.
Get your own key Free: 1,000 requests a month.
Response
{
"data": {
"id": "ford-motor",
"name": "Ford Motor Company",
"total_recalls": 412,
"by_agency": [
{
"agency": "NHTSA",
"recalls": 405
},
{
"agency": "CPSC",
"recalls": 7
}
],
"older_not_listed": 312,
"page_url": "https://checkrecalls.org/company/ford-motor",
"recalls": [
{
"id": "26V120000",
"title": "Recall 26V120000: Ford Motor Company Brakes (NHTSA)",
"agency": "NHTSA",
"date": "2026-10-05",
"page_url": "https://checkrecalls.org/recall/26v120000",
"source": {
"agency": "NHTSA",
"official_id": "26V120000",
"last_updated": "2026-11-13"
}
}
]
},
"meta": {
"note": "Matched by the company name the agency wrote. Similar names can be listed separately."
},
"attribution": {
"text": "Data from RecallDB",
"url": "https://recalldb.app"
}
}Every response includes source (agency, official ID, official URL, last updated) and attribution. Attribution rules.
Notes
- Counts as one request. A company with fewer than two recalls returns 404.
Errors: error codes. Limits: rate limits.