ECHO — Clean Air Act Facility Search

CAA stationary-source facility compliance search.

Documentation

Specifications

Examples

📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air00-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air01-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air02-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air03-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air04-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air05-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air06-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air08-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air09-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air10-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air11-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-air12-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-geo-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-meta1-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-meta3-example.json
📝
Example
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/examples/echo-air-qp0-example.json

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air00-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air01-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air02-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air03-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air04-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air05-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air06-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air08-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air09-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air10-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air11-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-air12-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-geo-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-meta1-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-meta3-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-schema/echo-air-qp0-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air00-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air01-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air02-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air03-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air04-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air05-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air06-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air08-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air09-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air10-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air11-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-air12-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-geo-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-meta1-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-meta3-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/json-structure/echo-air-qp0-structure.json

Other Resources

OpenAPI Specification

echo-air-openapi.json Raw ↑
{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "echodata.epa.gov",
  "basePath": "/echo",
  "info": {
    "contact": {
      "name": "U.S. EPA, OECA Integration, Targeting and Access Branch",
      "url": "https://echo.epa.gov/resources/general-info/contact-us"
    },
    "description": "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.\n\nAir Rest Services provides multiple service endpoints, each with specific capabilities, to search and retrieve data on facilities regulated under the Clean Air Act (CAA). The returned results reflect data drawn from EPA's ICIS-Air database.\n\nThe get_facilities, get_map, get_qid, and get_download end points are meant to be used together, while the enhanced get_facility_info end point is self contained.\nThe get_facility_info end point returns either an array of state, county or zip clusters with summary statistics per cluster or an array of facilities.\n\nThe recommended use scenario for get_facilities, get_qid, get_map, and get_downoad is:\n\n<b>1)</b>  Use get_facilities to validate passed query parameters, obtain summary statistics and to obtain a query_id (QID).  QIDs are time sensitive and will be valid for approximately 30 minutes.\n<b>2)</b>  Use get_qid, with the returned QID, to paginate through arrays of facility results.\n<b>3)</b>  Use get_map, with the returned QID, to zoom in/out and pan on the clustered and individual facility coordinates that meet the QID query criteria.\n<b>4)</b>  Use get_download, with the returned QID, to generate a Comma Separated Value (CSV) file of facility information that meets the QID query criteria.\n\nUse the qcolumns parameter to customize your search results.  Use the Metadata service endpoint for a list of available output objects, their Column Ids, and their definitions to help you build your customized output. \n\nAdditional ECHO Resources:   <a href=\"https://echo.epa.gov/tools/web-services\">Web Services</a>, <a href=\"https://echo.epa.gov/resources/echo-data/about-the-data\">About ECHO's Data</a>, <a href=\"https://echo.epa.gov/tools/data-downloads\">Data Downloads</a>",
    "license": {
      "name": "U.S. Public Domain License",
      "url": "https://edg.epa.gov/EPA_Data_License.html"
    },
    "title": "U.S. EPA Enforcement and Compliance History Online (ECHO) - Clean Air Act",
    "version": "2019.10.15",
    "x-apisguru-categories": [
      "open_data"
    ],
    "x-logo": {
      "backgroundColor": "#FFFFFF",
      "url": "https://api.apis.guru/v2/cache/logo/https_pbs.twimg.com_profile_images_632233890594299904_DgRDU6dx_400x400.png"
    },
    "x-origin": [
      {
        "format": "swagger",
        "url": "https://ofmpub.epa.gov/echo/swaggerx.swagger_json?p_prefix=AIR",
        "version": "2.0"
      }
    ],
    "x-providerName": "epa.gov",
    "x-serviceName": "air"
  },
  "consumes": [
    "application/x-www-form-urlencoded"
  ],
  "produces": [
    "application/json",
    "application/xml"
  ],
  "parameters": {
    "f.c1_lat": {
      "description": "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.",
      "in": "formData",
      "name": "c1_lat",
      "required": false,
      "type": "number"
    },
    "f.c1_long": {
      "description": "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.",
      "in": "formData",
      "name": "c1_long",
      "required": false,
      "type": "number"
    },
    "f.c2_lat": {
      "description": "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.",
      "in": "formData",
      "name": "c2_lat",
      "required": false,
      "type": "number"
    },
    "f.c2_long": {
      "description": "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.",
      "in": "formData",
      "name": "c2_long",
      "required": false,
      "type": "number"
    },
    "f.callback": {
      "description": "JSONP Callback.  For use with JSONP and GEOJSONP output only.  Enter a name of the function in which to wrap the JSON response.",
      "in": "formData",
      "name": "callback",
      "required": false,
      "type": "string"
    },
    "f.descending": {
      "description": "Output Sort Column Descending Flag.  Enter Y to column identified in the newsort parameter descending.  Enter N to use ascending sort order. Used only when newsort parameter is populated.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "descending",
      "required": false,
      "type": "string"
    },
    "f.maplist": {
      "description": "Map List Flag.  Provide a Y to return mappable coordinates representing the full geographic extent of the queryset (all facilities that met the selection criteria).",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "maplist",
      "required": false,
      "type": "string"
    },
    "f.newsort": {
      "description": "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.",
      "in": "formData",
      "name": "newsort",
      "required": false,
      "type": "number"
    },
    "f.p_act": {
      "description": "Active Permits/Facilities Flag.  Provide Y or N to filter results to facilities with active permits.",
      "enum": [
        "Y",
        "N",
        "A"
      ],
      "in": "formData",
      "name": "p_act",
      "required": false,
      "type": "string"
    },
    "f.p_agoo": {
      "description": "Indicates whether to AND or OR the Owner/Operator parameter (p_owop) and the federal agency code (p_fa) parameters.",
      "enum": [
        "AND",
        "OR"
      ],
      "in": "formData",
      "name": "p_agoo",
      "required": false,
      "type": "string"
    },
    "f.p_ar": {
      "description": "Associated EPA Air Reports Program Filter.  Enter multiple values as a comma-delimited list.  Valid values are:\n- TRI = Toxic Release Inventory.\n- GHG = Green House Gas Reporter.\n- EIS = Emission Inventory System.\n- CAMD = Clean Air Markets Program Reporter.",
      "in": "formData",
      "name": "p_ar",
      "required": false,
      "type": "string"
    },
    "f.p_c1lat": {
      "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.",
      "in": "formData",
      "name": "p_c1lat",
      "required": false,
      "type": "number"
    },
    "f.p_c1lon": {
      "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.",
      "in": "formData",
      "name": "p_c1lon",
      "required": false,
      "type": "number"
    },
    "f.p_c2lat": {
      "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.",
      "in": "formData",
      "name": "p_c2lat",
      "required": false,
      "type": "number"
    },
    "f.p_c2lon": {
      "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.",
      "in": "formData",
      "name": "p_c2lon",
      "required": false,
      "type": "number"
    },
    "f.p_cifdi": {
      "description": "Compliance issuess found during inspection.",
      "enum": [
        "Any",
        "Yes",
        "No",
        "Undetermined"
      ],
      "in": "formData",
      "name": "p_cifdi",
      "required": false,
      "type": "string"
    },
    "f.p_co": {
      "description": "Facility County Filter. Provide a single county name in combination with a state value provided via p_st.",
      "in": "formData",
      "name": "p_co",
      "required": false,
      "type": "string"
    },
    "f.p_ct": {
      "description": "Facility City Filter. Enter a single case-insensitive city name to filter results.",
      "in": "formData",
      "name": "p_ct",
      "required": false,
      "type": "string"
    },
    "f.p_decouple": {
      "description": "Decouple Inspection Code Search Flag.  Enter \"Y\" to search for inspection code types with p_pityp without respect to the date range search provided with p_ysl* parameters.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_decouple",
      "required": false,
      "type": "string"
    },
    "f.p_des": {
      "description": "Universe Designation Limiter.  Enter one or more universe designation codes.  Provide multiple values as a comma-delimited list.  Use code \"TSDF\" to return the full enforcement TSDF universe and \"Operating TSDF\" to return the operating TSDF universe.",
      "in": "formData",
      "name": "p_des",
      "required": false,
      "type": "string"
    },
    "f.p_ejscreen": {
      "description": "Enter \"Y\" to limit facilities to Census block groups where one of more Environmental Justice indexes above 80th percentile.",
      "in": "formData",
      "name": "p_ejscreen",
      "required": false,
      "type": "string"
    },
    "f.p_ejscreen_over80cnt": {
      "description": "The number of Environmenmt Justice Indicators above the 80th percentile.  Valid values are 1 through 11.",
      "enum": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6",
        "7",
        "8",
        "9",
        "10",
        "11"
      ],
      "in": "formData",
      "name": "p_ejscreen_over80cnt",
      "required": false,
      "type": "string"
    },
    "f.p_fa": {
      "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 lookup service to obtain a list of values.",
      "in": "formData",
      "name": "p_fa",
      "required": false,
      "type": "string"
    },
    "f.p_fac_ico": {
      "description": "FRS tribal land code flag.  Enter \"Y\" or \"N\" to include or exclude facilities based on FRS tribal land code.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_fac_ico",
      "required": false,
      "type": "string"
    },
    "f.p_fac_icos": {
      "description": "FRS tribal land spatial flag.  Enter \"Y\" or \"N\" to include or exclude facilities based on FRS tribal land spatial flag.",
      "in": "formData",
      "name": "p_fac_icos",
      "required": false,
      "type": "string"
    },
    "f.p_fea": {
      "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 = not within date range",
      "enum": [
        "W",
        "N"
      ],
      "in": "formData",
      "name": "p_fea",
      "required": false,
      "type": "string"
    },
    "f.p_feaa": {
      "description": "Agency associated with Formal Enforcement Actions:\n- E = EPA\n- S = State\n- A = All",
      "enum": [
        "A",
        "E",
        "S"
      ],
      "in": "formData",
      "name": "p_feaa",
      "required": false,
      "type": "string"
    },
    "f.p_feay": {
      "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 find FEAs within (or not within) the number of years specified.",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "in": "formData",
      "name": "p_feay",
      "required": false,
      "type": "number"
    },
    "f.p_fips": {
      "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.",
      "in": "formData",
      "name": "p_fips",
      "required": false,
      "type": "string"
    },
    "f.p_fn": {
      "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.",
      "in": "formData",
      "name": "p_fn",
      "required": false,
      "type": "string"
    },
    "f.p_fntype": {
      "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 provided term(s).\n- ALL = Find facilities using Oracle text search terms.\n- CONTAINS = ",
      "enum": [
        "ALL",
        "CONTAINS",
        "EXACT",
        "BEGINS"
      ],
      "in": "formData",
      "name": "p_fntype",
      "required": false,
      "type": "string"
    },
    "f.p_frs": {
      "description": "Facility Registry Service ID Filter. Enter a single 12-digit FRS identifier to filter results.",
      "in": "formData",
      "name": "p_frs",
      "required": false,
      "type": "string"
    },
    "f.p_ghg_amt": {
      "description": "Green House Gas (GHG) CO2 Equivalent Formatted Release Amount.  First 2 characters must contain GT (greater than) followed by a number.",
      "enum": [
        "None",
        "0",
        "GT0",
        "GT10000",
        "GT25000",
        "GT250000",
        "GT1000000"
      ],
      "in": "formData",
      "name": "p_ghg_amt",
      "required": false,
      "type": "string"
    },
    "f.p_ghg_any_amt": {
      "description": "Green House Gas (GHG) C02 Equivalent Custom Amount.  The C02E value reported for the provided category, will be greater or equal to the amount provided.",
      "in": "formData",
      "name": "p_ghg_any_amt",
      "required": false,
      "type": "number"
    },
    "f.p_ghg_cat": {
      "description": "Green House Gas (GHG) Gas Code Category.  Must be used with either a formatted (p_ghg_amt) or custom (p_ghg_any_amt) release amount.",
      "enum": [
        "ALL",
        "BIOCO2",
        "CH4",
        "CO2",
        "HFC",
        "N2O",
        "NF3",
        "OTHER_L",
        "PFC",
        "SF6"
      ],
      "in": "formData",
      "name": "p_ghg_cat",
      "required": false,
      "type": "string"
    },
    "f.p_ghg_yr": {
      "description": "Green House Gas (GHG) Reporting Year. (2010 through 2015)",
      "in": "formData",
      "name": "p_ghg_yr",
      "required": false,
      "type": "string"
    },
    "f.p_hpvmth": {
      "description": "Months in high priority violation status out of the previous three years limiter.  Provide a number of months in the past three years.  Results will limited to facilities in high priority violation status during that time. ",
      "in": "formData",
      "name": "p_hpvmth",
      "required": false,
      "type": "string"
    },
    "f.p_huc": {
      "description": "2-, 4-, 6-, or 8-character watershed code. May contain multiple comma-separated values.",
      "in": "formData",
      "name": "p_huc",
      "required": false,
      "type": "string"
    },
    "f.p_ico": {
      "description": "Indian Country Flag.  Enter a \"Y\" or \"N\" to restrict searches to facilities inside or outside Indian Country.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_ico",
      "required": false,
      "type": "string"
    },
    "f.p_icoo": {
      "description": "Indian country search and/or flag.  Enter \"Y\" to set indian country search conditions to return any results found using p_ico, p_fac_ico or p_fac_icoo.  Otherwise only results matching all provided p_ico, p_fac_ico or p_fac_icoo conditions will be returned.",
      "in": "formData",
      "name": "p_icoo",
      "required": false,
      "type": "string"
    },
    "f.p_id": {
      "description": "Identifier for the service.",
      "in": "formData",
      "name": "p_id",
      "required": true,
      "type": "string"
    },
    "f.p_idt1": {
      "description": "Beginning of date range of most recent facility inspection.",
      "in": "formData",
      "name": "p_idt1",
      "required": false,
      "type": "string"
    },
    "f.p_idt2": {
      "description": "End of date range of most recent facility inspection.",
      "in": "formData",
      "name": "p_idt2",
      "required": false,
      "type": "string"
    },
    "f.p_iea": {
      "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 within date range",
      "enum": [
        "W",
        "N"
      ],
      "in": "formData",
      "name": "p_iea",
      "required": false,
      "type": "string"
    },
    "f.p_ieaa": {
      "description": "Agency associated with Informal Enforcement Actions. If left blank, both agencies are included.\n- E = EPA\n- S = State",
      "enum": [
        "E",
        "S"
      ],
      "in": "formData",
      "name": "p_ieaa",
      "required": false,
      "type": "string"
    },
    "f.p_ieay": {
      "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 find IEAs within (or not within) the number of years specified.",
      "enum": [
        1,
        2,
        3,
        4,
        5
      ],
      "in": "formData",
      "name": "p_ieay",
      "required": false,
      "type": "number"
    },
    "f.p_impw": {
      "description": "Discharging into Impaired Waters Flag. Enter Y to limit results to facilities with discharge to waterbodies listed as impaired in the ATTAINS database.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_impw",
      "required": false,
      "type": "string"
    },
    "f.p_lat": {
      "description": "Latitude location in decimal degrees.",
      "in": "formData",
      "name": "p_lat",
      "required": false,
      "type": "number"
    },
    "f.p_lcon": {
      "description": "Air Program Local Control Region Code Filter.  Enter one or more local control region codes to filter results.  Provide multiple codes as a comma-delimited list.  Codes where they exist are specific by state.",
      "in": "formData",
      "name": "p_lcon",
      "required": false,
      "type": "string"
    },
    "f.p_limit_addr": {
      "description": "Limit Address Search Flag.  Enter Y to restrict facility searches to native data source only.  ",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_limit_addr",
      "required": false,
      "type": "string"
    },
    "f.p_long": {
      "description": "Longitude location in decimal degrees.",
      "in": "formData",
      "name": "p_long",
      "required": false,
      "type": "number"
    },
    "f.p_mact": {
      "description": "CAA Maximum Achievable Control Technology (MACT) Subpart codes (alpha ID between 1 and 7 characters) applicable to the facility.",
      "in": "formData",
      "name": "p_mact",
      "required": false,
      "type": "string"
    },
    "f.p_maj": {
      "description": "Major Facility Flag.  Enter Y to restrict results to Major facilities only.",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_maj",
      "required": false,
      "type": "string"
    },
    "f.p_med": {
      "description": "Filter Results by Media.\n- M = RMP (Risk Management Plan)\n- R = RCRA (Hazardous Waste)\n- S = SDWA (Public Drinking Water Systems)\n- W = Water\n- ALL = Water and RCRA and SDWA",
      "enum": [
        "M",
        "R",
        "S",
        "W",
        "ALL"
      ],
      "in": "formData",
      "name": "p_med",
      "required": false,
      "type": "string"
    },
    "f.p_naa": {
      "description": "Non-Attainment Area Flag.  Enter a Y or N to filter for or against facilities flagged as non-attainment areas.",
      "in": "formData",
      "name": "p_naa",
      "required": false,
      "type": "string"
    },
    "f.p_ncs": {
      "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 the provided values.",
      "in": "formData",
      "name": "p_ncs",
      "required": false,
      "type": "string"
    },
    "f.p_nei_amt": {
      "description": "National Emissions Inventory (NEI) Formatted Pollutant Amount.  A formatted value where the 1st two characters must start with GT or LT followed by a number.  Identifies facilities that have a NEI Pollutant Emission  where the supplied value is > or < the pollutant emission amount.  ",
      "enum": [
        "None",
        "0",
        "GT0",
        "GT10000",
        "GT25000",
        "GT250000",
        "GT1000000"
      ],
      "in": "formData",
      "name": "p_nei_amt",
      "required": false,
      "type": "string"
    },
    "f.p_nei_any_amt": {
      "description": "National Emissions Inventory (NEI) Custom Pollutant Amount.  Only a number can be entered.  Identifies facilities with where the NEI Pollutant Emission Amount is greater than the number entered.",
      "in": "formData",
      "name": "p_nei_any_amt",
      "required": false,
      "type": "number"
    },
    "f.p_nei_cat": {
      "description": "National Emissions Inventory (NEI) Pollutant Category.  When a pollutant category is entered, a corresponding formatted pollutant amount or custom amount must be entered.",
      "in": "formData",
      "name": "p_nei_cat",
      "required": false,
      "type": "string"
    },
    "f.p_nei_pol": {
      "description": "National Emissions Inventory (NEI) Pollutant Identifier.  When a pollutant identifer is entered a corresponding formatted amount or custom amount must be entered.",
      "in": "formData",
      "name": "p_nei_pol",
      "required": false,
      "type": "string"
    },
    "f.p_nei_yr": {
      "description": "National Emissions Inventory (NEI) year:  2014 or 2011",
      "in": "formData",
      "name": "p_nei_yr",
      "required": false,
      "type": "string"
    },
    "f.p_nsps": {
      "description": "Air Programl New Source Performance Standards (NSPS)  Subpart Code Search.  One or more valid Air Program NSPS Program codes cand be passed.  ",
      "in": "formData",
      "name": "p_nsps",
      "required": false,
      "type": "string"
    },
    "f.p_nspsm": {
      "description": "Air Programl New Source Performance Standards Minors (NSPSM) Subpart Code Search.  One or more valid Air Program NSPSM Subpart codes can be passed.  ",
      "in": "formData",
      "name": "p_nspsm",
      "required": false,
      "type": "string"
    },
    "f.p_opst": {
      "description": "Operating status filter.  Enter one or more operating status codes to limit results.   Provide multiple codes as a comma-delimited list.",
      "in": "formData",
      "name": "p_opst",
      "required": false,
      "type": "string"
    },
    "f.p_owop": {
      "description": "Owner/Operator code filter.  Enter one or more codes to limit results.\n- CNG\n- COR\n- CTG\n- DIS\n- FDF\n- MWD\n- MXO\n- NON\n- POF\n- SDT\n- STF\n- TRB",
      "in": "formData",
      "name": "p_owop",
      "required": false,
      "type": "string"
    },
    "f.p_pctrack": {
      "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",
      "enum": [
        "Off",
        "Partial",
        "On"
      ],
      "in": "formData",
      "name": "p_pctrack",
      "required": false,
      "type": "string"
    },
    "f.p_pd": {
      "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 100 population density per square mile\n- GT500 = More than 500 population density per square mile\n- GT1000 = More than 1000 population density per square mile\n- GT5000 = More than 5000 population density per square mile\n- GT10000 = More than 10000 population density per square mile\n- GT20000 = More than 20000 population density per square mile",
      "enum": [
        "NONE",
        "GT100",
        "GT500",
        "GT1000",
        "GT5000",
        "GT10000",
        "GT20000"
      ],
      "in": "formData",
      "name": "p_pd",
      "required": false,
      "type": "string"
    },
    "f.p_pen": {
      "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\" for a facility with a penalty within previous 5 months.\n- GTXX = Greater than XX months.  Provide a number in place of XX, eg. GT12, for a facility with the last penalty greater than 12 months ago.",
      "in": "formData",
      "name": "p_pen",
      "required": false,
      "type": "string"
    },
    "f.p_pfead1": {
      "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 the last five years.",
      "in": "formData",
      "name": "p_pfead1",
      "required": false,
      "type": "string"
    },
    "f.p_pfead2": {
      "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 the last five years.",
      "in": "formData",
      "name": "p_pfead2",
      "required": false,
      "type": "string"
    },
    "f.p_pfeat": {
      "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 this filter by entering a date range.  Provide multiple codes as a comma-delimited list.",
      "in": "formData",
      "name": "p_pfeat",
      "required": false,
      "type": "string"
    },
    "f.p_pid": {
      "description": "Nine-digit permit IDs. May contain up to 2000 comma-separated values.",
      "in": "formData",
      "name": "p_pid",
      "required": false,
      "type": "string"
    },
    "f.p_pidall": {
      "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).",
      "enum": [
        "Y",
        "N"
      ],
      "in": "formData",
      "name": "p_pidall",
      "required": false,
      "type": "string"
    },
    "f.p_pityp": {
      "description": "Inspection Type:\n- CAC = Corrective Action Inspection\n- CAV = Compliance Assistance Visit\n- CDI = Case Development Inspection\n- CEI = Inspection Inspection\n- CSE = Compliance Schedule Evaluation\n- FCI = Focused Compliance\n- FRR = Financial Record Review\n- FSD = Facility Self Disclosure\n- FUI = Follow-Up Inspection\n- GME = Groundwater Monitoring Evaluation\n- NRR = Non-Financial Record Review\n- OAM = Operation and Maintenance Inspection\nMay contain multiple comma-separated values.",
      "in": "formData",
      "name": "p_pityp",
      "required": false,
      "type": "string"
    },
    "f.p_pm": {
      "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 = greater than 10%\n- GT25 = greater than 25%\n- GT50 = greater than 50%\n- GT75 = greater than 75%",
      "enum": [
        "NONE",
        "GT5",
        "GT10",
        "GT25",
        "GT50",
        "GT75"
      ],
      "in": "formData",
      "name": "p_pm",
      "required": false,
      "type": "string"
    },
    "f.p_pollvio": {
      "description": "Air Pollutant Code For A Recent Violation Filter.  Provide one or more pollutant codes to select facilities with one or more of the entered pollutant codes for a recent air violation.  Provide multiple values as a comma-delimited list.",
      "in": "formData",
      "name": "p_pollvio",
      "required": false,
      "type": "string"
    },
    "f.p_pretty_print": {
      "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.",
      "in": "formData",
      "name": "p_pretty_print",
      "required": false,
      "type": "number"
    },
    "f.p_prog": {
      "description": "Air Program Code Filter.  Enter one or more Air program codes to filter results.  Provide multiple values as a comma-delimited list.",
      "in": "formData",
      "name": "p_prog",
      "required": false,
      "type": "string"
    },
    "f.p_psncq": {
      "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- GEXX = Replacing XX with a numeric value, that number of quarterd or more in significant noncompliance.\n- GTXX = Replacing XX with a numeric value, more than that number of quarters in significant noncompliance.",
      "enum": [
        "GT1",
        "GE1",
        "GT2",
        "GE2",
        "GT4",
        "GE4",
        "GT8",
        "GE8",
        "GT12",
        "GE12"
      ],
      "in": "formData",
      "name": "p_psncq",
      "required": false,
      "type": "string"
    },
    "f.p_qid": {
      "description": "Query ID Selector.  Enter the QueryID number from a previously run query.",
      "in": "formData",
      "name": "p_qid",
      "required": true,
      "type": "string"
    },
    "f.p_qiv": {
      "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 value, that number of quarterd or more in noncompliance.\n- GTXX = Replacing XX with a numeric value, more than that number of quarters in noncompliance.",
      "enum": [
        "0",
        "GT1",
        "GT2",
        "GT4",
        "GT8",
        "12"
      ],
      "in": "formData",
      "name": "p_qiv",
      "required": false,
      "type": "string"
    },
    "f.p_qnc": {
      "description": "Number of quarters in non-compliance limiter.  Enter an integer value between 1 and 4 to limit results.",
      "in": "formData",
      "name": "p_qnc",
      "required": false,
      "type": "number"
    },
    "f.p_qs": {
      "description": "Quick Search. Allows entry for city, state, and/or zip code.",
      "in": "formData",
      "name": "p_qs",
      "required": false,
      "type": "string"
    },
    "f.p_radius": {
      "description": "Spatial Search Radius.  Enter a radius up to 100 miles in which to spatially search for facilities.",
      "in": "formData",
      "name": "p_radius",
      "required": false,
      "type": "number"
    },
    "f.p_recvio": {
      "description": "Recent Violation Status Filter.  Enter one or more recent violation codes to limit results.  Provide multiple values as a comma-delimited list.\n- NO VIOL = Selects facilities with no recent violations.\n- ANY HPV = Selects facilities with either addressed or unaddressed high priority violations.\n- ADDRS-EPA - Select facilities with recent EPA addressed violations.\n- ADDRS-LOCAL - Select facilities with recent locally addressed violations.\n

# --- truncated at 32 KB (298 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/openapi/echo-air-openapi.json