🏭 EPA ECHO Enforcement Scraper
Pricing
from $10.00 / 1,000 results
🏭 EPA ECHO Enforcement Scraper
Extract official environmental compliance records, legal case histories, and penalty fines from the EPA ECHO database for ESG risk models.
🏭 EPA ECHO Enforcement Scraper
Pricing
from $10.00 / 1,000 results
Extract official environmental compliance records, legal case histories, and penalty fines from the EPA ECHO database for ESG risk models.
You can access the 🏭 EPA ECHO Enforcement Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "Btah1TvpG06BGBJtb" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/taroyamada~epa-enforcement-digest/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-taroyamada-epa-enforcement-digest", "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/taroyamada~epa-enforcement-digest/runs": { "post": { "operationId": "runs-sync-taroyamada-epa-enforcement-digest", "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/taroyamada~epa-enforcement-digest/run-sync": { "post": { "operationId": "run-sync-taroyamada-epa-enforcement-digest", "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", "required": [ "targets" ], "properties": { "targets": { "title": "Targets (one digest row each)", "type": "array", "description": "List of watched facilities, company footprints, or case feeds. Shared target-level selectors (frsId, facilityName, state, city, region) are inherited by the individual ECHO surfaces unless overridden.", "items": { "type": "object", "properties": { "id": { "title": "Target ID", "type": "string", "description": "Stable identifier for snapshots and output rows." }, "name": { "title": "Target name", "type": "string", "description": "Human-readable label in the digest output." }, "criticality": { "title": "Criticality", "type": "string", "enum": [ "mission_critical", "high", "standard", "low" ], "description": "Controls severity escalation and follow-up thresholds." }, "owner": { "title": "Owner", "type": "string", "description": "Team or person responsible for follow-up." }, "tags": { "title": "Tags", "type": "string", "description": "Comma-separated tags for routing and filtering." }, "frsId": { "title": "Shared FRS ID", "type": "string", "description": "Preferred 12-digit FRS identifier for precise facility/company tracking. Shared by facilitySearch/complianceScreener/caseSearch unless overridden." }, "facilityName": { "title": "Shared facility or company name", "type": "string", "description": "Facility or company name inherited by facilitySearch/complianceScreener surfaces unless overridden." }, "state": { "title": "Shared state", "type": "string", "description": "USPS state code inherited by facilitySearch/complianceScreener/caseSearch unless overridden." }, "city": { "title": "Shared city", "type": "string", "description": "City inherited by facilitySearch/caseSearch unless overridden." }, "region": { "title": "Shared EPA region", "type": "string", "description": "EPA region inherited by facilitySearch/complianceScreener/caseSearch unless overridden." }, "facilitySearch": { "title": "All-media facility search surface", "type": "object", "description": "Optional ECHO all-media facility search surface. Inherits frsId/facilityName/state/city/region from the target unless overridden.", "properties": { "id": { "title": "Surface ID", "type": "string", "description": "Optional override identifier for this facility-search surface." }, "name": { "title": "Surface name", "type": "string", "description": "Optional display label for this facility-search surface." }, "frsId": { "title": "FRS ID", "type": "string", "description": "Facility Registry Service identifier used for precise facility matching." }, "facilityName": { "title": "Facility name", "type": "string", "description": "Facility or company name passed to the ECHO all-media facility search." }, "state": { "title": "State", "type": "string", "description": "USPS state code used for facility filtering." }, "city": { "title": "City", "type": "string", "description": "City filter used for facility search narrowing." }, "region": { "title": "EPA region", "type": "string", "description": "EPA region filter used for facility search narrowing." }, "quickSearch": { "title": "Quick search term", "type": "string", "description": "Optional ECHO quick-search term." }, "media": { "title": "Media codes", "type": "string", "description": "Comma-separated media codes such as A, C, R, S, T." }, "nameMatchMode": { "title": "Name match mode", "type": "string", "enum": [ "CONTAINS", "EXACT", "BEGINS", "ALL" ], "description": "Facility name search mode when facilityName is used." }, "majorOnly": { "title": "Major facilities only", "type": "boolean", "description": "Restrict to major facilities only." }, "evidenceLimit": { "title": "Facility evidence limit", "type": "integer", "minimum": 1, "maximum": 25, "description": "How many top facility evidence rows to keep." } } }, "complianceScreener": { "title": "Corporate compliance screener surface", "type": "object", "description": "Optional ECHO compliance screener surface. Good for company footprints or multi-facility facility-name watches.", "properties": { "id": { "title": "Surface ID", "type": "string", "description": "Optional override identifier for this compliance-screener surface." }, "name": { "title": "Surface name", "type": "string", "description": "Optional display label for this compliance-screener surface." }, "frsId": { "title": "FRS ID", "type": "string", "description": "Facility Registry Service identifier used for precise screener matching." }, "facilityName": { "title": "Facility name", "type": "string", "description": "Facility or company name passed to the compliance screener." }, "state": { "title": "State", "type": "string", "description": "USPS state code used for compliance screener narrowing." }, "region": { "title": "EPA region", "type": "string", "description": "EPA region filter used for compliance screener narrowing." }, "nameMatchMode": { "title": "Name match mode", "type": "string", "enum": [ "CONTAINS", "EXACT", "BEGINS", "ALL" ], "description": "Facility/company name search mode when facilityName is provided." }, "years": { "title": "Settlement lookback years", "type": "integer", "minimum": 1, "maximum": 10, "description": "Settlement lookback window used by the screener service." }, "activeOnly": { "title": "Active facilities only", "type": "boolean", "description": "When true, only active facilities are screened." }, "evidenceLimit": { "title": "Screener evidence limit", "type": "integer", "minimum": 1, "maximum": 25, "description": "How many top screener rows to keep from the first page." } } }, "caseSearch": { "title": "Enforcement case search surface", "type": "object", "description": "Optional EPA enforcement case surface. Best for specific facility IDs or narrow state/region date windows.", "properties": { "id": { "title": "Surface ID", "type": "string", "description": "Optional override identifier for this case-search surface." }, "name": { "title": "Surface name", "type": "string", "description": "Optional display label for this case-search surface." }, "facilityId": { "title": "Facility ID", "type": "string", "description": "Facility registration identifier or inherited frsId when applicable." }, "state": { "title": "State", "type": "string", "description": "USPS state code used for enforcement case filtering." }, "region": { "title": "EPA region", "type": "string", "description": "EPA region filter used for enforcement case searches." }, "facilityCity": { "title": "Facility city", "type": "string", "description": "Facility city filter used for case narrowing." }, "facilityZip": { "title": "Facility ZIP", "type": "string", "description": "Facility ZIP/postal code filter used for case narrowing." }, "caseCategory": { "title": "Case categories", "type": "string", "description": "Comma-separated case categories such as AFR, AIF, JDC." }, "caseStatus": { "title": "Case status codes", "type": "string", "description": "Comma-separated case status codes." }, "violationTypes": { "title": "Violation type codes", "type": "string", "description": "Comma-separated case violation codes." }, "fromDate": { "title": "From date", "type": "string", "description": "Milestone start date. MM/DD/YYYY or ISO accepted." }, "toDate": { "title": "To date", "type": "string", "description": "Milestone end date. MM/DD/YYYY or ISO accepted." }, "caseNumber": { "title": "Case number", "type": "string", "description": "Specific case number if known." }, "caseName": { "title": "Case name", "type": "string", "description": "Case name filter. Requires caseNameType when used." }, "caseNameType": { "title": "Case name modifier", "type": "string", "description": "Case name modifier accepted by ECHO when caseName is used." }, "querySet": { "title": "Query set", "type": "integer", "minimum": 1, "maximum": 70000, "description": "Optional ECHO queryset override for large but still acceptable feeds." }, "evidenceLimit": { "title": "Case evidence limit", "type": "integer", "minimum": 1, "maximum": 25, "description": "How many case rows to keep from the first page." } } } } } }, "requestTimeoutSeconds": { "title": "Request timeout (seconds)", "minimum": 5, "maximum": 120, "type": "integer", "description": "Maximum time to wait for one EPA ECHO web-service request.", "default": 30 }, "userAgent": { "title": "Custom User-Agent", "type": "string", "description": "Optional custom User-Agent string for public EPA ECHO requests." }, "delivery": { "title": "Delivery mode", "enum": [ "dataset", "webhook", "email" ], "type": "string", "description": "dataset writes selected target rows to the dataset. webhook posts the digest JSON. email is reserved for a future path.", "default": "dataset" }, "datasetMode": { "title": "Dataset mode", "enum": [ "action_needed", "changes_only", "all" ], "type": "string", "description": "Controls which target rows are persisted: action-needed only, changed/initial/partial/error rows, or every row.", "default": "changes_only" }, "webhookUrl": { "title": "Webhook URL", "type": "string", "description": "POST destination when delivery=webhook." }, "notifyOnNoChange": { "title": "Notify even if nothing changed", "type": "boolean", "description": "When true, webhook delivery still fires even when no selected target changed.", "default": false }, "snapshotKey": { "title": "Snapshot key", "type": "string", "description": "Stable key used to load and save prior ECHO surface snapshots between recurring runs.", "default": "epa-enforcement-digest-snapshots" }, "diffMode": { "title": "Diff mode", "enum": [ "line_summary", "hash_only" ], "type": "string", "description": "line_summary keeps compact added/removed snapshot lines. hash_only only marks changed or unchanged.", "default": "line_summary" }, "summaryMaxLines": { "title": "Max diff summary lines", "minimum": 5, "maximum": 50, "type": "integer", "description": "Maximum added and removed snapshot lines kept per surface.", "default": 12 }, "maxEvidenceItems": { "title": "Global evidence limit", "minimum": 1, "maximum": 25, "type": "integer", "description": "Upper bound for top facilities/cases retained per surface unless overridden by a surface-level evidenceLimit.", "default": 5 }, "concurrency": { "title": "Concurrency", "minimum": 1, "maximum": 10, "type": "integer", "description": "How many watch targets may be processed in parallel.", "default": 2 }, "batchDelayMs": { "title": "Inter-batch delay (ms)", "minimum": 0, "maximum": 10000, "type": "integer", "description": "Delay between target batches to soften load on EPA ECHO.", "default": 500 }, "dryRun": { "title": "Dry run", "type": "boolean", "description": "If true, the actor skips snapshot writes and remote delivery while still producing local output.", "default": false }, "nowIso": { "title": "Override current time (ISO)", "type": "string", "description": "Optional ISO timestamp override for deterministic fixture tests or proof snapshots." } } }, "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 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for 🏭 EPA ECHO Enforcement Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: