U.S. EPA Enforcement and Compliance History Online (ECHO) - Enforcement Case Search
epa · Government
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 information for over 1 million regulated facilities nationwide. CASE Rest Services provide multiple service endpoints, each with specific capabilities, to search and retrieve data on civil cases entered into the Integrated Compliance Information System (ICIS) and criminal cases entered int
Authentication
Sample Requests
The get_case_info service end point searches for civil enforcement and criminal cases based on the provided selection criteria and returns either individual cases or clusters of case facility locations.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info?p_qs=example&p_law=example&p_sic=example&mapset=1400&output=JSONP&p_name=example&p_role=example&p_c1lat=1&p_c1lon=1&p_c2lat=1&p_c2lon=1&p_naics=example&p_state=example&p_usmex=Y&callback=example&p_fntype=ALL&p_region=01&p_tribal=Y&qcolumns=example&queryset=1&p_fac_zip=example&p_has_map=example&p_section=example&p_sep_val=ANY&p_to_date=example&p_district=example&p_enf_type=example&p_fac_city=example&p_fed_case=Y&p_ocmap_fy=example&p_sep_cats=example&p_case_lead=E&p_from_date=example&p_milestone=example&p_name_type=example&p_oeca_core=Y&p_violation=example&p_voluntary=example&responseset=1&p_fac_county=example&p_multimedia=Y&p_rank_order=1&p_case_number=example&p_case_status=example&p_cp_citation=example&p_enf_program=example&p_facility_id=example&p_fed_penalty=ANY&p_lodged_date=example&p_sic_frs_flg=Y&p_case_summary=example&p_comp_act_val=ANY&p_entered_date=example&p_milestone_fy=example&p_pretty_print=1&p_sic_ao_naics=AND&p_case_category=example&p_case_sens_flg=example&p_cost_recovery=example&p_docket_number=example&p_fed_indicator=example&p_naics_frs_flg=Y&p_priority_area=example&p_total_sep_val=example&p_activity_number=example&p_sic_primary_flg=Y&p_activity_contact=example&p_case_summary_type=ALL&p_complying_actions=example&p_naics_primary_flg=Y&p_total_fed_penalty=example&p_priority_area_desc=example&p_total_comp_act_val=example&p_court_docket_number=example&p_total_cost_recovery=example&p_civil_criminal_indicator=CI"
import requests
params = {
"p_qs": "example",
"p_law": "example",
"p_sic": "example",
"mapset": "1400",
"output": "JSONP",
"p_name": "example",
"p_role": "example",
"p_c1lat": "1",
"p_c1lon": "1",
"p_c2lat": "1",
"p_c2lon": "1",
"p_naics": "example",
"p_state": "example",
"p_usmex": "Y",
"callback": "example",
"p_fntype": "ALL",
"p_region": "01",
"p_tribal": "Y",
"qcolumns": "example",
"queryset": "1",
"p_fac_zip": "example",
"p_has_map": "example",
"p_section": "example",
"p_sep_val": "ANY",
"p_to_date": "example",
"p_district": "example",
"p_enf_type": "example",
"p_fac_city": "example",
"p_fed_case": "Y",
"p_ocmap_fy": "example",
"p_sep_cats": "example",
"p_case_lead": "E",
"p_from_date": "example",
"p_milestone": "example",
"p_name_type": "example",
"p_oeca_core": "Y",
"p_violation": "example",
"p_voluntary": "example",
"responseset": "1",
"p_fac_county": "example",
"p_multimedia": "Y",
"p_rank_order": "1",
"p_case_number": "example",
"p_case_status": "example",
"p_cp_citation": "example",
"p_enf_program": "example",
"p_facility_id": "example",
"p_fed_penalty": "ANY",
"p_lodged_date": "example",
"p_sic_frs_flg": "Y",
"p_case_summary": "example",
"p_comp_act_val": "ANY",
"p_entered_date": "example",
"p_milestone_fy": "example",
"p_pretty_print": "1",
"p_sic_ao_naics": "AND",
"p_case_category": "example",
"p_case_sens_flg": "example",
"p_cost_recovery": "example",
"p_docket_number": "example",
"p_fed_indicator": "example",
"p_naics_frs_flg": "Y",
"p_priority_area": "example",
"p_total_sep_val": "example",
"p_activity_number": "example",
"p_sic_primary_flg": "Y",
"p_activity_contact": "example",
"p_case_summary_type": "ALL",
"p_complying_actions": "example",
"p_naics_primary_flg": "Y",
"p_total_fed_penalty": "example",
"p_priority_area_desc": "example",
"p_total_comp_act_val": "example",
"p_court_docket_number": "example",
"p_total_cost_recovery": "example",
"p_civil_criminal_indicator": "CI"
}
response = requests.get(
"https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info');
url.searchParams.set('p_qs', 'example');
url.searchParams.set('p_law', 'example');
url.searchParams.set('p_sic', 'example');
url.searchParams.set('mapset', '1400');
url.searchParams.set('output', 'JSONP');
url.searchParams.set('p_name', 'example');
url.searchParams.set('p_role', 'example');
url.searchParams.set('p_c1lat', '1');
url.searchParams.set('p_c1lon', '1');
url.searchParams.set('p_c2lat', '1');
url.searchParams.set('p_c2lon', '1');
url.searchParams.set('p_naics', 'example');
url.searchParams.set('p_state', 'example');
url.searchParams.set('p_usmex', 'Y');
url.searchParams.set('callback', 'example');
url.searchParams.set('p_fntype', 'ALL');
url.searchParams.set('p_region', '01');
url.searchParams.set('p_tribal', 'Y');
url.searchParams.set('qcolumns', 'example');
url.searchParams.set('queryset', '1');
url.searchParams.set('p_fac_zip', 'example');
url.searchParams.set('p_has_map', 'example');
url.searchParams.set('p_section', 'example');
url.searchParams.set('p_sep_val', 'ANY');
url.searchParams.set('p_to_date', 'example');
url.searchParams.set('p_district', 'example');
url.searchParams.set('p_enf_type', 'example');
url.searchParams.set('p_fac_city', 'example');
url.searchParams.set('p_fed_case', 'Y');
url.searchParams.set('p_ocmap_fy', 'example');
url.searchParams.set('p_sep_cats', 'example');
url.searchParams.set('p_case_lead', 'E');
url.searchParams.set('p_from_date', 'example');
url.searchParams.set('p_milestone', 'example');
url.searchParams.set('p_name_type', 'example');
url.searchParams.set('p_oeca_core', 'Y');
url.searchParams.set('p_violation', 'example');
url.searchParams.set('p_voluntary', 'example');
url.searchParams.set('responseset', '1');
url.searchParams.set('p_fac_county', 'example');
url.searchParams.set('p_multimedia', 'Y');
url.searchParams.set('p_rank_order', '1');
url.searchParams.set('p_case_number', 'example');
url.searchParams.set('p_case_status', 'example');
url.searchParams.set('p_cp_citation', 'example');
url.searchParams.set('p_enf_program', 'example');
url.searchParams.set('p_facility_id', 'example');
url.searchParams.set('p_fed_penalty', 'ANY');
url.searchParams.set('p_lodged_date', 'example');
url.searchParams.set('p_sic_frs_flg', 'Y');
url.searchParams.set('p_case_summary', 'example');
url.searchParams.set('p_comp_act_val', 'ANY');
url.searchParams.set('p_entered_date', 'example');
url.searchParams.set('p_milestone_fy', 'example');
url.searchParams.set('p_pretty_print', '1');
url.searchParams.set('p_sic_ao_naics', 'AND');
url.searchParams.set('p_case_category', 'example');
url.searchParams.set('p_case_sens_flg', 'example');
url.searchParams.set('p_cost_recovery', 'example');
url.searchParams.set('p_docket_number', 'example');
url.searchParams.set('p_fed_indicator', 'example');
url.searchParams.set('p_naics_frs_flg', 'Y');
url.searchParams.set('p_priority_area', 'example');
url.searchParams.set('p_total_sep_val', 'example');
url.searchParams.set('p_activity_number', 'example');
url.searchParams.set('p_sic_primary_flg', 'Y');
url.searchParams.set('p_activity_contact', 'example');
url.searchParams.set('p_case_summary_type', 'ALL');
url.searchParams.set('p_complying_actions', 'example');
url.searchParams.set('p_naics_primary_flg', 'Y');
url.searchParams.set('p_total_fed_penalty', 'example');
url.searchParams.set('p_priority_area_desc', 'example');
url.searchParams.set('p_total_comp_act_val', 'example');
url.searchParams.set('p_court_docket_number', 'example');
url.searchParams.set('p_total_cost_recovery', 'example');
url.searchParams.set('p_civil_criminal_indicator', 'CI');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info")
q := baseURL.Query()
q.Set("p_qs", "example")
q.Set("p_law", "example")
q.Set("p_sic", "example")
q.Set("mapset", "1400")
q.Set("output", "JSONP")
q.Set("p_name", "example")
q.Set("p_role", "example")
q.Set("p_c1lat", "1")
q.Set("p_c1lon", "1")
q.Set("p_c2lat", "1")
q.Set("p_c2lon", "1")
q.Set("p_naics", "example")
q.Set("p_state", "example")
q.Set("p_usmex", "Y")
q.Set("callback", "example")
q.Set("p_fntype", "ALL")
q.Set("p_region", "01")
q.Set("p_tribal", "Y")
q.Set("qcolumns", "example")
q.Set("queryset", "1")
q.Set("p_fac_zip", "example")
q.Set("p_has_map", "example")
q.Set("p_section", "example")
q.Set("p_sep_val", "ANY")
q.Set("p_to_date", "example")
q.Set("p_district", "example")
q.Set("p_enf_type", "example")
q.Set("p_fac_city", "example")
q.Set("p_fed_case", "Y")
q.Set("p_ocmap_fy", "example")
q.Set("p_sep_cats", "example")
q.Set("p_case_lead", "E")
q.Set("p_from_date", "example")
q.Set("p_milestone", "example")
q.Set("p_name_type", "example")
q.Set("p_oeca_core", "Y")
q.Set("p_violation", "example")
q.Set("p_voluntary", "example")
q.Set("responseset", "1")
q.Set("p_fac_county", "example")
q.Set("p_multimedia", "Y")
q.Set("p_rank_order", "1")
q.Set("p_case_number", "example")
q.Set("p_case_status", "example")
q.Set("p_cp_citation", "example")
q.Set("p_enf_program", "example")
q.Set("p_facility_id", "example")
q.Set("p_fed_penalty", "ANY")
q.Set("p_lodged_date", "example")
q.Set("p_sic_frs_flg", "Y")
q.Set("p_case_summary", "example")
q.Set("p_comp_act_val", "ANY")
q.Set("p_entered_date", "example")
q.Set("p_milestone_fy", "example")
q.Set("p_pretty_print", "1")
q.Set("p_sic_ao_naics", "AND")
q.Set("p_case_category", "example")
q.Set("p_case_sens_flg", "example")
q.Set("p_cost_recovery", "example")
q.Set("p_docket_number", "example")
q.Set("p_fed_indicator", "example")
q.Set("p_naics_frs_flg", "Y")
q.Set("p_priority_area", "example")
q.Set("p_total_sep_val", "example")
q.Set("p_activity_number", "example")
q.Set("p_sic_primary_flg", "Y")
q.Set("p_activity_contact", "example")
q.Set("p_case_summary_type", "ALL")
q.Set("p_complying_actions", "example")
q.Set("p_naics_primary_flg", "Y")
q.Set("p_total_fed_penalty", "example")
q.Set("p_priority_area_desc", "example")
q.Set("p_total_comp_act_val", "example")
q.Set("p_court_docket_number", "example")
q.Set("p_total_cost_recovery", "example")
q.Set("p_civil_criminal_indicator", "CI")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info")
uri.query = URI.encode_www_form({
"p_qs" => "example",
"p_law" => "example",
"p_sic" => "example",
"mapset" => "1400",
"output" => "JSONP",
"p_name" => "example",
"p_role" => "example",
"p_c1lat" => "1",
"p_c1lon" => "1",
"p_c2lat" => "1",
"p_c2lon" => "1",
"p_naics" => "example",
"p_state" => "example",
"p_usmex" => "Y",
"callback" => "example",
"p_fntype" => "ALL",
"p_region" => "01",
"p_tribal" => "Y",
"qcolumns" => "example",
"queryset" => "1",
"p_fac_zip" => "example",
"p_has_map" => "example",
"p_section" => "example",
"p_sep_val" => "ANY",
"p_to_date" => "example",
"p_district" => "example",
"p_enf_type" => "example",
"p_fac_city" => "example",
"p_fed_case" => "Y",
"p_ocmap_fy" => "example",
"p_sep_cats" => "example",
"p_case_lead" => "E",
"p_from_date" => "example",
"p_milestone" => "example",
"p_name_type" => "example",
"p_oeca_core" => "Y",
"p_violation" => "example",
"p_voluntary" => "example",
"responseset" => "1",
"p_fac_county" => "example",
"p_multimedia" => "Y",
"p_rank_order" => "1",
"p_case_number" => "example",
"p_case_status" => "example",
"p_cp_citation" => "example",
"p_enf_program" => "example",
"p_facility_id" => "example",
"p_fed_penalty" => "ANY",
"p_lodged_date" => "example",
"p_sic_frs_flg" => "Y",
"p_case_summary" => "example",
"p_comp_act_val" => "ANY",
"p_entered_date" => "example",
"p_milestone_fy" => "example",
"p_pretty_print" => "1",
"p_sic_ao_naics" => "AND",
"p_case_category" => "example",
"p_case_sens_flg" => "example",
"p_cost_recovery" => "example",
"p_docket_number" => "example",
"p_fed_indicator" => "example",
"p_naics_frs_flg" => "Y",
"p_priority_area" => "example",
"p_total_sep_val" => "example",
"p_activity_number" => "example",
"p_sic_primary_flg" => "Y",
"p_activity_contact" => "example",
"p_case_summary_type" => "ALL",
"p_complying_actions" => "example",
"p_naics_primary_flg" => "Y",
"p_total_fed_penalty" => "example",
"p_priority_area_desc" => "example",
"p_total_comp_act_val" => "example",
"p_court_docket_number" => "example",
"p_total_cost_recovery" => "example",
"p_civil_criminal_indicator" => "CI"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_info?" . http_build_query([
"p_qs" => "example",
"p_law" => "example",
"p_sic" => "example",
"mapset" => "1400",
"output" => "JSONP",
"p_name" => "example",
"p_role" => "example",
"p_c1lat" => "1",
"p_c1lon" => "1",
"p_c2lat" => "1",
"p_c2lon" => "1",
"p_naics" => "example",
"p_state" => "example",
"p_usmex" => "Y",
"callback" => "example",
"p_fntype" => "ALL",
"p_region" => "01",
"p_tribal" => "Y",
"qcolumns" => "example",
"queryset" => "1",
"p_fac_zip" => "example",
"p_has_map" => "example",
"p_section" => "example",
"p_sep_val" => "ANY",
"p_to_date" => "example",
"p_district" => "example",
"p_enf_type" => "example",
"p_fac_city" => "example",
"p_fed_case" => "Y",
"p_ocmap_fy" => "example",
"p_sep_cats" => "example",
"p_case_lead" => "E",
"p_from_date" => "example",
"p_milestone" => "example",
"p_name_type" => "example",
"p_oeca_core" => "Y",
"p_violation" => "example",
"p_voluntary" => "example",
"responseset" => "1",
"p_fac_county" => "example",
"p_multimedia" => "Y",
"p_rank_order" => "1",
"p_case_number" => "example",
"p_case_status" => "example",
"p_cp_citation" => "example",
"p_enf_program" => "example",
"p_facility_id" => "example",
"p_fed_penalty" => "ANY",
"p_lodged_date" => "example",
"p_sic_frs_flg" => "Y",
"p_case_summary" => "example",
"p_comp_act_val" => "ANY",
"p_entered_date" => "example",
"p_milestone_fy" => "example",
"p_pretty_print" => "1",
"p_sic_ao_naics" => "AND",
"p_case_category" => "example",
"p_case_sens_flg" => "example",
"p_cost_recovery" => "example",
"p_docket_number" => "example",
"p_fed_indicator" => "example",
"p_naics_frs_flg" => "Y",
"p_priority_area" => "example",
"p_total_sep_val" => "example",
"p_activity_number" => "example",
"p_sic_primary_flg" => "Y",
"p_activity_contact" => "example",
"p_case_summary_type" => "ALL",
"p_complying_actions" => "example",
"p_naics_primary_flg" => "Y",
"p_total_fed_penalty" => "example",
"p_priority_area_desc" => "example",
"p_total_comp_act_val" => "example",
"p_court_docket_number" => "example",
"p_total_cost_recovery" => "example",
"p_civil_criminal_indicator" => "CI"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));The get_case_report service endpoint returns a complex object of civil enforcement case details based on the provided case id.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report?p_id=example&output=JSONP&callback=example"
import requests
params = {
"p_id": "example",
"output": "JSONP",
"callback": "example"
}
response = requests.get(
"https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report');
url.searchParams.set('p_id', 'example');
url.searchParams.set('output', 'JSONP');
url.searchParams.set('callback', 'example');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report")
q := baseURL.Query()
q.Set("p_id", "example")
q.Set("output", "JSONP")
q.Set("callback", "example")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report")
uri.query = URI.encode_www_form({
"p_id" => "example",
"output" => "JSONP",
"callback" => "example"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_case_report?" . http_build_query([
"p_id" => "example",
"output" => "JSONP",
"callback" => "example"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));The get_cases service end point searches for civil enforcement and criminal cases based on the provided selection criteria.
Hover any highlighted part to learn what it does
curl -X GET "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases?p_qs=example&p_law=example&p_sic=example&output=JSONP&p_name=example&p_role=example&maplist=Y&p_c1lat=1&p_c1lon=1&p_c2lat=1&p_c2lon=1&p_naics=example&p_state=example&p_usmex=Y&callback=example&p_fntype=ALL&p_region=01&p_tribal=Y&qcolumns=example&queryset=1&p_fac_zip=example&p_has_map=example&p_section=example&p_sep_val=ANY&p_to_date=example&tablelist=Y&p_district=example&p_enf_type=example&p_fac_city=example&p_fed_case=Y&p_ocmap_fy=example&p_sep_cats=example&p_case_lead=E&p_from_date=example&p_milestone=example&p_name_type=example&p_oeca_core=Y&p_violation=example&p_voluntary=example&responseset=1&p_fac_county=example&p_multimedia=Y&p_rank_order=1&p_case_number=example&p_case_status=example&p_cp_citation=example&p_enf_program=example&p_facility_id=example&p_fed_penalty=ANY&p_lodged_date=example&p_sic_frs_flg=Y&p_case_summary=example&p_comp_act_val=ANY&p_entered_date=example&p_milestone_fy=example&p_sic_ao_naics=AND&p_case_category=example&p_case_sens_flg=example&p_cost_recovery=example&p_docket_number=example&p_fed_indicator=example&p_naics_frs_flg=Y&p_priority_area=example&p_total_sep_val=example&p_activity_number=example&p_sic_primary_flg=Y&p_activity_contact=example&p_case_summary_type=ALL&p_complying_actions=example&p_naics_primary_flg=Y&p_total_fed_penalty=example&p_priority_area_desc=example&p_total_comp_act_val=example&p_court_docket_number=example&p_total_cost_recovery=example&p_civil_criminal_indicator=CI"
import requests
params = {
"p_qs": "example",
"p_law": "example",
"p_sic": "example",
"output": "JSONP",
"p_name": "example",
"p_role": "example",
"maplist": "Y",
"p_c1lat": "1",
"p_c1lon": "1",
"p_c2lat": "1",
"p_c2lon": "1",
"p_naics": "example",
"p_state": "example",
"p_usmex": "Y",
"callback": "example",
"p_fntype": "ALL",
"p_region": "01",
"p_tribal": "Y",
"qcolumns": "example",
"queryset": "1",
"p_fac_zip": "example",
"p_has_map": "example",
"p_section": "example",
"p_sep_val": "ANY",
"p_to_date": "example",
"tablelist": "Y",
"p_district": "example",
"p_enf_type": "example",
"p_fac_city": "example",
"p_fed_case": "Y",
"p_ocmap_fy": "example",
"p_sep_cats": "example",
"p_case_lead": "E",
"p_from_date": "example",
"p_milestone": "example",
"p_name_type": "example",
"p_oeca_core": "Y",
"p_violation": "example",
"p_voluntary": "example",
"responseset": "1",
"p_fac_county": "example",
"p_multimedia": "Y",
"p_rank_order": "1",
"p_case_number": "example",
"p_case_status": "example",
"p_cp_citation": "example",
"p_enf_program": "example",
"p_facility_id": "example",
"p_fed_penalty": "ANY",
"p_lodged_date": "example",
"p_sic_frs_flg": "Y",
"p_case_summary": "example",
"p_comp_act_val": "ANY",
"p_entered_date": "example",
"p_milestone_fy": "example",
"p_sic_ao_naics": "AND",
"p_case_category": "example",
"p_case_sens_flg": "example",
"p_cost_recovery": "example",
"p_docket_number": "example",
"p_fed_indicator": "example",
"p_naics_frs_flg": "Y",
"p_priority_area": "example",
"p_total_sep_val": "example",
"p_activity_number": "example",
"p_sic_primary_flg": "Y",
"p_activity_contact": "example",
"p_case_summary_type": "ALL",
"p_complying_actions": "example",
"p_naics_primary_flg": "Y",
"p_total_fed_penalty": "example",
"p_priority_area_desc": "example",
"p_total_comp_act_val": "example",
"p_court_docket_number": "example",
"p_total_cost_recovery": "example",
"p_civil_criminal_indicator": "CI"
}
response = requests.get(
"https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases",
params=params,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases');
url.searchParams.set('p_qs', 'example');
url.searchParams.set('p_law', 'example');
url.searchParams.set('p_sic', 'example');
url.searchParams.set('output', 'JSONP');
url.searchParams.set('p_name', 'example');
url.searchParams.set('p_role', 'example');
url.searchParams.set('maplist', 'Y');
url.searchParams.set('p_c1lat', '1');
url.searchParams.set('p_c1lon', '1');
url.searchParams.set('p_c2lat', '1');
url.searchParams.set('p_c2lon', '1');
url.searchParams.set('p_naics', 'example');
url.searchParams.set('p_state', 'example');
url.searchParams.set('p_usmex', 'Y');
url.searchParams.set('callback', 'example');
url.searchParams.set('p_fntype', 'ALL');
url.searchParams.set('p_region', '01');
url.searchParams.set('p_tribal', 'Y');
url.searchParams.set('qcolumns', 'example');
url.searchParams.set('queryset', '1');
url.searchParams.set('p_fac_zip', 'example');
url.searchParams.set('p_has_map', 'example');
url.searchParams.set('p_section', 'example');
url.searchParams.set('p_sep_val', 'ANY');
url.searchParams.set('p_to_date', 'example');
url.searchParams.set('tablelist', 'Y');
url.searchParams.set('p_district', 'example');
url.searchParams.set('p_enf_type', 'example');
url.searchParams.set('p_fac_city', 'example');
url.searchParams.set('p_fed_case', 'Y');
url.searchParams.set('p_ocmap_fy', 'example');
url.searchParams.set('p_sep_cats', 'example');
url.searchParams.set('p_case_lead', 'E');
url.searchParams.set('p_from_date', 'example');
url.searchParams.set('p_milestone', 'example');
url.searchParams.set('p_name_type', 'example');
url.searchParams.set('p_oeca_core', 'Y');
url.searchParams.set('p_violation', 'example');
url.searchParams.set('p_voluntary', 'example');
url.searchParams.set('responseset', '1');
url.searchParams.set('p_fac_county', 'example');
url.searchParams.set('p_multimedia', 'Y');
url.searchParams.set('p_rank_order', '1');
url.searchParams.set('p_case_number', 'example');
url.searchParams.set('p_case_status', 'example');
url.searchParams.set('p_cp_citation', 'example');
url.searchParams.set('p_enf_program', 'example');
url.searchParams.set('p_facility_id', 'example');
url.searchParams.set('p_fed_penalty', 'ANY');
url.searchParams.set('p_lodged_date', 'example');
url.searchParams.set('p_sic_frs_flg', 'Y');
url.searchParams.set('p_case_summary', 'example');
url.searchParams.set('p_comp_act_val', 'ANY');
url.searchParams.set('p_entered_date', 'example');
url.searchParams.set('p_milestone_fy', 'example');
url.searchParams.set('p_sic_ao_naics', 'AND');
url.searchParams.set('p_case_category', 'example');
url.searchParams.set('p_case_sens_flg', 'example');
url.searchParams.set('p_cost_recovery', 'example');
url.searchParams.set('p_docket_number', 'example');
url.searchParams.set('p_fed_indicator', 'example');
url.searchParams.set('p_naics_frs_flg', 'Y');
url.searchParams.set('p_priority_area', 'example');
url.searchParams.set('p_total_sep_val', 'example');
url.searchParams.set('p_activity_number', 'example');
url.searchParams.set('p_sic_primary_flg', 'Y');
url.searchParams.set('p_activity_contact', 'example');
url.searchParams.set('p_case_summary_type', 'ALL');
url.searchParams.set('p_complying_actions', 'example');
url.searchParams.set('p_naics_primary_flg', 'Y');
url.searchParams.set('p_total_fed_penalty', 'example');
url.searchParams.set('p_priority_area_desc', 'example');
url.searchParams.set('p_total_comp_act_val', 'example');
url.searchParams.set('p_court_docket_number', 'example');
url.searchParams.set('p_total_cost_recovery', 'example');
url.searchParams.set('p_civil_criminal_indicator', 'CI');
const response = await fetch(url);
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases")
q := baseURL.Query()
q.Set("p_qs", "example")
q.Set("p_law", "example")
q.Set("p_sic", "example")
q.Set("output", "JSONP")
q.Set("p_name", "example")
q.Set("p_role", "example")
q.Set("maplist", "Y")
q.Set("p_c1lat", "1")
q.Set("p_c1lon", "1")
q.Set("p_c2lat", "1")
q.Set("p_c2lon", "1")
q.Set("p_naics", "example")
q.Set("p_state", "example")
q.Set("p_usmex", "Y")
q.Set("callback", "example")
q.Set("p_fntype", "ALL")
q.Set("p_region", "01")
q.Set("p_tribal", "Y")
q.Set("qcolumns", "example")
q.Set("queryset", "1")
q.Set("p_fac_zip", "example")
q.Set("p_has_map", "example")
q.Set("p_section", "example")
q.Set("p_sep_val", "ANY")
q.Set("p_to_date", "example")
q.Set("tablelist", "Y")
q.Set("p_district", "example")
q.Set("p_enf_type", "example")
q.Set("p_fac_city", "example")
q.Set("p_fed_case", "Y")
q.Set("p_ocmap_fy", "example")
q.Set("p_sep_cats", "example")
q.Set("p_case_lead", "E")
q.Set("p_from_date", "example")
q.Set("p_milestone", "example")
q.Set("p_name_type", "example")
q.Set("p_oeca_core", "Y")
q.Set("p_violation", "example")
q.Set("p_voluntary", "example")
q.Set("responseset", "1")
q.Set("p_fac_county", "example")
q.Set("p_multimedia", "Y")
q.Set("p_rank_order", "1")
q.Set("p_case_number", "example")
q.Set("p_case_status", "example")
q.Set("p_cp_citation", "example")
q.Set("p_enf_program", "example")
q.Set("p_facility_id", "example")
q.Set("p_fed_penalty", "ANY")
q.Set("p_lodged_date", "example")
q.Set("p_sic_frs_flg", "Y")
q.Set("p_case_summary", "example")
q.Set("p_comp_act_val", "ANY")
q.Set("p_entered_date", "example")
q.Set("p_milestone_fy", "example")
q.Set("p_sic_ao_naics", "AND")
q.Set("p_case_category", "example")
q.Set("p_case_sens_flg", "example")
q.Set("p_cost_recovery", "example")
q.Set("p_docket_number", "example")
q.Set("p_fed_indicator", "example")
q.Set("p_naics_frs_flg", "Y")
q.Set("p_priority_area", "example")
q.Set("p_total_sep_val", "example")
q.Set("p_activity_number", "example")
q.Set("p_sic_primary_flg", "Y")
q.Set("p_activity_contact", "example")
q.Set("p_case_summary_type", "ALL")
q.Set("p_complying_actions", "example")
q.Set("p_naics_primary_flg", "Y")
q.Set("p_total_fed_penalty", "example")
q.Set("p_priority_area_desc", "example")
q.Set("p_total_comp_act_val", "example")
q.Set("p_court_docket_number", "example")
q.Set("p_total_cost_recovery", "example")
q.Set("p_civil_criminal_indicator", "CI")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("GET", targetURL, nil)
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases")
uri.query = URI.encode_www_form({
"p_qs" => "example",
"p_law" => "example",
"p_sic" => "example",
"output" => "JSONP",
"p_name" => "example",
"p_role" => "example",
"maplist" => "Y",
"p_c1lat" => "1",
"p_c1lon" => "1",
"p_c2lat" => "1",
"p_c2lon" => "1",
"p_naics" => "example",
"p_state" => "example",
"p_usmex" => "Y",
"callback" => "example",
"p_fntype" => "ALL",
"p_region" => "01",
"p_tribal" => "Y",
"qcolumns" => "example",
"queryset" => "1",
"p_fac_zip" => "example",
"p_has_map" => "example",
"p_section" => "example",
"p_sep_val" => "ANY",
"p_to_date" => "example",
"tablelist" => "Y",
"p_district" => "example",
"p_enf_type" => "example",
"p_fac_city" => "example",
"p_fed_case" => "Y",
"p_ocmap_fy" => "example",
"p_sep_cats" => "example",
"p_case_lead" => "E",
"p_from_date" => "example",
"p_milestone" => "example",
"p_name_type" => "example",
"p_oeca_core" => "Y",
"p_violation" => "example",
"p_voluntary" => "example",
"responseset" => "1",
"p_fac_county" => "example",
"p_multimedia" => "Y",
"p_rank_order" => "1",
"p_case_number" => "example",
"p_case_status" => "example",
"p_cp_citation" => "example",
"p_enf_program" => "example",
"p_facility_id" => "example",
"p_fed_penalty" => "ANY",
"p_lodged_date" => "example",
"p_sic_frs_flg" => "Y",
"p_case_summary" => "example",
"p_comp_act_val" => "ANY",
"p_entered_date" => "example",
"p_milestone_fy" => "example",
"p_sic_ao_naics" => "AND",
"p_case_category" => "example",
"p_case_sens_flg" => "example",
"p_cost_recovery" => "example",
"p_docket_number" => "example",
"p_fed_indicator" => "example",
"p_naics_frs_flg" => "Y",
"p_priority_area" => "example",
"p_total_sep_val" => "example",
"p_activity_number" => "example",
"p_sic_primary_flg" => "Y",
"p_activity_contact" => "example",
"p_case_summary_type" => "ALL",
"p_complying_actions" => "example",
"p_naics_primary_flg" => "Y",
"p_total_fed_penalty" => "example",
"p_priority_area_desc" => "example",
"p_total_comp_act_val" => "example",
"p_court_docket_number" => "example",
"p_total_cost_recovery" => "example",
"p_civil_criminal_indicator" => "CI"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Get.new(uri)
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/epa.gov/case/1.0.0/case_rest_services.get_cases?" . http_build_query([
"p_qs" => "example",
"p_law" => "example",
"p_sic" => "example",
"output" => "JSONP",
"p_name" => "example",
"p_role" => "example",
"maplist" => "Y",
"p_c1lat" => "1",
"p_c1lon" => "1",
"p_c2lat" => "1",
"p_c2lon" => "1",
"p_naics" => "example",
"p_state" => "example",
"p_usmex" => "Y",
"callback" => "example",
"p_fntype" => "ALL",
"p_region" => "01",
"p_tribal" => "Y",
"qcolumns" => "example",
"queryset" => "1",
"p_fac_zip" => "example",
"p_has_map" => "example",
"p_section" => "example",
"p_sep_val" => "ANY",
"p_to_date" => "example",
"tablelist" => "Y",
"p_district" => "example",
"p_enf_type" => "example",
"p_fac_city" => "example",
"p_fed_case" => "Y",
"p_ocmap_fy" => "example",
"p_sep_cats" => "example",
"p_case_lead" => "E",
"p_from_date" => "example",
"p_milestone" => "example",
"p_name_type" => "example",
"p_oeca_core" => "Y",
"p_violation" => "example",
"p_voluntary" => "example",
"responseset" => "1",
"p_fac_county" => "example",
"p_multimedia" => "Y",
"p_rank_order" => "1",
"p_case_number" => "example",
"p_case_status" => "example",
"p_cp_citation" => "example",
"p_enf_program" => "example",
"p_facility_id" => "example",
"p_fed_penalty" => "ANY",
"p_lodged_date" => "example",
"p_sic_frs_flg" => "Y",
"p_case_summary" => "example",
"p_comp_act_val" => "ANY",
"p_entered_date" => "example",
"p_milestone_fy" => "example",
"p_sic_ao_naics" => "AND",
"p_case_category" => "example",
"p_case_sens_flg" => "example",
"p_cost_recovery" => "example",
"p_docket_number" => "example",
"p_fed_indicator" => "example",
"p_naics_frs_flg" => "Y",
"p_priority_area" => "example",
"p_total_sep_val" => "example",
"p_activity_number" => "example",
"p_sic_primary_flg" => "Y",
"p_activity_contact" => "example",
"p_case_summary_type" => "ALL",
"p_complying_actions" => "example",
"p_naics_primary_flg" => "Y",
"p_total_fed_penalty" => "example",
"p_priority_area_desc" => "example",
"p_total_comp_act_val" => "example",
"p_court_docket_number" => "example",
"p_total_cost_recovery" => "example",
"p_civil_criminal_indicator" => "CI"
]);
$opts = ["http" => [
"method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with U.S. EPA Enforcement and Compliance History Online (ECHO) - Enforcement Case Search?
U.S. EPA Enforcement and Compliance History Online (ECHO) - Enforcement Case Search is a Government API. Developers commonly use government APIs for:
- surfacing public datasets in citizen-facing apps
- building transparency and civic engagement tools
- accessing legislation, court records, and official data
- powering research and journalism tools
- creating compliance and regulatory monitoring dashboards
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. U.S. EPA Enforcement and Compliance History Online (ECHO) - Enforcement Case Search is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?