# U.S. EPA Enforcement and Compliance History Online (ECHO) -… API

> U.S. EPA Enforcement and Compliance History Online (ECHO) -… API on Apizie: 22 endpoints (Enforcement Case Search (new version), Enforcement Case Search (new version), Enforcement Case Summary Report Search, Enforcement Case Summary Report Search, …) returned as clean JSON through one API key. 22 endpoints are live now. Call it over REST at https://zieapi.vercel.app/v1/open-data:epa-case/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `open-data:epa-case`
- Category: Open Data
- Status: live
- Source: https://epa.gov
- Page: https://zieapi.vercel.app/api/open-data/epa-case
- OpenAPI: https://zieapi.vercel.app/api/open-data/epa-case/openapi.json

Enforcement and Compliance History Online (ECHO) is a tool developed and maintained by EPA's Office of Enforcement and Compliance Assurance for public use. ECHO provides integrated compliance and enforcement…

## Endpoints

### Enforcement Case Search (new version)
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-case-info`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| p_case_category | string | no | Case Category Filter. Enter one or more case category codes to filter results. Provide multiple values as a comma-delimited list. - AFR =… |
| p_case_status | string | no | Case Status Code Filter. Enter one or more case status codes to limit results. Provide multiple values as a comma-delimited list. |
| p_milestone | string | no | Administrative or Judicial Milestone Filter. Enter one or milestone values to restrict results. Provide multiple values as a… |
| p_from_date | string | no | Administrative or Judicial Milestone Date Range Start Limiter. Enter a date value in MM/DD/YYYY format to limit milestone results.… |
| p_to_date | string | no | Administrative or Judicial Milestone Date Range End Limiter. Enter a date value in MM/DD/YYYY format to limit milestone results. Parameter… |
| p_milestone_fy | string | no | Administrative or Judicial Milestone Fiscal Year Limiter. Enter a single fiscal year value to limit milestone searches to a given fiscal… |
| p_name | string | no | Case Name Filter. Enter one or more case names to restrict results. Provide multiple values as a comma-delimited list. When using this… |
| p_name_type | string | no | Case Name Filter Modifier. |
| p_case_number | string | no | Case Number Filter. Enter one or more case numbers to restrict results. Provide multiple values as a comma-delimited list. |
| p_docket_number | string | no | DOJ Docket Number Filter. Enter a single docket number or partial docket number to restrict results. Use "%" as a wildcard for more… |
| p_court_docket_number | string | no |  |
| p_activity_number | string | no | Case Activity Number Filter. Enter a single case activity number to filter results. |
| p_case_lead | string | no | Case Lead Limiter. Enter E or S to limit results. - E = EPA is the case lead. - S = The state is the case lead. |
| p_case_sens_flg | string | no | Case Sensitive Data Flag. Enter a Y or N to include or exclude cases with sensitive data. |
| p_region | string | no | EPA Region Filter. Provide a single value of 01 thru 10 to restrict results to a single EPA region. |
| p_state | string | no | Case Location State Filter. Enter one or more state USPS postal codes to filter results. Provide multiple values as a comma-delimited list. |
| p_district | string | no | Case Location Court District Limiter. Enter a single state court district code to limit results. |
| p_sic | string | no | Standard Industrial Classification (SIC) Code Filter. Enter a single 4-digit SIC Code to filter results. |
| p_sic_ao_naics | string | no | Case Location SIC/NAICS And/Or Modifier. Enter either AND or OR to govern the search logic of SIC and NAICS codes. - AND = Search will… |
| p_sic_primary_flg | string | no | Case Location Primary SIC Flag. Enter Y to limit SIC search results to primary SIC codes only. |
| p_sic_frs_flg | string | no | Case Location Extended FRS SIC Search Flag. Enter Y to expand SIC search to include Federal Registry Service datasets. |
| p_naics | string | no | North American Industry Classification System Filter. Enter two to six digits to filter results to facilities having matching NAICS codes.… |
| p_naics_primary_flg | string | no | Case Location Primary NAICS Flag. Enter Y to limit NAICS search results to primary NAICS codes only. |
| p_naics_frs_flg | string | no | Case Location Extended FRS NAICS Search Flag. Enter Y to expand NAICS search to include Federal Registry Service datasets. |
| p_enf_type | string | no | Case Enforcement Type Filter. Enter one or more case enforcement type codes to limit results. Provide multiple values as a comma-delimited… |
| p_law | string | no | Law Statute Code Filter. Enter a single statute code to limit results. |
| p_section | string | no | Law Section Code Filter. Enter one or more law section codes to limit results. Provide multiple values as a comma-delimited list. |
| p_cp_citation | string | no | Law Section Code Filter Alternative. Enter a single law section code to limit results. This parameter accepts partial codes and allows for… |
| p_rank_order | string | no | Law Status Rank Order Limiter. Enter a single integer rank order to limit results. |
| p_enf_program | string | no | Enforcement Program Code Limiter. Enter one or more enforcement program codes to limit results. Provide multiple values as a… |
| p_violation | string | no | Violation Type Code Filter. Enter one or more violation type codes to limit results. Provide multiple values as a comma-delimited list. |
| p_priority_area | string | no | Case Priority Area Filter. Enter one or more case priority areas to limit results. Provide multiple values as a comma-delimited list. |
| p_priority_area_desc | string | no | Case Priority Area Description Filter. Enter a single case priority area description or partial case priority area description to limit… |
| p_tribal | string | no | Case Location Tribal Land Flag. Enter Y or N to include or disallow cases on tribal land. |
| p_oeca_core | string | no | OECA Core Program Flag. Enter Y or N to include or exclude core program cases. |
| p_multimedia | string | no | Enforcement Multimedia Case Flag. Enter Y or N to include or exclude multimedia cases. |
| p_fed_case | string | no | Federal Facility Involvement Flag. Enter a Y or N to include or exclude cases involving federal facilities. |
| p_activity_contact | string | no | Activity Contact Last Name Filter. Enter a single last name or partial last name to filter results. Use "%" as a wild-card for advanced… |
| p_role | string | no | Activity Contact Role Code Filter. Enter a single role code to restrict results. |
| p_fed_penalty | string | no | Federal Penalty Assessed Amount Filter. Provide one of the following keywords to restrict results. - ANY = cases with any penalty amount.… |
| p_total_fed_penalty | string | no | Total Federal Penalty Limiter. Enter a keyword value to limit results to cases with given total federal penalties. - ANY = Cases with any… |
| p_cost_recovery | string | no | Cost Recovery Awarded Amount Limiter. Enter a keyword value to limit results to cases with given cost recovery amounts. - ANY = Cases with… |
| p_total_cost_recovery | string | no | Total Cost Recovery Amount Limiter. Enter a keyword value to limit results to cases with given cost recovery amounts. - ANY = Cases with… |
| p_complying_actions | string | no | Complying Actions Type Code Limiter. Enter one or more complying action codes to restrict results. Provide multiple values as a… |
| p_comp_act_val | string | no | Compliance Action Cost Limiter. Enter a keyword value to limit results to cases with given compliance cost amounts. - ANY = Cases with any… |
| p_total_comp_act_val | string | no | Total Compliance Action Amount Limiter. Enter a keyword value to limit results to cases with given total compliance action amounts. - ANY… |
| p_sep_cats | string | no | Supplemental Environmental Projects Activity Category Code Limiter. Provide one or more SEP activity category codes to limit results.… |
| p_sep_val | string | no | Supplemental Environmental Projects Activity Value Limiter. Provide a keyword to limit results. - ANY = return cases with any SEP activity… |
| p_total_sep_val | string | no | Supplemental Environmental Projects Total Value Limiter. Provide a keyword to limit results. - ANY = return cases with any SEP total… |
| p_lodged_date | string | no | Settlement Lodged Date Limiter. Enter a single settlement lodged date in MM/DD/YYYY format to limit results. |
| p_entered_date | string | no | Settlement Entered Date Limiter. Enter a single settlement entered date in MM/DD/YYYY format to limit results. |
| p_facility_id | string | no | Case Facility Registration Identifier Limiter. Enter a single complete facility identifier to limit results. |
| p_fac_city | string | no | Case Facility City Limiter. Enter a single complete city name to filter cases by facility location city. |
| p_fac_zip | string | no | Case Facility ZIP Code Limiter. Enter a single 5-digit zip code to filter cases by facility location zip code. |
| p_fac_county | string | no | Case Facility County Limiter. Enter a single complete county name to filter cases by facility location county name. |
| p_case_summary | string | no | Case Summary Search Limiter. Enter a single case summary to limit results. This parameter accepts partial codes and allows for advanced… |
| p_case_summary_type | string | no | Identifies how the the search terms enterened in p_case_summary are searched. Valid values are ALL (Default), WITHIN, and CONTAINS. Must… |
| p_usmex | string | no | US-Mexico Border Flag. Enter Y/N to restrict searches to facilities located within 100KM of the border. |
| p_c1lat | number | no | In decimal degrees. Latitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c1lon | number | no | In decimal degrees. Longitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c2lat | number | no | In decimal degrees. Latitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c2lon | number | no | In decimal degrees. Longitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_voluntary | string | no | Voluntary Self Disclosure Flag. Enter Y or N to include or exclude cases results having voluntary disclosure. |
| p_fed_indicator | string | no | Federal Facility/Cross Media Flag. Enter Y or N to limit results to cases with federal facility cross media. |
| p_fntype | string | no | Controls type of text search performed on facility name with parameter p_fn. - EXACT = Find facilities having the exact provided name(s).… |
| p_civil_criminal_indicator | string | no | Civil/Criminal Case Limiter. Provide a keyword to limit results. - ANY = return both civil and criminal cases. - CI = return only civil… |
| queryset | number | no | Query Limiter. Enter a value to limit the number of records returned for each query. Value cannot exceed 70,000. |
| responseset | number | no | Response Set Limiter. Enter a value to limit the number of records per page. Value cannot exceed 1,000. |
| mapset | string | no | Identifies the maxium number of case facilities to return from the case_rest_services.get_case_info query. |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| qcolumns | string | no | Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object… |
| p_pretty_print | number | no | Optional flag to request GeoJSON formatted results to be pretty printed. Only provide a numeric value when the output needs to be human… |
| p_ocmap_fy | string | no | Fiscal Year to select cases that are displayed in the Office of Complicance Fiscal Year Map Services |
| p_qs | string | no | Quick Search. Allows entry for city, state, and/or zip code. |
| p_has_map | string | no |  |

### Enforcement Case Search (new version)
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-case-info`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Enforcement Case Summary Report Search
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-case-report`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | no | Case Number. Enter the case number identifier to retrieve the case report. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Enforcement Case Summary Report Search
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-case-report`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Enforcement Case Search
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-cases`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| p_case_category | string | no | Case Category Filter. Enter one or more case category codes to filter results. Provide multiple values as a comma-delimited list. - AFR =… |
| p_case_status | string | no | Case Status Code Filter. Enter one or more case status codes to limit results. Provide multiple values as a comma-delimited list. |
| p_violation | string | no | Violation Type Code Filter. Enter one or more violation type codes to limit results. Provide multiple values as a comma-delimited list. |
| p_milestone | string | no | Administrative or Judicial Milestone Filter. Enter one or milestone values to restrict results. Provide multiple values as a… |
| p_from_date | string | no | Administrative or Judicial Milestone Date Range Start Limiter. Enter a date value in MM/DD/YYYY format to limit milestone results.… |
| p_to_date | string | no | Administrative or Judicial Milestone Date Range End Limiter. Enter a date value in MM/DD/YYYY format to limit milestone results. Parameter… |
| p_milestone_fy | string | no | Administrative or Judicial Milestone Fiscal Year Limiter. Enter a single fiscal year value to limit milestone searches to a given fiscal… |
| p_name | string | no | Case Name Filter. Enter one or more case names to restrict results. Provide multiple values as a comma-delimited list. When using this… |
| p_name_type | string | no | Case Name Filter Modifier. |
| p_case_number | string | no | Case Number Filter. Enter one or more case numbers to restrict results. Provide multiple values as a comma-delimited list. |
| p_docket_number | string | no | DOJ Docket Number Filter. Enter a single docket number or partial docket number to restrict results. Use "%" as a wildcard for more… |
| p_court_docket_number | string | no |  |
| p_activity_number | string | no | Case Activity Number Filter. Enter a single case activity number to filter results. |
| p_case_lead | string | no | Case Lead Limiter. Enter E or S to limit results. - E = EPA is the case lead. - S = The state is the case lead. |
| p_case_sens_flg | string | no | Case Sensitive Data Flag. Enter a Y or N to include or exclude cases with sensitive data. |
| p_region | string | no | EPA Region Filter. Provide a single value of 01 thru 10 to restrict results to a single EPA region. |
| p_state | string | no | Case Location State Filter. Enter one or more state USPS postal codes to filter results. Provide multiple values as a comma-delimited list. |
| p_district | string | no | Case Location Court District Limiter. Enter a single state court district code to limit results. |
| p_sic | string | no | Standard Industrial Classification (SIC) Code Filter. Enter a single 4-digit SIC Code to filter results. |
| p_sic_ao_naics | string | no | Case Location SIC/NAICS And/Or Modifier. Enter either AND or OR to govern the search logic of SIC and NAICS codes. - AND = Search will… |
| p_sic_primary_flg | string | no | Case Location Primary SIC Flag. Enter Y to limit SIC search results to primary SIC codes only. |
| p_sic_frs_flg | string | no | Case Location Extended FRS SIC Search Flag. Enter Y to expand SIC search to include Federal Registry Service datasets. |
| p_naics | string | no | North American Industry Classification System Filter. Enter two to six digits to filter results to facilities having matching NAICS codes.… |
| p_naics_primary_flg | string | no | Case Location Primary NAICS Flag. Enter Y to limit NAICS search results to primary NAICS codes only. |
| p_naics_frs_flg | string | no | Case Location Extended FRS NAICS Search Flag. Enter Y to expand NAICS search to include Federal Registry Service datasets. |
| p_enf_type | string | no | Case Enforcement Type Filter. Enter one or more case enforcement type codes to limit results. Provide multiple values as a comma-delimited… |
| p_law | string | no | Law Statute Code Filter. Enter a single statute code to limit results. |
| p_section | string | no | Law Section Code Filter. Enter one or more law section codes to limit results. Provide multiple values as a comma-delimited list. |
| p_cp_citation | string | no | Law Section Code Filter Alternative. Enter a single law section code to limit results. This parameter accepts partial codes and allows for… |
| p_rank_order | string | no | Law Status Rank Order Limiter. Enter a single integer rank order to limit results. |
| p_enf_program | string | no | Enforcement Program Code Limiter. Enter one or more enforcement program codes to limit results. Provide multiple values as a… |
| p_priority_area | string | no | Case Priority Area Filter. Enter one or more case priority areas to limit results. Provide multiple values as a comma-delimited list. |
| p_priority_area_desc | string | no | Case Priority Area Description Filter. Enter a single case priority area description or partial case priority area description to limit… |
| p_tribal | string | no | Case Location Tribal Land Flag. Enter Y or N to include or disallow cases on tribal land. |
| p_oeca_core | string | no | OECA Core Program Flag. Enter Y or N to include or exclude core program cases. |
| p_multimedia | string | no | Enforcement Multimedia Case Flag. Enter Y or N to include or exclude multimedia cases. |
| p_fed_case | string | no | Federal Facility Involvement Flag. Enter a Y or N to include or exclude cases involving federal facilities. |
| p_activity_contact | string | no | Activity Contact Last Name Filter. Enter a single last name or partial last name to filter results. Use "%" as a wild-card for advanced… |
| p_role | string | no | Activity Contact Role Code Filter. Enter a single role code to restrict results. |
| p_fed_penalty | string | no | Federal Penalty Assessed Amount Filter. Provide one of the following keywords to restrict results. - ANY = cases with any penalty amount.… |
| p_total_fed_penalty | string | no | Total Federal Penalty Limiter. Enter a keyword value to limit results to cases with given total federal penalties. - ANY = Cases with any… |
| p_cost_recovery | string | no | Cost Recovery Awarded Amount Limiter. Enter a keyword value to limit results to cases with given cost recovery amounts. - ANY = Cases with… |
| p_total_cost_recovery | string | no | Total Cost Recovery Amount Limiter. Enter a keyword value to limit results to cases with given cost recovery amounts. - ANY = Cases with… |
| p_complying_actions | string | no | Complying Actions Type Code Limiter. Enter one or more complying action codes to restrict results. Provide multiple values as a… |
| p_comp_act_val | string | no | Compliance Action Cost Limiter. Enter a keyword value to limit results to cases with given compliance cost amounts. - ANY = Cases with any… |
| p_total_comp_act_val | string | no | Total Compliance Action Amount Limiter. Enter a keyword value to limit results to cases with given total compliance action amounts. - ANY… |
| p_sep_cats | string | no | Supplemental Environmental Projects Activity Category Code Limiter. Provide one or more SEP activity category codes to limit results.… |
| p_sep_val | string | no | Supplemental Environmental Projects Activity Value Limiter. Provide a keyword to limit results. - ANY = return cases with any SEP activity… |
| p_total_sep_val | string | no | Supplemental Environmental Projects Total Value Limiter. Provide a keyword to limit results. - ANY = return cases with any SEP total… |
| p_lodged_date | string | no | Settlement Lodged Date Limiter. Enter a single settlement lodged date in MM/DD/YYYY format to limit results. |
| p_entered_date | string | no | Settlement Entered Date Limiter. Enter a single settlement entered date in MM/DD/YYYY format to limit results. |
| p_facility_id | string | no | Case Facility Registration Identifier Limiter. Enter a single complete facility identifier to limit results. |
| p_fac_city | string | no | Case Facility City Limiter. Enter a single complete city name to filter cases by facility location city. |
| p_fac_zip | string | no | Case Facility ZIP Code Limiter. Enter a single 5-digit zip code to filter cases by facility location zip code. |
| p_fac_county | string | no | Case Facility County Limiter. Enter a single complete county name to filter cases by facility location county name. |
| p_case_summary | string | no | Case Summary Search Limiter. Enter a single case summary to limit results. This parameter accepts partial codes and allows for advanced… |
| p_case_summary_type | string | no | Identifies how the the search terms enterened in p_case_summary are searched. Valid values are ALL (Default), WITHIN, and CONTAINS. Must… |
| p_usmex | string | no | US-Mexico Border Flag. Enter Y/N to restrict searches to facilities located within 100KM of the border. |
| p_c1lat | number | no | In decimal degrees. Latitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c1lon | number | no | In decimal degrees. Longitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c2lat | number | no | In decimal degrees. Latitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_c2lon | number | no | In decimal degrees. Longitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the… |
| p_voluntary | string | no | Voluntary Self Disclosure Flag. Enter Y or N to include or exclude cases results having voluntary disclosure. |
| p_fed_indicator | string | no | Federal Facility/Cross Media Flag. Enter Y or N to limit results to cases with federal facility cross media. |
| p_fntype | string | no | Controls type of text search performed on facility name with parameter p_fn. - EXACT = Find facilities having the exact provided name(s).… |
| p_civil_criminal_indicator | string | no | Civil/Criminal Case Limiter. Provide a keyword to limit results. - ANY = return both civil and criminal cases. - CI = return only civil… |
| queryset | number | no | Query Limiter. Enter a value to limit the number of records returned for each query. Value cannot exceed 70,000. |
| responseset | number | no | Response Set Limiter. Enter a value to limit the number of records per page. Value cannot exceed 1,000. |
| maplist | string | no | Map List Flag. Provide a Y to return mappable coordinates representing the full geographic extent of the queryset (all facilities that met… |
| tablelist | string | no | Table List Flag. Enter a Y to display the first page of facility results. |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| qcolumns | string | no | Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object… |
| p_ocmap_fy | string | no | Fiscal Year to select cases that are displayed in the Office of Complicance Fiscal Year Map Services |
| p_qs | string | no | Quick Search. Allows entry for city, state, and/or zip code. |
| p_has_map | string | no |  |

### Enforcement Case Search
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-cases`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Placeholder
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-cases-from-facility`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | yes | Identifier for the service. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Placeholder
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-cases-from-facility`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | yes | Identifier for the service. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Enforcement Criminal Case Summary Report Search
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-crcase-report`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | no | Prosecution Summary Identifier. Enter the numeric prosecution summary identifier to retrieve the criminal case report. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| mapset | string | no | Identifies the maxium number of case facilities to return from the case_rest_services.get_case_info query. |

### Enforcement Criminal Case Summary Report Search
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-crcase-report`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Enforcement Case Download Data Service
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-download`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - CSV = Facility results formatted as comma delimited file download (default). |
| qid | string | yes | Query ID Selector. Enter the QueryID number from a previously run query. |
| qcolumns | string | no | Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object… |

### Enforcement Case Download Data Service
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-download`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Placeholder
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-facilities-from-case`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | yes | Identifier for the service. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Placeholder
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-facilities-from-case`

