Docs menu

Docs / Recall change history

Recall change history

Last updated 2026-11-13

What the agency changed in a recall since we first saw it.

GET/v1/recalls/{id}/history · API key required

Agencies correct recalls: they widen the models, fix the remedy or change the number of units. We keep each change to an official field (problem, consequence, remedy, notes, units, issued by, date, components) as the field, the old value, the new value and the day we recorded it.

The free tier returns the latest recorded change only. The full history of every change is a planned Pro feature (see pricing). A recall that has never changed returns an empty list.

Parameters

NameInRequiredDescription
idpathyesThe recall id, as in /v1/recalls/{id}. Example: 21V215000

Request

curl https://recalldb.app/v1/recalls/21V215000/history \
  -H "Authorization: Bearer $RECALLDB_KEY"
const res = await fetch('https://recalldb.app/v1/recalls/21V215000/history', {
  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/recalls/21V215000/history", 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.

Response

200 OK
{
  "data": {
    "id": "21V215000",
    "changes": [
      {
        "field": "units",
        "old": "600000",
        "new": "624552",
        "changed_on": "2026-11-14"
      }
    ],
    "history_limit": "latest change only on the free tier; the full history is a planned Pro feature",
    "dates_note": "changed_on is the U.S. Eastern day we recorded the change."
  },
  "source": {
    "agency": "NHTSA",
    "official_id": "21V215000",
    "official_url": "https://www.nhtsa.gov/recalls?nhtsaId=21V215000",
    "last_updated": "2026-11-13"
  },
  "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. History starts on the day we began recording it (2026-11-13); changes before that are not known.

Errors: error codes. Limits: rate limits.