{
  "openapi": "3.0.1",
  "info": {
    "title": "FDA Recalls Scraper: Drug, Device and Food | $1/1K",
    "description": "$1 per 1,000 results, platform usage included. US FDA recalls from the official openFDA enforcement reports: drug, device and food. Class, status, firm, product, reason, dates. Filter by words, firm, class, status, state, date. No key.",
    "version": "0.1",
    "x-build-id": "ch157QxpMduAlU48o"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/one_dollar_store~fda-recalls-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-one_dollar_store-fda-recalls-scraper",
        "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/one_dollar_store~fda-recalls-scraper/runs": {
      "post": {
        "operationId": "runs-sync-one_dollar_store-fda-recalls-scraper",
        "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/one_dollar_store~fda-recalls-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-one_dollar_store-fda-recalls-scraper",
        "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": {
          "productTypes": {
            "title": "Product types",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Which FDA enforcement reports to read. Drug, device and food recalls are separate lists at the FDA. Results come one type after the other, in the order the FDA lists them here.",
            "items": {
              "type": "string",
              "enum": [
                "drug",
                "device",
                "food"
              ],
              "enumTitles": [
                "Drugs",
                "Medical devices",
                "Food and beverages"
              ]
            },
            "default": [
              "food"
            ]
          },
          "searchTerms": {
            "title": "Words in the product or the reason",
            "maxItems": 20,
            "type": "array",
            "description": "Optional. One phrase per line, for example listeria or undeclared milk. A recall is kept when its product description or its reason for recall contains any of the phrases. Not case sensitive.",
            "items": {
              "type": "string"
            }
          },
          "recallingFirm": {
            "title": "Recalling company",
            "maxLength": 120,
            "type": "string",
            "description": "Optional. Name of the company that recalled the product, for example Pfizer or Tyson Foods. A part of the name is enough."
          },
          "classifications": {
            "title": "Recall class",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. Class I is the most serious (a product that can cause serious harm or death), Class III the least. Leave empty for all classes.",
            "items": {
              "type": "string",
              "enum": [
                "Class I",
                "Class II",
                "Class III"
              ]
            }
          },
          "statuses": {
            "title": "Recall status",
            "uniqueItems": true,
            "type": "array",
            "description": "Optional. The status as first published by the FDA. The FDA does not change it afterwards in this data, so an old recall can still show Ongoing. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "Ongoing",
                "Completed",
                "Terminated",
                "Pending"
              ]
            }
          },
          "state": {
            "title": "State of the recalling company",
            "pattern": "^$|^[A-Za-z]{2}$",
            "maxLength": 2,
            "type": "string",
            "description": "Optional. Two letter US state code of the recalling company, for example CA or NY."
          },
          "reportDateFrom": {
            "title": "Reported from",
            "pattern": "^$|^(19|20)\\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "maxLength": 10,
            "type": "string",
            "description": "Optional. Earliest date the recall appeared in the weekly FDA Enforcement Report, written 2026-01-31. The data starts in 2004."
          },
          "reportDateTo": {
            "title": "Reported until",
            "pattern": "^$|^(19|20)\\d{2}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "maxLength": 10,
            "type": "string",
            "description": "Optional. Latest report date, written 2026-12-31. Leave empty for no end date."
          },
          "maxItemsPerType": {
            "title": "Results per product type",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Optional cap for each product type, so the first type cannot use the whole run. 0 means no extra cap.",
            "default": 0
          },
          "apiKey": {
            "title": "Your own openFDA API key (optional)",
            "type": "string",
            "description": "Not needed. Without a key the FDA allows 1,000 requests per day per IP address, which is plenty for most runs. If a run ever reports that the daily limit is used up, paste a free key from open.fda.gov here."
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 10,
            "maximum": 10000,
            "type": "integer",
            "description": "The run stops after this many recalls in total, newest first. Minimum 10, maximum 10,000.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}