{
  "openapi": "3.0.1",
  "info": {
    "title": "US Product Recalls API: CPSC, FDA, NHTSA and USDA in One Schema",
    "description": "Product recall API and recall monitor: FDA (openFDA drug, device, food), CPSC consumer product, USDA food safety and NHTSA vehicle recalls from official US sources in one JSON schema, filterable by date, keyword, UPC, firm and class.",
    "version": "0.1",
    "x-build-id": "0hUhT2P69qbSRetSX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/landoz~us-product-recalls/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-landoz-us-product-recalls",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/landoz~us-product-recalls/runs": {
      "post": {
        "operationId": "runs-sync-landoz-us-product-recalls",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/landoz~us-product-recalls/run-sync": {
      "post": {
        "operationId": "run-sync-landoz-us-product-recalls",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "sources": {
            "title": "Sources",
            "uniqueItems": true,
            "type": "array",
            "description": "Which official recall feeds to query. Values: cpsc (consumer products, saferproducts.gov), fda_food, fda_drug, fda_device (openFDA enforcement reports), nhtsa (vehicles, needs vehicleMake + vehicleModel + vehicleYear), usda_fsis (meat, poultry and egg products). Leave empty for all six.",
            "default": [
              "cpsc",
              "fda_food",
              "fda_drug",
              "fda_device",
              "nhtsa",
              "usda_fsis"
            ],
            "items": {
              "type": "string"
            }
          },
          "sinceDays": {
            "title": "Look back (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "How many days back from \"until\" (default today) to search when \"since\" is empty. 1 to 365. Default 7. Use 1 to 3 for a daily monitor, 30 for a monthly review.",
            "default": 7
          },
          "since": {
            "title": "Since (ISO date)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional inclusive start date, format 2026-10-01. Overrides sinceDays. Compared against the recall date (CPSC, USDA) or the FDA report date."
          },
          "until": {
            "title": "Until (ISO date)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional inclusive end date, format 2026-10-31. Defaults to today (UTC)."
          },
          "query": {
            "title": "Keyword",
            "type": "string",
            "description": "Optional keyword matched case-insensitively against the title, product description, firm and hazard, for example \"listeria\", \"lithium battery\" or \"infant\". Leave empty for everything."
          },
          "upc": {
            "title": "UPC or barcode",
            "type": "string",
            "description": "Optional UPC / GTIN digits. Returns only records that mention this code (CPSC product UPCs, FDA product descriptions and code info, USDA product lists)."
          },
          "firm": {
            "title": "Firm or brand",
            "type": "string",
            "description": "Optional company name fragment matched case-insensitively against the recalling firm, manufacturer or establishment, for example \"Abbott\" or \"Kayem\"."
          },
          "fdaClassification": {
            "title": "FDA class",
            "enum": [
              "any",
              "I",
              "II",
              "III"
            ],
            "type": "string",
            "description": "Only for the fda_* sources. I = dangerous or defective products that could cause serious health problems or death. II = may cause temporary or reversible health problems. III = unlikely to cause harm. \"any\" returns all classes.",
            "default": "any"
          },
          "vehicleMake": {
            "title": "Vehicle make (NHTSA)",
            "type": "string",
            "description": "Vehicle make for NHTSA, for example \"Ford\" or \"Toyota\". NHTSA vehicle recalls are returned only when vehicleMake, vehicleModel and vehicleYear are all set; the date window does not apply to them."
          },
          "vehicleModel": {
            "title": "Vehicle model (NHTSA)",
            "type": "string",
            "description": "Vehicle model for NHTSA, for example \"F-150\" or \"Camry\"."
          },
          "vehicleYear": {
            "title": "Vehicle model year (NHTSA)",
            "pattern": "^\\d{4}$",
            "type": "string",
            "description": "Four-digit model year for NHTSA, for example \"2024\"."
          },
          "maxItems": {
            "title": "Max records",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Upper bound on records written to the dataset across all sources, newest first. Default 100, maximum 5000. Each record costs one result-item event.",
            "default": 100
          },
          "useProxyForUsda": {
            "title": "Use Apify residential proxy for USDA FSIS if blocked",
            "type": "boolean",
            "description": "The USDA FSIS feed sits behind a bot filter. If a direct request is refused (HTTP 403), retry once through Apify residential proxy. Off by default because residential proxy traffic is billed to your account (about 2 MB per fetch).",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}