---
title: "Search recalls"
method: GET
path: "/v1/recalls"
---

# Search recalls

`GET /v1/recalls`

## Request

- Base URL: `https://api.recallsapi.com`
- URL: `https://api.recallsapi.com/v1/recalls`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
  - API key in header `X-Credit-Token`
  - none

## Query parameters

- `q` string
- `category` 'consumer_product' | 'food' | 'drug' | 'device' | 'vehicle' | 'vehicle_equipment' | 'tire' | 'child_seat' | 'meat_poultry' | 'boat' | 'aircraft' | 'manufactured_home' | 'respirator' | 'mine_equipment' | 'unclassified' | 'cosmetic' | 'tobacco' | 'biologic' | 'veterinary'
- `source` 'cpsc' | 'fda_food' | 'fda_drug' | 'fda_device' | 'nhtsa' | 'fsis' | 'uscg' | 'faa' | 'hud' | 'niosh' | 'msha' | 'fda_press' | 'fda_hfcs' | 'fda_ires'
- `since` string, date
- `until` string, date
- `limit` integer
- `cursor` string

## Response `200`

OK

- object
  - `results` Recall[]
    - `id` string
    - `agency` 'CPSC' | 'FDA' | 'NHTSA' | 'USDA FSIS' | 'US Coast Guard' | 'FAA' | 'HUD' | 'NIOSH' | 'MSHA'
    - `source` 'cpsc' | 'fda_food' | 'fda_drug' | 'fda_device' | 'nhtsa' | 'fsis' | 'uscg' | 'faa' | 'hud' | 'niosh' | 'msha' | 'fda_press' | 'fda_hfcs' | 'fda_ires'
    - `source_id` string: The agency recall number, Federal Register document number, or a stable slug for notices without a number
    - `category` 'consumer_product' | 'food' | 'drug' | 'device' | 'vehicle' | 'vehicle_equipment' | 'tire' | 'child_seat' | 'meat_poultry' | 'boat' | 'aircraft' | 'manufactured_home' | 'respirator' | 'mine_equipment' | 'unclassified' | 'cosmetic' | 'tobacco' | 'biologic' | 'veterinary'
    - `title` string
    - `description` string, nullable
    - `hazard` string, nullable
    - `remedy` string, nullable
    - `classification` string, nullable: FDA and FSIS class (Class I, II, III), NHTSA recall type, Coast Guard recall type (Boat, Engine or equipment), Federal Register document type, or notice type
    - `status` string, nullable
    - `firms` string[]
    - `products` string[]
    - `distribution` string, nullable
    - `units` string, nullable
    - `flags` string[]
    - `recall_date` string, date, nullable
    - `report_date` string, date, nullable
    - `url` string, uri: Agency notice
    - `source_url` string, uri: Machine-readable source record
    - `first_seen` string, date-time: When recallsapi.com first stored this record
    - `as_of` string, date-time: When recallsapi.com last saw this record change
    - `identifiers` object[]
      - `kind` string
      - `value` string
      - `raw` string
  - `next_cursor` string, nullable

## Other responses

- `400`: Invalid input
- `401`: Missing or invalid API key
- `402`: Payment Required: x402 v2 payment requirements (scheme exact, USDC on Base, amount in base units, payTo) in the PAYMENT-REQUIRED header as base64 JSON, and the same object as the body
- `429`: Daily quota reached

---

[API](https://skmtc.dev/recallsapi/apis/recallsapi-com.md) · [All operations](https://skmtc.dev/recallsapi/apis/recallsapi-com/llms.txt) · [OpenAPI document](https://skmtc.dev/recallsapi/apis/recallsapi-com/revisions/2501df40ea54?raw)
