| id | Yes | | |
| url | Yes | | |
| firm | No | | |
| risk | No | The agency rating as the page shows it (for example "High risk" for an FDA Class I recall). Null where the page shows no risk line. | |
| slug | No | | |
| dates | No | | |
| notes | Yes | Caveats for this record, including the aggregator-lag and not-a-clearance statement. | |
| title | Yes | Agency-published title. Never model-written. | |
| agency | Yes | Known values: FDA, FDA_IRES, FSIS, CPSC, NHTSA, ADMIN. | |
| reason | No | The agency's own stated reason, not model-written. | |
| status | No | | |
| license | Yes | Attribution and terms (DATA-LICENSE). | |
| related | No | | |
| category | No | Known values: FOOD, DRUG, DEVICE, COSMETIC, CONSUMER_PRODUCT, VEHICLE, AUTO_EQUIPMENT. | |
| html_url | Yes | Absolute URL of the human-readable page. | |
| products | No | | |
| severity | No | Known values: CRITICAL, MODERATE, LOW. | |
| timeline | No | Dated steps of the record, in date order. Each step names who acted on that date. | |
| canonical | Yes | Absolute URL of this representation. | |
| firm_name | No | | |
| listed_at | No | Since api 2.6.0. The date the listing shows and sorts by; equals this record's search_recalls row. A recall's listing date is in dates.listed_at. | |
| source_url | No | The agency's own notice. | |
| api_version | Yes | | |
| description | No | Full agency description. FSIS: sanitized HTML; others: plain text. Sanitize or escape before display. | |
| hazard_tags | Yes | | |
| record_type | Yes | | |
| snapshot_at | Yes | ISO-8601 UTC response-generation time, second precision. First key on purpose. | |
| advisory_url | No | | |
| ai_generated | Yes | Provenance: true where the field holds model-written text. Over-attributes on purpose. | |
| distribution | No | | |
| published_at | No | Deprecated: the stored pub_date. | |
| display_title | No | | |
| mcp_truncated | No | Present only when a long list was cut to 25 for this response. | |
| product_count | No | The true event scope, which may exceed products.length. | |
| story_lead_id | No | Set on a later record of a recall story; the lead it belongs to. | |
| critical_flags | No | NHTSA-only in practice. An absent key means the agency did not state the flag. null for a withdrawn (RETRACTED) record. | |
| identification | Yes | Page-derived identification: the products and codes the record names. Not a completeness guarantee; `partial` says when the list is incomplete, including when this response cut `products` to 25 (`mcp_truncated.identification_products`). | |
| linked_recalls | No | | |
| press_releases | No | | |
| story_lead_url | No | | |
| units_affected | No | | |
| consumer_action | No | The "What to do" text. Null on a withdrawn alert. | |
| display_summary | No | | |
| source_recall_id | No | Agency key; a CPSC one can be stale. | |
| content_changed_at | Yes | When the published content last changed. | |
| products_truncated | No | True when `product_count` exceeds the length of `products` | |
| agency_published_at | No | | |
| company_announced_at | No | | |
| company_product_list | No | The company's own list of the affected products, when the agency notice points to it instead of naming them. A product missing from `identification` may still be recalled: check this list. | |
| display_summary_short | No | | |