| Parameter | Type | Required | Description |
|---|---|---|---|
| p_id | string | yes | Identifier for the service. |
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Enforcement Case Map Service
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-map`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| qid | string | yes | Query ID Selector. Enter the QueryID number from a previously run query. |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| tablelist | string | no | Table List Flag. Enter a Y to display the first page of facility results. |
| c1_lat | number | no | Latitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be… |
| c1_long | number | no | Longitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must… |
| c2_lat | number | no | Latitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be… |
| c2_long | number | no | Longitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must… |

### Enforcement Case Map Service
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-map`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Enforcement Case Paginated Results Service
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-qid`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| qid | string | yes | Query ID Selector. Enter the QueryID number from a previously run query. |
| pageno | number | no | Indicates the number of the page to display. It is used only when the results are paginated. |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| newsort | number | no | Output Sort Column. Enter the number of the column on which the data will be sorted. If unpopulated results will sort on the first column. |
| descending | string | no | Output Sort Column Descending Flag. Enter Y to column identified in the newsort parameter descending. Enter N to use ascending sort order.… |
| qcolumns | string | no | Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object… |

### Enforcement Case Paginated Results Service
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-get-qid`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Enforcement Case Metadata Service
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-metadata`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |

### Enforcement Case Metadata Service
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-case-rest-services-metadata`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### ECHO ICIS Law Sections Lookup Service
`GET https://zieapi.vercel.app/v1/open-data:epa-case/get-rest-lookups-icis-law-sections`

