Schema
Recall-notice data dictionary
Every recall document returned by the API or included in the snapshot follows this schema. All arrays and nullable fields are explicitly marked.
Provenance pattern: The
_provenance object accompanies every document. For each field that has a traced source, it records source (authority code), source_url (exact regulator page), confidence, and fetched_at. Always cite source_record_url when redistributing.| Field | Type | Null? | Description |
|---|---|---|---|
| id | integer | Unique numeric identifier within RecallRadar. | |
| title | string | Full recall / alert title as issued by the authority. | |
| summary | string | ✓ | Prose description of the affected product(s) and the recall scope. |
| authority | enum | Source authority code: cpsc | eu-safety-gate | health-canada | gov-uk-opss | accc. | |
| jurisdiction | string | ✓ | ISO country/region code for the issuing jurisdiction, e.g. US, DE, CA. |
| is_recall | boolean | true if the notice is a formal recall; false for safety alerts or warnings that stop short of a recall. | |
| risk_level | string | ✓ | Risk level as reported by the source authority. Not normalised — values vary by authority (e.g. 'Serious risk', 'high'). |
| category_code | string | ✓ | Unified category slug from the 21-category taxonomy (e.g. toys, electronics, childcare, household). |
| category_source | string | ✓ | How category_code was assigned: 'authority' (mapped from source) or 'inferred' (model-assigned). |
| hazard_text | string | ✓ | Prose description of the hazard, as stated by the authority. |
| remedy_text | string | ✓ | Prose description of the required consumer remedy (return, repair, refund, stop use, etc.). |
| hazard_types | string[] | ✓ | Normalised hazard type tags (e.g. fire, laceration, choking, chemical). Multiple values allowed. |
| measure_types | string[] | ✓ | Measure categories taken by the authority (recall, withdrawal, warning, ban, etc.). |
| products | object[] | Array of affected products: { name, brand, model, gtin }. At least one element. | |
| parties | object[] | Array of responsible parties: { name, role, country }. Roles: manufacturer, distributor, retailer, importer, brand. | |
| country_of_origin | string | ✓ | Country where the product was manufactured, if disclosed by the authority. |
| published_at | ISO 8601 date | ✓ | Date the notice was published by the source authority. |
| source_notice_ref | string | ✓ | Authority-specific reference number or ID (e.g. CPSC recall number, RAPEX alert ID). |
| source_record_url | string (URL) | ✓ | Canonical URL of the original notice on the authority's website. Cite this when redistributing. |
| _provenance | object | Per-field provenance map. Each key is a field name; value is { source, confidence, fetched_at, source_url }. Confidence: 'high' | 'medium' | 'low'. |
Example document (abbreviated)
{
"id": 1,
"title": "7-Drawer Dressers Recalled Due to Tip-Over Hazard",
"authority": "cpsc",
"jurisdiction": "US",
"is_recall": true,
"risk_level": null,
"category_code": "household",
"hazard_text": "The dresser can tip over, posing injury and entrapment hazards.",
"remedy_text": "Stop using and contact the manufacturer for a full refund.",
"hazard_types": ["tip-over", "entrapment"],
"measure_types": ["recall"],
"products": [{ "name": "Hasuit 7-Drawer Dressers", "brand": null, "model": null }],
"parties": [{ "name": "Hasuit Direct", "role": "distributor", "country": "China" }],
"published_at": "2026-05-01",
"source_record_url": "https://www.cpsc.gov/Recalls/2026/…",
"_provenance": {
"title": {
"source": "cpsc",
"confidence": "high",
"fetched_at": "2026-06-16T11:10:28Z",
"source_url": "https://www.cpsc.gov/Recalls/2026/…"
}
}
}