{
  "openapi": "3.0.1",
  "info": {
    "title": "CPSC Recalls Scraper: Consumer Product Safety Recall Alerts",
    "description": "Monitor US Consumer Product Safety Commission (CPSC) recalls via the official SaferProducts.gov API, no key needed. Filter by keyword, category, hazard, retailer (Amazon, Walmart), country and units. Flat JSON with hazard, injuries, remedy, units, UPCs. 'Only new' mode for daily alerts.",
    "version": "0.1",
    "x-build-id": "3Qf5py5xrDhj69a7d"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/radiant_opuntia~cpsc-recall-alerts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-radiant_opuntia-cpsc-recall-alerts",
        "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/radiant_opuntia~cpsc-recall-alerts/runs": {
      "post": {
        "operationId": "runs-sync-radiant_opuntia-cpsc-recall-alerts",
        "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/radiant_opuntia~cpsc-recall-alerts/run-sync": {
      "post": {
        "operationId": "run-sync-radiant_opuntia-cpsc-recall-alerts",
        "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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Matches the recall title, description, product names, hazard and company names. Examples: 'stroller', 'lithium battery', 'Fisher-Price'. Leave empty for all."
          },
          "productCategories": {
            "title": "Product category contains",
            "type": "array",
            "description": "CPSC product type text to match, e.g. Toys, Bicycles, Heaters, Furniture, Child Care, Electric. Any one match keeps the recall.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "hazardTypes": {
            "title": "Hazard types",
            "type": "array",
            "description": "Keep recalls whose hazard text mentions one of these risks.",
            "items": {
              "type": "string",
              "enum": [
                "fire",
                "burn",
                "laceration",
                "choking",
                "ingestion",
                "fall",
                "strangulation",
                "suffocation",
                "electric shock",
                "tip-over",
                "poisoning",
                "drowning",
                "entrapment",
                "injury or death"
              ],
              "enumTitles": [
                "Fire",
                "Burn",
                "Laceration or cut",
                "Choking",
                "Ingestion (batteries, magnets)",
                "Fall",
                "Strangulation",
                "Suffocation or asphyxiation",
                "Electric shock",
                "Tip-over",
                "Poisoning or lead",
                "Drowning",
                "Entrapment",
                "Serious injury or death"
              ]
            },
            "default": []
          },
          "soldAt": {
            "title": "Sold at (retailer or channel)",
            "type": "array",
            "description": "Keep recalls whose 'sold at' text mentions any of these, e.g. Amazon, Walmart, Target, Home Depot, Costco, Temu.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "manufacturerCountries": {
            "title": "Made in (countries)",
            "type": "array",
            "description": "e.g. China, Vietnam, Mexico. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minUnits": {
            "title": "Minimum units recalled",
            "minimum": 0,
            "type": "integer",
            "description": "Only recalls of at least this many units (parsed from CPSC text such as 'About 53,634'). 0 = off.",
            "default": 0
          },
          "daysBack": {
            "title": "Recalled within last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Ignored if a start date is set. 0 = no date limit (full history).",
            "default": 30
          },
          "startDate": {
            "title": "Start date (optional)",
            "type": "string",
            "description": "Recall date in YYYY-MM-DD format. Overrides 'Recalled within last N days'."
          },
          "endDate": {
            "title": "End date (optional)",
            "type": "string",
            "description": "Recall date in YYYY-MM-DD format. Defaults to today."
          },
          "onlyNew": {
            "title": "Only new since last run (alerts mode)",
            "type": "boolean",
            "description": "Remember what was already returned and output only recalls not seen in earlier runs of this same search. Ideal with a daily Schedule + email/Slack/webhook integration.",
            "default": false
          },
          "stateKey": {
            "title": "Alert name (optional)",
            "type": "string",
            "description": "Separate memory for 'only new' mode. Defaults to a key derived from your filters."
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Stop after this many recalls.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}