| Parameter | Type | Required | Description |
|---|---|---|---|
| output | string | no | Output Format Flag. Enter one of the following keywords: - JSON = Data model formatted as Javascript Object Notation (default). - JSONP =… |
| callback | string | no | JSONP Callback. For use with JSONP and GEOJSONP output only. Enter a name of the function in which to wrap the JSON response. |
| statute_code | string | no |  |
| status_flag | string | no |  |
| search_term | string | no | Enter a partial or complete search phrase or word. |
| search_code | string | no | Enter a partial or complete code value. |
| sort_order | number | no |  |

### ECHO ICIS Law Sections Lookup Service
`POST https://zieapi.vercel.app/v1/open-data:epa-case/post-rest-lookups-icis-law-sections`

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

## Example
```
curl "https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-case-info" \
  -H "x-api-key: $APIZIE_KEY"
```

## FAQ

### How do I call the U.S. EPA Enforcement and Compliance History Online (ECHO) -… API?
Create a free Apizie key, then send GET https://zieapi.vercel.app/v1/open-data:epa-case/get-case-rest-services-get-case-info with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the U.S. EPA Enforcement and Compliance History Online (ECHO) -… API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card.

### Can AI agents use the U.S. EPA Enforcement and Compliance History Online (ECHO) -… API?
Yes. Add the Apizie MCP server (https://zieapi.vercel.app/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key open-data:epa-case.

### What is the status of the U.S. EPA Enforcement and Compliance History Online (ECHO) -… API?
Live: works with just an Apizie key
