Custom Connector
EPA Air Quality Connector
US
The EPA Air Quality Connector enables seamless integration with the U.S. EPA Air Quality System (AQS) API. Acting as a lightweight proxy, it simplifies access to air-quality datasets — sample, daily, and annual measurements, plus QA and metadata resources — handling query normalization, content-type headers, and parameter encoding. An API key is required for all endpoints.
Overview
Integration Overview
This document provides a comprehensive guide to each integration point, its purpose, configuration, and supported parameters using the EPA Air Quality Connector. Endpoints are grouped by data family, each offering by-state, by-county, by-site, and (where applicable) by-CBSA or by-bounding-box variants.
- Sample Data. sampleData by state, county, site, CBSA, or bounding box.
- Daily Data. dailyData by state, county, site, CBSA, or bounding box.
- Annual Data. annualData by state, county, site, CBSA, or bounding box.
- QA Annual Performance Evaluations. by site, county, state, or MA.
- QA Collocated Assessments. by state, county, site, PQAO, or MA.
- QA PEP Audits. by state, county, site, PQAO, or MA.
- QA Flow Rate Audits. by state, county, site, PQAO, or MA.
- QA Flow Rate Verifications. by state, county, site, PQAO, or MA.
- QA Blanks. by state, county, site, PQAO, or MA.
- QA One Point QC Raw Data. by state, county, site, PQAO, or MA.
- Transactions Sample. by state, county, site, POC, or MA.
- Transactions QA Annual Performance Evaluations. by site, county, state, PQAO, or MA.
- Monitors. by state, county, site, CBSA, or bounding box.
- List endpoints. states, counties, sites, CBSAs, classes, parameters, PQAOs, MAs.
- Meta data & utility. fields by service, availability, revision history, issues, signup, service check.
Documentation
Detailed Integration Documentation
Sample Data by State
| Action | sampleDataByState |
|---|---|
| Purpose | Retrieves sample-level air-quality measurements filtered by U.S. state. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Required: state (FIPS, e.g. 06), bdate, edate (YYYYMMDD), param (e.g. 88101). Optional: site, county, cbsa, format, callback. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /sampleData/byState?state=06&bdate=20240101&edate=20240131¶m=88101 for PM2.5 samples in California. |
Sample Data by County / Site / CBSA / Box
| Action | sampleData* |
|---|---|
| Purpose | Retrieves sample-level measurements scoped to a county, site, CBSA, or geographic bounding box. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | By county: state, county, param, bdate, edate. By site: state, county, site, param, bdate, edate. By CBSA: cbsa, param, bdate, edate. By box: minlat, maxlat, minlon, maxlon, param, bdate, edate. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /sampleData/byCounty?state=06&county=001¶m=44201&bdate=20240101&edate=20240131 for ozone in a county. |
Daily Data (byState / byCounty / bySite / byCBSA / byBox)
| Action | dailyData* |
|---|---|
| Purpose | Retrieves daily average air-quality data for a state, county, site, CBSA, or bounding box. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Same scoping parameters as Sample Data (state/county/site, cbsa, or min/max lat/lon), plus param, bdate, edate. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /dailyData/bySite?state=06&county=001&site=0001¶m=44201&bdate=20240101&edate=20240131. |
Annual Data (byState / byCounty / bySite / byCBSA / byBox)
| Action | annualData* |
|---|---|
| Purpose | Retrieves annual aggregate statistics for air-quality parameters, scoped by state, county, site, CBSA, or box. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (state/county/site, cbsa, or min/max lat/lon), plus param and year. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /annualData/byState?state=06¶m=88101&year=2024. |
QA Annual Performance Evaluations
| Action | qaAnnualPerformanceEvaluations* |
|---|---|
| Purpose | Retrieves QA annual performance evaluation results (bySite, byCounty, byState, byMA) for assessing instrument accuracy and data quality. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (site/county/state/ma), plus param and year. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaAnnualPerformanceEvaluations/bySite?state=06&county=001&site=0001¶m=88101&year=2024. |
QA Collocated Assessments
| Action | qaCollocatedAssessments* |
|---|---|
| Purpose | Retrieves collocated assessment records (byState, byCounty, bySite, byPQAO, byMA) comparing instrument consistency. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (state/county/site/pqao/ma), plus param and year. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaCollocatedAssessments/byState?state=06¶m=88101&year=2024. |
QA PEP Audits
| Action | qaPepAudits* |
|---|---|
| Purpose | Retrieves Performance Evaluation Program (PEP) audit data (byState, byCounty, bySite, byPQAO, byMA). |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (state/county/site/pqao/ma), plus param and year. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaPepAudits/byState?state=06¶m=88101&year=2024. |
QA Flow Rate Audits
| Action | qaFlowRateAudits* |
|---|---|
| Purpose | Retrieves QA flow rate audit data (byState, byCounty, bySite, byPQAO, byMA) for monitors. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters plus year (param optional). |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaFlowRateAudits/byState?state=06¶m=44201&year=2024. |
QA Flow Rate Verifications
| Action | qaFlowRateVerifications* |
|---|---|
| Purpose | Retrieves flow rate verification data (byState, byCounty, bySite, byPQAO, byMA) to confirm calibration. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters plus year (param optional). |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaFlowRateVerifications/byState?state=06¶m=88101&year=2024. |
QA Blanks
| Action | qaBlanks* |
|---|---|
| Purpose | Retrieves QA blank sample records (byState, byCounty, bySite, byPQAO, byMA) for baseline/contamination control. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters plus year (param optional). |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaBlanks/byState?state=06¶m=44201&year=2024. |
QA One Point QC Raw Data
| Action | qaOnePointQcRawData* |
|---|---|
| Purpose | Retrieves one-point QC raw data (byState, byCounty, bySite, byPQAO, byMA) for verifying calibration accuracy. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters plus year (param optional). |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /qaOnePointQcRawData/byState?state=06¶m=88101&year=2024. |
Transactions Sample
| Action | transactionsSample* |
|---|---|
| Purpose | Retrieves transactional-level sample records (byState, byCounty, bySite, byPOC, byMA). |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (state/county/site/poc/ma), plus param, bdate, edate. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /transactionsSample/byState?state=06¶m=44201&bdate=20240101&edate=20240131. |
Transactions QA Annual Performance Evaluations
| Action | transactionsQaAnnualPerformanceEvaluations* |
|---|---|
| Purpose | Retrieves transactional QA annual performance evaluations (bySite, byCounty, byState, byPQAO, byMA). |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters plus param and year. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /transactionsQaAnnualPerformanceEvaluations/bySite?state=06&county=001&site=0001¶m=44201&year=2024. |
Monitors (byState / byCounty / bySite / byCBSA / byBox)
| Action | monitors* |
|---|---|
| Purpose | Retrieves information about air-quality monitors — site identifiers, coordinates, parameter codes, operational details. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Scoping parameters (state/county/site, cbsa, or min/max lat/lon), plus optional param and format. |
| Output | Successful: JSON object with the requested records. Failure: error object from the upstream EPA AQS API. |
| Workflow example | GET /monitors/byState?state=06¶m=44201. |
List Endpoints
| Actions | list/states, list/countiesByState, list/sitesByCounty, list/cbsas, list/classes, list/parametersByClass, list/pqaos, list/mas |
|---|---|
| Purpose | Retrieve reference lists — states, counties, sites, CBSAs, parameter classes, parameters by class, PQAOs, and monitoring agencies. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | Vary by endpoint (e.g. state for countiesByState; state+county for sitesByCounty; class for parametersByClass). All accept an optional format. |
| Output | Successful: JSON reference list. Failure: error object. |
| Workflow example | GET /list/countiesByState?state=06, then GET /list/sitesByCounty?state=06&county=001 to build query selectors. |
Meta Data & Utility
| Actions | metaData/fieldsByService, metaData/isAvailable, metaData/revisionHistory, metaData/issues, signup, serviceAvailable |
|---|---|
| Purpose | Retrieve field metadata per service, check service availability, view revision history and known issues, sign up for credentials, and health-check the service. |
| Configuration | Configure the base URL via AQS_ENV_BASE_URL and AQS_ENV_PORT. An API key is required for all endpoints. |
| Parameters | service (for field/availability/history queries); others require none. All accept an optional format. |
| Output | Successful: JSON metadata or status. Failure: error object. |
| Workflow example | GET /metaData/fieldsByService?service=dailyData to discover available fields; GET /serviceAvailable as a heartbeat. |
Example Workflow: Air Quality Data Pipeline
| Discover references | Use /list/states, /list/countiesByState, /list/sitesByCounty to build query selectors. |
|---|---|
| Fetch data | Use /dailyData/bySite with state, county, site, param, and a date range to fetch daily measurements. |
| Assess quality | Use the QA families (e.g. /qaOnePointQcRawData/bySite) to validate data quality. |
| Report | Process the data for reporting or visualization in a dashboard. |
Support
For technical support, contact custom-connectors-support@isolutions.sa.