{
  "openapi": "3.0.1",
  "info": {
    "title": "Prop 65 60-Day Notice Search + Settlement Benchmark",
    "description": "Search every California Proposition 65 60-day notice by product, chemical, company or plaintiff, from the Attorney General's own register. Returns what comparable notices actually settled for - civil penalty vs attorney fees, with the sample size attached - and profiles each filer.",
    "version": "0.0",
    "x-build-id": "0IgsFlEtCoYrMYfCE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/malekh~prop-65-60-day-notice-settlement-benchmark/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-malekh-prop-65-60-day-notice-settlement-benchmark",
        "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/malekh~prop-65-60-day-notice-settlement-benchmark/runs": {
      "post": {
        "operationId": "runs-sync-malekh-prop-65-60-day-notice-settlement-benchmark",
        "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/malekh~prop-65-60-day-notice-settlement-benchmark/run-sync": {
      "post": {
        "operationId": "run-sync-malekh-prop-65-60-day-notice-settlement-benchmark",
        "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": {
          "defendant": {
            "title": "Defendant / alleged violator",
            "type": "string",
            "description": "Company name to search for among the alleged violators, e.g. 'Whole Foods' or 'Sprouts'. Partial names match, and a notice matches if the company appears anywhere in its violator list. Leave every search field empty and nothing runs — each search needs at least one filter."
          },
          "product": {
            "title": "Product / source",
            "type": "string",
            "description": "The product or source the notice is about, e.g. 'dried figs', 'vinyl gloves', 'balsamic vinegar'. Partial text matches. This is usually the best field for 'what does my product category attract'."
          },
          "chemical": {
            "title": "Listed chemical",
            "type": "string",
            "description": "An officially listed Proposition 65 chemical, spelled as California lists it — e.g. 'Lead', 'Cadmium', 'Di(2-ethylhexyl)phthalate (DEHP)', 'Diisononyl phthalate (DINP)'. The name is resolved against the Attorney General's own list of ~825 chemicals; if it is ambiguous or unlisted the run tells you so rather than searching for the wrong thing."
          },
          "plaintiff": {
            "title": "Plaintiff / noticing party or their attorney",
            "type": "string",
            "description": "The party that filed the notice, or their attorney, e.g. 'Ecological Alliance' or 'Manning Law'. Use this to research a specific serial filer's whole track record."
          },
          "agNumber": {
            "title": "AG number",
            "type": "string",
            "description": "One specific notice by its Attorney General number, e.g. '2026-03114'. Use this when a notice has landed and you want that notice plus its filer's history."
          },
          "queries": {
            "title": "Multiple searches (advanced)",
            "type": "array",
            "description": "Run several searches in one go. Each entry is an object that may set any of defendant, product, chemical, chemicalId, plaintiff, agNumber, since, until and label — e.g. [{\"product\":\"dried figs\"},{\"chemical\":\"Lead\",\"defendant\":\"Sprouts\"}]. A plain string is treated as a product. Pass \"recordId\" on an entry and it is echoed onto every record produced from it, so the output joins back onto your own list. Overrides the single-search fields above. Maximum 10 per run."
          },
          "since": {
            "title": "Earliest notice date",
            "type": "string",
            "description": "Only notices filed on or after this date, as YYYY-MM-DD. Defaults to the lookback window below. Older periods cost more requests, so narrow this when you only care about recent filings."
          },
          "until": {
            "title": "Latest notice date",
            "type": "string",
            "description": "Only notices filed on or before this date, as YYYY-MM-DD. Defaults to today."
          },
          "lookbackYears": {
            "title": "Lookback (years)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How far back to search when no explicit 'since' date is given. Three years catches the current filing pattern; go longer to build a bigger settlement cohort.",
            "default": 3
          },
          "maxFilersProfiled": {
            "title": "Filers to profile",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "How many of the most active noticing parties in your results to profile in depth -- filing volume, targets, chemicals and their own settlement benchmark. Each profile reads that filer's full history and is charged as one filer benchmark. Set 0 to skip profiling entirely.",
            "default": 3
          },
          "filerBenchmarkYears": {
            "title": "Filer history (years)",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many years of a filer's own history to read when profiling them. Longer windows give a larger settlement cohort and a more stable median.",
            "default": 5
          },
          "includeNoticeRecords": {
            "title": "Return individual notice records",
            "type": "boolean",
            "description": "On by default. Turn it off to get only the search summary and the filer profiles — useful when you want the benchmark and the filer intelligence but not the underlying rows, and it is cheaper because notice records are charged per record.",
            "default": true
          },
          "maxNoticesPerQuery": {
            "title": "Maximum notices returned per search",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "A visible cap so a broad search cannot run up an unexpected bill. The most recent notices are returned first. The settlement benchmark is always computed over EVERY matched notice, not just the ones returned, so this cap never changes the figures you are quoting.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}