U.S. EPA Enforcement and Compliance History Online (ECHO) - Clean Water Act (CWA) Rest Services — Facility Information
Facility Information. 14 operations. Lead operation: Clean Water Act (CWA) Download Data Service. Self-contained Naftiko capability covering one EPA business surface.
What You Can Do
MCP Tools
clean-water-act-cwa-download-data-service
Clean Water Act (CWA) Download Data Service
clean-water-act-cwa-download-data-service-2
Clean Water Act (CWA) Download Data Service
clean-water-act-cwa-facility-search-service
Clean Water Act (CWA) Facility Search Service
clean-water-act-cwa-facility-search-service-2
Clean Water Act (CWA) Facility Search Service
clean-water-act-cwa-facility-enhanced-search-service
Clean Water Act (CWA) Facility Enhanced Search Service
clean-water-act-cwa-facility-enhanced-search-service-2
Clean Water Act (CWA) Facility Enhanced Search Service
clean-water-act-cwa-geojson-service
Clean Water Act (CWA) GeoJSON Service
clean-water-act-cwa-geojson-service-2
Clean Water Act (CWA) GeoJSON Service
clean-water-act-cwa-info-clusters-service
Clean Water Act (CWA) Info Clusters Service
clean-water-act-cwa-info-clusters-service-2
Clean Water Act (CWA) Info Clusters Service
clean-water-act-cwa-map-service
Clean Water Act (CWA) Map Service
clean-water-act-cwa-map-service-2
Clean Water Act (CWA) Map Service
clean-water-act-cwa-paginated-results-service
Clean Water Act (CWA) Paginated Results Service
clean-water-act-cwa-paginated-results-service-2
Clean Water Act (CWA) Paginated Results Service
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: U.S. EPA Enforcement and Compliance History Online (ECHO) - Clean Water Act (CWA) Rest Services — Facility Information
description: 'Facility Information. 14 operations. Lead operation: Clean Water Act (CWA) Download Data Service. Self-contained Naftiko capability covering one EPA business surface.'
tags:
- EPA
- Facility Information
created: '2026-05-29'
modified: '2026-05-29'
binds:
- namespace: env
keys: {}
capability:
consumes:
- type: http
namespace: echo-cwa-facility-information
baseUri: https://echodata.epa.gov/echo
description: U.S. EPA Enforcement and Compliance History Online (ECHO) - Clean Water Act (CWA) Rest Services — Facility Information business capability. Self-contained, no shared references.
resources:
- name: cwa-rest-services-get-download
path: /cwa_rest_services.get_download
operations:
- name: getcwarestservicesgetdownload
method: GET
description: Clean Water Act (CWA) Download Data Service
inputParameters:
- name: output
in: query
type: string
required: false
description: "Output Format Flag. Enter one of the following keywords:\n- CSV = Facility results formatted as comma delimited file download (default)."
- name: qid
in: query
type: string
required: true
description: Query ID Selector. Enter the QueryID number from a previously run query.
- name: qcolumns
in: query
type: string
required: false
description: Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object or download. Use the metadata service endpoint for a comple
- name: p_pretty_print
in: query
type: number
required: false
description: Optional flag to request GeoJSON formatted results to be pretty printed. Only provide a numeric value when the output needs to be human readable as pretty printing has a performance cost.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: cwa-rest-services-get-download
path: /cwa_rest_services.get_download
operations:
- name: postcwarestservicesgetdownload
method: POST
description: Clean Water Act (CWA) Download Data Service
inputParameters:
- name: output
in: formData
type: string
required: false
description: "Output Format Flag. Enter one of the following keywords:\n- CSV = Facility results formatted as comma delimited file download (default)."
- name: qid
in: formData
type: string
required: true
description: Query ID Selector. Enter the QueryID number from a previously run query.
- name: qcolumns
in: formData
type: string
required: false
description: Used to customize service output. A list of comma-separated column IDs of output objects that will be returned in the service query object or download. Use the metadata service endpoint for a comple
- name: p_pretty_print
in: formData
type: number
required: false
description: Optional flag to request GeoJSON formatted results to be pretty printed. Only provide a numeric value when the output needs to be human readable as pretty printing has a performance cost.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: cwa-rest-services-get-facilities
path: /cwa_rest_services.get_facilities
operations:
- name: getcwarestservicesgetfacilities
method: GET
description: Clean Water Act (CWA) Facility Search Service
inputParameters:
- name: output
in: query
type: string
required: false
description: "Output Format Flag. Enter one of the following keywords:\n- JSON = Data model formatted as Javascript Object Notation (default).\n- JSONP = Data model formatted as Javascript Object Notation with Paddi"
- name: p_fn
in: query
type: string
required: false
description: Facility Name Filter. Enter one or more case-insensitive facility names to filter results. Provide multiple values as a comma-delimited list. See p_fntype for additional modifiers.
- name: p_sa
in: query
type: string
required: false
description: Facility street address. Enter a complete or partial street address.
- name: p_sa1
in: query
type: string
required: false
description: Facility street address. Enter a complete or partial street address. Note that p_sa1 is culmulative with p_sa.
- name: p_ct
in: query
type: string
required: false
description: Facility City Filter. Enter a single case-insensitive city name to filter results.
- name: p_co
in: query
type: string
required: false
description: Facility County Filter. Provide a single county name in combination with a state value provided via p_st.
- name: p_fips
in: query
type: string
required: false
description: FIPS Code Filter. Enter a single 5-character Federal Information Processing Standards (FIPS) state + county value to restrict results. E.g. to limit results to Kenosha County, Wisconsin, use 55059.
- name: p_st
in: query
type: string
required: false
description: Facility State and State-Equivalent Filter. Provide one or more USPS postal abbreviations for states and state-equivalents to filter results. Provide multiple values as a comma-delimited list.
- name: p_zip
in: query
type: string
required: false
description: 5-Digit ZIP Code Filter. Provide one or more 5-digit postal zip codes to filter results. May contain multiple comma-separated values.
- name: p_frs
in: query
type: string
required: false
description: Facility Registry Service ID Filter. Enter a single 12-digit FRS identifier to filter results.
- name: p_reg
in: query
type: string
required: false
description: EPA Region Filter. Provide a single value of 01 thru 10 to restrict results to a single EPA region.
- name: p_sic
in: query
type: string
required: false
description: Standard Industrial Classification (SIC) Code Filter. Enter a single 4-digit SIC Code to filter results. If more complex filtering is required, use p_sic2 and p_sic4.
- name: p_ncs
in: query
type: string
required: false
description: 'North American Industry Classification System Filter. Enter two to six digits to filter results to facilities having matching NAICS codes. Digits less than six will match to all codes beginning with '
- name: p_pen
in: query
type: string
required: false
description: "Last Penality Date Qualifier Filter. Enter one of the following: \n- NEVER = No Penalties\n- ANY = Any Penalty\n- LEXX = Less than or equal to XX months. Provide a number in place of XX, e.g. \"LE5\" f"
- name: p_c1lat
in: query
type: number
required: false
description: In decimal degrees. Latitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be provided.
- name: p_c1lon
in: query
type: number
required: false
description: In decimal degrees. Longitude of 1st corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be provided.
- name: p_c2lat
in: query
type: number
required: false
description: In decimal degrees. Latitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be provided.
- name: p_c2lon
in: query
type: number
required: false
description: In decimal degrees. Longitude of 2nd corner of box that bounds the resulting facilities. The latitude and longitude of both corners of the bounding box must be provided.
- name: p_usmex
in: query
type: string
required: false
description: US-Mexico Border Flag. Enter Y/N to restrict searches to facilities located within 100KM of the border.
- name: p_sic2
in: query
type: string
required: false
description: Standard Industrial Classification (SIC) Code Filter Alternate 2. Enter a wild-card search against SIC codes. A final wild-card is always present allowing "22" to match all SIC codes beginning with 2
- name: p_sic4
in: query
type: string
required: false
description: Standard Industrial Classification (SIC) Code Filter Alternate 3. Enter the first 2, 3 or 4 SIC code digits to filter results to facilities having those code prefixes. As this alternative does not u
- name: p_fa
in: query
type: string
required: false
description: Federal Agency. 1 character or 5-character values; may contain multiple comma-separated values. ALL will retrieve all facilities where the federal agency code is not null. Use the Federal Agencies lo
- name: p_ff
in: query
type: string
required: false
description: Federal Facility Indicator Flag. Enter Y to restrict searches to federal facilities.
- name: p_act
in: query
type: string
required: false
description: Active Permits/Facilities Flag. Provide Y or N to filter results to facilities with active permits. A Y will select ICIS NPDES permits with a status of effective, continued, or expired.
- name: p_maj
in: query
type: string
required: false
description: Major Facility Flag. Enter Y to restrict results to Major facilities only.
- name: p_mact
in: query
type: string
required: false
description: CAA Maximum Achievable Control Technology (MACT) Subpart codes (alpha ID between 1 and 7 characters) applicable to the facility.
- name: p_fea
in: query
type: string
required: false
description: "Formal Enforcement Actions [within / not within] specified date range indicator. The date range is determined by parameters p_fead1 and p_fead2 or by parameter p_feay.\n- W = within date range\n- N = no"
- name: p_feay
in: query
type: number
required: false
description: Years (1 to 5) Range. This value is used to create a date range for Formal Enforcement Actions (FEA). Used along with p_fea (which indicates whether to look within or outside of the date range) to fi
- name: p_feaa
in: query
type: string
required: false
description: "Agency associated with Formal Enforcement Actions:\n- E = EPA\n- S = State\n- A = All"
- name: p_iea
in: query
type: string
required: false
description: "Informal Enforcement Actions [within / not within] specified date range. The date range is determined by parameters p_iead1 and p_iead2 or by parameter p_ieay.\n- W = within date range\n- N = not withi"
- name: p_ieay
in: query
type: number
required: false
description: 'Years (1 to 5) Range. This value is used to create a date range for Informal Enforcement Actions (IEA). Used along with p_iea (which indicates whether to look within or outside of the date range) to '
- name: p_ieaa
in: query
type: string
required: false
description: "Agency associated with Informal Enforcement Actions. If left blank, both agencies are included.\n- E = EPA\n- S = State"
- name: p_qiv
in: query
type: string
required: false
description: "Quarters in Noncompliance Limiter. Enter a coded value to limit results to facilities with given quarter of noncompliance.\n- Z = Zero quarters in noncompliance.\n- GEXX = Replacing XX with a numeric v"
- name: p_iv
in: query
type: string
required: false
description: "Facility has a violation status of 'In Viol' during any of the selected quarters. \n\nRange: Fiscal Year 2020 Quarter 2 to Fiscal Year 2017 Quarter 2\n\nMultiple values are comma delimited.\n\n\n|||||| Fisc"
- name: p_impw
in: query
type: string
required: false
description: Discharging into Impaired Waters Flag. Enter Y to limit results to facilities with discharge to waterbodies listed as impaired in the ATTAINS database.
- name: p_imp_cau_grp
in: query
type: string
required: false
description: Facility is discharging a pollutant group causing a waterbody to be impaired. Enter 1 through 34 (the internal number of the pollutant group); or enter a partial name such as Dioxin,Temp,tUrBidity.
- name: p_imp_pol
in: query
type: string
required: false
description: Facility is discharging pollutants that are potentially contributing to the impairment of local waterbodies according to the ATTAINS database.
- name: p_trep
in: query
type: string
required: false
description: "Current Toxics Release Inventory (TRI) Reporter Limiter. Enter one of the following codes to limit results.\n- CURR = Current TRI reporter.\n- NONCURR = Has reported to TRI in the past but not for the "
- name: p_pm
in: query
type: string
required: false
description: "Percent Minority Population Limiter. Enter a value to restrict results to facilities with a given percentage of minority population within 3-mile radius.\n- NONE = 0%\n- GT5 = greater than 5%\n- GT10 = "
- name: p_pd
in: query
type: string
required: false
description: "Population Density Limiter (per sq mile). Enter a value to limit results to facilities located in area of a given population density.\n- NONE = 0 population density per square mile\n- GT100 = More than "
- name: p_ico
in: query
type: string
required: false
description: Indian Country Flag. Enter a "Y" or "N" to restrict searches to facilities inside or outside Indian Country.
- name: p_huc
in: query
type: string
required: false
description: 2-, 4-, 6-, or 8-character watershed code. May contain multiple comma-separated values.
- name: p_pid
in: query
type: string
required: false
description: Nine-digit permit IDs. May contain up to 2000 comma-separated values.
- name: p_med
in: query
type: string
required: false
description: "Filter Results by Media.\n- A = Air\n- M = RMP (Risk Management Plan)\n- R = RCRA (Hazardous Waste)\n- S = SDWA (Public Drinking Water Systems)\n- ALL = Air and RCRA and Water"
- name: p_ysl
in: query
type: string
required: false
description: "Last Facility Inspection [within / not within] Specified Date Range Indicator. The date range is determined by parameters p_idt1 and p_idt2 or by parameter p_ysly.\n- W = within date range\n- N = not wi"
- name: p_ysly
in: query
type: number
required: false
description: Number of years (1 to 5) since last facility inspection. A value of 1 means that it has been inspected within the year.
- name: p_ysla
in: query
type: string
required: false
description: "Facility Last Inspection Code Filter. If left blank, both agencies are included. Enter a value to limit results:\n- E = EPA\n- S = State"
- name: p_qs
in: query
type: string
required: false
description: Quick Search. Allows entry for city, state, and/or zip code.
- name: p_sfs
in: query
type: string
required: false
description: Single Facility Search Filter. Provide a facility name or program system identifier to limit results. For the all data search, the FRS registry identifier is also searched.
- name: p_tribeid
in: query
type: number
required: false
description: Numeric code for tribe (or list of tribes).
- name: p_tribename
in: query
type: string
required: false
description: Tribe Name Filter. Enter a single tribe name to filter results.
- name: p_tribedist
in: query
type: number
required: false
description: Proximity to tribal land limiter. Enter an amount of mile between 0 and 25 to filter results. This parameter is only evaluated if p_tribeid is populated.
- name: p_pstat
in: query
type: string
required: false
description: "Permit Status Filter. Enter one or more of the following codes. Provide multiple values as a comma-delimited list.\n- EFF = Effective\n- EXP = Expired\n- PND = Pending\n- TRM = Terminated\n- RET = Retire"
- name: p_ptype
in: query
type: string
required: false
description: "Permit Type Filter. Enter one or more code values to filter results. Provide multiple values as a comma-delimited list.\n- NPD = NPDES Individual Permit\n- NGP = NPDES Master General Permit\n- GPC = Gen"
- name: p_pcomp
in: query
type: string
required: false
description: "Permit Component Code Filter. Enter one or more codes to filter results. Provide multiple values as a comma-delimited list.\n- PRE = Pretreatment\n- CAF = CAFO\n- CSO = CSO\n- POT = POTW\n- BIO = Biosoli"
- name: p_plimits
in: query
type: string
required: false
description: Permit Limits Present Flag. Enter Y to limit results to facilities have present permit limits.
- name: p_pcss
in: query
type: string
required: false
description: "Combined Sewer Systems Outflows Limiter. Enter one of the following to limit results to facilities having the given count of CSS outflows.\n- ALL = returns all facilities, regardless of the number of "
- name: p_pexp
in: query
type: string
required: false
description: "Permit Expired or Administratively Continued Limiter. Enter one of the following values to filter results.\n- EXP = limit results to facilities with permits expired or administratively continued.\n- EX"
- name: p_owop
in: query
type: string
required: false
description: "Owner/Operator code filter. Enter one of the following values to restrict results.\n- Federal = Federal facilities regulated under the NPDES program.\n- POTW = Publicly owned treatment works. Treatment"
- name: p_ipfti
in: query
type: string
required: false
description: p_ipfti
- name: p_agoo
in: query
type: string
required: false
description: Indicates whether to AND or OR the Owner/Operator parameter (p_owop) and the federal agency code (p_fa) parameters.
- name: p_idt1
in: query
type: string
required: false
description: Beginning of date range of most recent facility inspection.
- name: p_idt2
in: query
type: string
required: false
description: End of date range of most recent facility inspection.
- name: p_pityp
in: query
type: string
required: false
description: Inspection Type Code. See ICIS Compliance Monitor Types lookup serivce for a list of available codes and descriptions.
- name: p_pfead1
in: query
type: string
required: false
description: Formal Enforcement Action Date Range Start. Enter a date in MM/DD/YYYY format to set the start of the range for filtering by recent Formal Enforcement Action (FEA) taken against the facility within t
- name: p_pfead2
in: query
type: string
required: false
description: 'Formal Enforcement Action Date Range End. Enter a date in MM/DD/YYYY format to set the end of the date range for filtering by recent Formal Enforcement Action (FEA) taken against the facility within '
- name: p_pfeat
in: query
type: string
required: false
description: 'Formal Enforcement Action (FEA) Code Filter. Enter one or more three-letter FEA codes to restrict results to facilities with these attributes. Use p_fead1 and p_fead2 parameters to further restrict '
- name: p_pccs
in: query
type: string
required: false
description: "Current Compliance Status:\n||||||||||||||||||||||||||| \nSignificant Noncompliance (SNC) \n|||||||||||||||||||||||||||\n- SNC = E, S, X, T, D\n- E�= E(EffViol)\n- S�= S(CSchVio)\n- X = X(EffNMth)\n- T = T(CS"
- name: p_pexcd
in: query
type: string
required: false
description: "3-Year Effluent Exceedances Limiter. Enter a value to restrict results to facilities with the given amount of exceedances in the past 3 years.\n- 0 = facilities with no exceedances\n- GE0 = facilities "
- name: p_psncq
in: query
type: string
required: false
description: "Quarters in Significant Noncompliance Limiter. Enter a coded value to limit results to facilities with given quarter of significant noncompliance.\n- Z = Zero quarters in significant noncompliance.\n- "
- name: p_pctrack
in: query
type: string
required: false
description: "Compliance Tracking Limiter. Provide a keyword to indicate the extent to which data is being entered and effluent exceedances are being identified.\n- Off\n- Partial\n- On"
- name: p_dwd
in: query
type: string
required: false
description: Direct Water Discharges. Pounds of toxic chemicals released directly to surface water as reported to the Toxics Release Inventory.
- name: p_pt
in: query
type: string
required: false
description: POTW Transfers. Pounds of toxic chemicals transferred to a Publicly Operated Treatment Works (POTW) as reported to the Toxics Release Inventory.
- name: p_pdwdist
in: query
type: string
required: false
description: Distance (in miles) to downstream drinking water intake.
- name: p_pswdpc
in: query
type: string
required: false
description: 'Pollutant Category Code: Values: WTR for Water, AIR for Air'
- name: p_pswdmp
in: query
type: string
required: false
description: Used to determine limit begin and end dates for surface water discharges. Number represents years from current date.
- name: p_pswpol
in: query
type: string
required: false
description: For CWA, pollutant names for surface water discharges. for Drinking Water, SDWIS Violation contaminant codes for unaddressed violations that have occurred in the last 3 years. May contain multiple com
- name: p_pswcas
in: query
type: string
required: false
description: CAS numbers for surface water discharges. May contain multiple comma-separated values.
- name: p_pswparam
in: query
type: string
required: false
description: Parameter codes for surface water discharges. May contain multiple comma-separated values.
- name: p_pswvio
in: query
type: string
required: false
description: Used in conjuction with parameters p_pswpol and p_pswparam, indicates whether search should only include pollutants with violations.
- name: p_wbd
in: query
type: string
required: false
description: 2-, 4-, 6-, 8-, 10-, or 12-character watershed (WBD from the USGS Watershed Boundary Dataset). May contain multiple comma-separated values. Uses the FRS Best Pick Coordinate to obtain the WBD12 Huc v
- name: p_radwbd
in: query
type: string
required: false
description: '2-, 4-, 6-, 8-, 10-, or 12 character watershed (WBD from the USGS Watershed Boundary Dataset). May contain multiple comma-separated values. Will search against WBD values otained by "reach indexing" '
- name: p_frswbd
in: query
type: string
required: false
description: Works exactly the same as the p_wbd parameter. 2-, 4-, 6-, 8-, 10-, or 12-character watershed (WBD from the USGS Watershed Boundary Dataset). May contain multiple comma-separated values. Uses the FR
- name: p_fntype
in: query
type: string
required: false
description: "Controls type of text search performed on facility name with parameter p_fn.\n- EXACT = Find facilities having the exact provided name(s).\n- BEGINS = Find facilities with names starting with the provid"
- name: p_pidall
in: query
type: string
required: false
description: Controls whether search is restricted to existing system. Y means the search will match the p_pid parameter against all associated permits (AIR, RCRA, SDWIS, etc).
- name: p_months_last_dmr
in: query
type: number
required: false
description: The number of months since the last Discharge Monitoring Report has been submitted.
- name: p_last_dmr_within
in: query
type: string
required: false
description: 'W value returns facilities that have submitted DMRs within the number of months specified by p_months_last_dmr. An N value returns facilities that have not submitted a DMR within the specified number '
- name: p_indsw
in: query
type: string
required: false
description: Industrial Stormwater Permit Flag. Enter a Y or N to filter results by this type of permit.
- name: p_msgp_ptype
in: query
type: string
required: false
description: "Multi-Sector General Purpose Permit Type. Enter a value to filter results by MSGP Permit Type.\n- NOI = Notice of Intent\n- NOE = No Exposure Certification"
- name: p_mon_type
in: query
type: string
required: false
description: For use with the Industrial Stormwater search only. Valid values are BENCHGS fro Benchmark (Alert Limit) G2 Ore, BENCH for Benchmark (Alert Limit), and ELG fro Effluent Limitation Guidelines(ELG)(Effl
- name: p_iagency
in: query
type: string
required: false
description: Issuing Agency Limiter. Enter a single value to filter results by the issuing agency, e.g. "State" or "EPA".
- name: p_permitting_agency
in: query
type: string
required: false
description: p_permitting_agency
- name: p_isws
in: query
# --- truncated at 32 KB (261 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/capabilities/echo-cwa-facility-information.yaml