{
  "openapi": "3.0.1",
  "info": {
    "title": "PFAS Product Disclosure Radar (PRISM / Minnesota)",
    "description": "Search, export and monitor PFAS-in-products disclosures filed under Minnesota's PFAS law and published in PRISM (IC2). Filter by brand, manufacturer, component, CAS number, function and date. Get only new or withdrawn disclosures since the last run.",
    "version": "0.2",
    "x-build-id": "vS5qlTnjhCOX9ouGy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jamshid_data~pfas-product-disclosure-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jamshid_data-pfas-product-disclosure-radar",
        "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/jamshid_data~pfas-product-disclosure-radar/runs": {
      "post": {
        "operationId": "runs-sync-jamshid_data-pfas-product-disclosure-radar",
        "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/jamshid_data~pfas-product-disclosure-radar/run-sync": {
      "post": {
        "operationId": "run-sync-jamshid_data-pfas-product-disclosure-radar",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "all",
              "new"
            ],
            "type": "string",
            "description": "In 'new' mode the Actor stores a cursor in the named key-value store 'pfas-radar-state' and returns only records published after the previous run with the same filters.",
            "default": "all"
          },
          "brands": {
            "title": "Brand names (contains, any)",
            "type": "array",
            "description": "Case-insensitive substring match on BrandName, e.g. 3M, Gore.",
            "items": {
              "type": "string"
            }
          },
          "manufacturers": {
            "title": "Manufacturers (contains, any)",
            "type": "array",
            "description": "Case-insensitive substring match on the accountable company name.",
            "items": {
              "type": "string"
            }
          },
          "componentKeywords": {
            "title": "Component / category keywords",
            "type": "array",
            "description": "PRISM has no product-category field; use component keywords such as gasket, coating, cable, membrane, o-ring.",
            "items": {
              "type": "string"
            }
          },
          "productKeywords": {
            "title": "Product model keywords",
            "type": "array",
            "description": "Case-insensitive substring match on the product model name.",
            "items": {
              "type": "string"
            }
          },
          "casNumbers": {
            "title": "CAS numbers",
            "type": "array",
            "description": "e.g. 9002-84-0 (PTFE), 24937-79-9 (PVDF).",
            "items": {
              "type": "string"
            }
          },
          "chemicalNameKeywords": {
            "title": "Chemical name keywords",
            "type": "array",
            "description": "Substring match on the PFAS chemical name, e.g. fluoroethylene.",
            "items": {
              "type": "string"
            }
          },
          "pfasFunctions": {
            "title": "PFAS function keywords",
            "type": "array",
            "description": "e.g. Sealant, Barrier, Lubricant, Insulator.",
            "items": {
              "type": "string"
            }
          },
          "minConcentrationRangeId": {
            "title": "Minimum concentration range (1-8)",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "PRISM range id: 1 = detection limit to <100 ppm ... 8 = 90-100%. Range 9 ('present, concentration unknown') is excluded when this is set."
          },
          "publishedSince": {
            "title": "Published since (date)",
            "type": "string",
            "description": "Only records published on/after this date. In 'new' mode it applies to the first run only."
          },
          "firstRunBehavior": {
            "title": "First run in 'new' mode",
            "enum": [
              "outputAll",
              "baselineOnly"
            ],
            "type": "string",
            "description": "outputAll = return everything that matches now; baselineOnly = just remember the current state (no charge for records) and alert from the next run.",
            "default": "outputAll"
          },
          "trackReportChanges": {
            "title": "Track report-level changes",
            "type": "boolean",
            "description": "In 'new' mode, also detect added, withdrawn and changed disclosures (saved as REPORT_CHANGES in the run key-value store).",
            "default": true
          },
          "stateKey": {
            "title": "Watchlist name (optional)",
            "type": "string",
            "description": "Name of the monitoring cursor. Default: derived from the filters."
          },
          "maxItems": {
            "title": "Max records",
            "minimum": 0,
            "type": "integer",
            "description": "0 = unlimited (full database is ~285k records).",
            "default": 1000
          },
          "pageSize": {
            "title": "Page size",
            "minimum": 100,
            "maximum": 5000,
            "type": "integer",
            "description": "Records per API request (keyset pagination).",
            "default": 2000
          },
          "requestDelayMs": {
            "title": "Delay between API requests (ms)",
            "minimum": 200,
            "type": "integer",
            "description": "Polite pause between requests to the public PRISM API.",
            "default": 800
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}