EPA — U.S. Environmental Protection Agency · Capability
EPA Air Quality System (AQS) API — Quarterly Data
Quarterly Data. 5 operations. Lead operation: Get Quarterly Data by Site. Self-contained Naftiko capability covering one EPA business surface.
What You Can Do
GET
Quarterlydatabysite
— Get Quarterly Data by Site
/v1/quarterlydata/bysite
GET
Quarterlydatabycounty
— Get Quarterly Data by County
/v1/quarterlydata/bycounty
GET
Quarterlydatabystate
— Get Quarterly Data by State
/v1/quarterlydata/bystate
GET
Quarterlydatabybox
— Get Quarterly Data by Bounding Box
/v1/quarterlydata/bybox
GET
Quarterlydatabycbsa
— Get Quarterly Data by CBSA
/v1/quarterlydata/bycbsa
MCP Tools
get-quarterly-data-site
Get Quarterly Data by Site
read-only
idempotent
get-quarterly-data-county
Get Quarterly Data by County
read-only
idempotent
get-quarterly-data-state
Get Quarterly Data by State
read-only
idempotent
get-quarterly-data-bounding-box
Get Quarterly Data by Bounding Box
read-only
idempotent
get-quarterly-data-cbsa
Get Quarterly Data by CBSA
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: EPA Air Quality System (AQS) API — Quarterly Data
description: 'Quarterly Data. 5 operations. Lead operation: Get Quarterly Data by Site. Self-contained Naftiko capability covering one EPA business surface.'
tags:
- EPA
- Quarterly Data
created: '2026-05-29'
modified: '2026-05-29'
binds:
- namespace: env
keys:
EPA_EMAILKEY_KEY: EPA_EMAILKEY_KEY
capability:
consumes:
- type: http
namespace: aqs-quarterly-data
baseUri: https://aqs.epa.gov/data/api
description: EPA Air Quality System (AQS) API — Quarterly Data business capability. Self-contained, no shared references.
authentication:
type: apikey
key: key
value: '{{env.EPA_EMAILKEY_KEY}}'
placement: query
resources:
- name: quarterlydata-bysite
path: /quarterlyData/bySite
operations:
- name: quarterlyDataBySite
method: GET
description: Get Quarterly Data by Site
inputParameters:
- name: email
in: query
type: string
required: true
description: Registered email address.
- name: key
in: query
type: string
required: true
description: Account-specific access key.
- name: param
in: query
type: string
required: true
description: Comma-separated list of up to 5 AQS 5-digit parameter codes.
- name: bdate
in: query
type: string
required: true
description: Begin date (YYYYMMDD).
- name: edate
in: query
type: string
required: true
description: End date (YYYYMMDD). Must be in the same year as bdate for most services.
- name: state
in: query
type: string
required: true
description: 2-digit state FIPS code.
- name: county
in: query
type: string
required: true
description: 3-digit county code.
- name: site
in: query
type: string
required: true
description: 4-digit site code.
- name: cbdate
in: query
type: string
required: false
description: Optional change begin date (returns records updated since cbdate).
- name: cedate
in: query
type: string
required: false
description: Optional change end date.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: quarterlydata-bycounty
path: /quarterlyData/byCounty
operations:
- name: quarterlyDataByCounty
method: GET
description: Get Quarterly Data by County
inputParameters:
- name: email
in: query
type: string
required: true
description: Registered email address.
- name: key
in: query
type: string
required: true
description: Account-specific access key.
- name: param
in: query
type: string
required: true
description: Comma-separated list of up to 5 AQS 5-digit parameter codes.
- name: bdate
in: query
type: string
required: true
description: Begin date (YYYYMMDD).
- name: edate
in: query
type: string
required: true
description: End date (YYYYMMDD). Must be in the same year as bdate for most services.
- name: state
in: query
type: string
required: true
description: 2-digit state FIPS code.
- name: county
in: query
type: string
required: true
description: 3-digit county code.
- name: cbdate
in: query
type: string
required: false
description: Optional change begin date (returns records updated since cbdate).
- name: cedate
in: query
type: string
required: false
description: Optional change end date.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: quarterlydata-bystate
path: /quarterlyData/byState
operations:
- name: quarterlyDataByState
method: GET
description: Get Quarterly Data by State
inputParameters:
- name: email
in: query
type: string
required: true
description: Registered email address.
- name: key
in: query
type: string
required: true
description: Account-specific access key.
- name: param
in: query
type: string
required: true
description: Comma-separated list of up to 5 AQS 5-digit parameter codes.
- name: bdate
in: query
type: string
required: true
description: Begin date (YYYYMMDD).
- name: edate
in: query
type: string
required: true
description: End date (YYYYMMDD). Must be in the same year as bdate for most services.
- name: state
in: query
type: string
required: true
description: 2-digit state FIPS code.
- name: cbdate
in: query
type: string
required: false
description: Optional change begin date (returns records updated since cbdate).
- name: cedate
in: query
type: string
required: false
description: Optional change end date.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: quarterlydata-bybox
path: /quarterlyData/byBox
operations:
- name: quarterlyDataByBox
method: GET
description: Get Quarterly Data by Bounding Box
inputParameters:
- name: email
in: query
type: string
required: true
description: Registered email address.
- name: key
in: query
type: string
required: true
description: Account-specific access key.
- name: param
in: query
type: string
required: true
description: Comma-separated list of up to 5 AQS 5-digit parameter codes.
- name: bdate
in: query
type: string
required: true
description: Begin date (YYYYMMDD).
- name: edate
in: query
type: string
required: true
description: End date (YYYYMMDD). Must be in the same year as bdate for most services.
- name: minlat
in: query
type: number
required: true
description: Minimum latitude of bounding box.
- name: maxlat
in: query
type: number
required: true
description: maxlat
- name: minlon
in: query
type: number
required: true
description: minlon
- name: maxlon
in: query
type: number
required: true
description: maxlon
- name: cbdate
in: query
type: string
required: false
description: Optional change begin date (returns records updated since cbdate).
- name: cedate
in: query
type: string
required: false
description: Optional change end date.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: quarterlydata-bycbsa
path: /quarterlyData/byCBSA
operations:
- name: quarterlyDataByCBSA
method: GET
description: Get Quarterly Data by CBSA
inputParameters:
- name: email
in: query
type: string
required: true
description: Registered email address.
- name: key
in: query
type: string
required: true
description: Account-specific access key.
- name: param
in: query
type: string
required: true
description: Comma-separated list of up to 5 AQS 5-digit parameter codes.
- name: bdate
in: query
type: string
required: true
description: Begin date (YYYYMMDD).
- name: edate
in: query
type: string
required: true
description: End date (YYYYMMDD). Must be in the same year as bdate for most services.
- name: cbsa
in: query
type: string
required: true
description: 5-digit Core Based Statistical Area code.
- name: cbdate
in: query
type: string
required: false
description: Optional change begin date (returns records updated since cbdate).
- name: cedate
in: query
type: string
required: false
description: Optional change end date.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: rest
namespace: aqs-quarterly-data-rest
port: 8080
description: REST adapter for EPA Air Quality System (AQS) API — Quarterly Data. One Spectral-compliant resource per consumed operation, prefixed with /v1.
resources:
- path: /v1/quarterlydata/bysite
name: quarterlydata-bysite
description: REST surface for Get Quarterly Data by Site.
operations:
- method: GET
name: quarterlyDataBySite
description: Get Quarterly Data by Site
call: aqs-quarterly-data.quarterlyDataBySite
with:
email: rest.email
key: rest.key
param: rest.param
bdate: rest.bdate
edate: rest.edate
state: rest.state
county: rest.county
site: rest.site
cbdate: rest.cbdate
cedate: rest.cedate
outputParameters:
- type: object
mapping: $.
- path: /v1/quarterlydata/bycounty
name: quarterlydata-bycounty
description: REST surface for Get Quarterly Data by County.
operations:
- method: GET
name: quarterlyDataByCounty
description: Get Quarterly Data by County
call: aqs-quarterly-data.quarterlyDataByCounty
with:
email: rest.email
key: rest.key
param: rest.param
bdate: rest.bdate
edate: rest.edate
state: rest.state
county: rest.county
cbdate: rest.cbdate
cedate: rest.cedate
outputParameters:
- type: object
mapping: $.
- path: /v1/quarterlydata/bystate
name: quarterlydata-bystate
description: REST surface for Get Quarterly Data by State.
operations:
- method: GET
name: quarterlyDataByState
description: Get Quarterly Data by State
call: aqs-quarterly-data.quarterlyDataByState
with:
email: rest.email
key: rest.key
param: rest.param
bdate: rest.bdate
edate: rest.edate
state: rest.state
cbdate: rest.cbdate
cedate: rest.cedate
outputParameters:
- type: object
mapping: $.
- path: /v1/quarterlydata/bybox
name: quarterlydata-bybox
description: REST surface for Get Quarterly Data by Bounding Box.
operations:
- method: GET
name: quarterlyDataByBox
description: Get Quarterly Data by Bounding Box
call: aqs-quarterly-data.quarterlyDataByBox
with:
email: rest.email
key: rest.key
param: rest.param
bdate: rest.bdate
edate: rest.edate
minlat: rest.minlat
maxlat: rest.maxlat
minlon: rest.minlon
maxlon: rest.maxlon
cbdate: rest.cbdate
cedate: rest.cedate
outputParameters:
- type: object
mapping: $.
- path: /v1/quarterlydata/bycbsa
name: quarterlydata-bycbsa
description: REST surface for Get Quarterly Data by CBSA.
operations:
- method: GET
name: quarterlyDataByCBSA
description: Get Quarterly Data by CBSA
call: aqs-quarterly-data.quarterlyDataByCBSA
with:
email: rest.email
key: rest.key
param: rest.param
bdate: rest.bdate
edate: rest.edate
cbsa: rest.cbsa
cbdate: rest.cbdate
cedate: rest.cedate
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: aqs-quarterly-data-mcp
port: 9090
transport: http
description: MCP adapter for EPA Air Quality System (AQS) API — Quarterly Data. One tool per consumed operation, routed inline through this capability's consumes block.
tools:
- name: get-quarterly-data-site
description: Get Quarterly Data by Site
hints:
readOnly: true
destructive: false
idempotent: true
call: aqs-quarterly-data.quarterlyDataBySite
with:
email: tools.email
key: tools.key
param: tools.param
bdate: tools.bdate
edate: tools.edate
state: tools.state
county: tools.county
site: tools.site
cbdate: tools.cbdate
cedate: tools.cedate
outputParameters:
- type: object
mapping: $.
- name: get-quarterly-data-county
description: Get Quarterly Data by County
hints:
readOnly: true
destructive: false
idempotent: true
call: aqs-quarterly-data.quarterlyDataByCounty
with:
email: tools.email
key: tools.key
param: tools.param
bdate: tools.bdate
edate: tools.edate
state: tools.state
county: tools.county
cbdate: tools.cbdate
cedate: tools.cedate
outputParameters:
- type: object
mapping: $.
- name: get-quarterly-data-state
description: Get Quarterly Data by State
hints:
readOnly: true
destructive: false
idempotent: true
call: aqs-quarterly-data.quarterlyDataByState
with:
email: tools.email
key: tools.key
param: tools.param
bdate: tools.bdate
edate: tools.edate
state: tools.state
cbdate: tools.cbdate
cedate: tools.cedate
outputParameters:
- type: object
mapping: $.
- name: get-quarterly-data-bounding-box
description: Get Quarterly Data by Bounding Box
hints:
readOnly: true
destructive: false
idempotent: true
call: aqs-quarterly-data.quarterlyDataByBox
with:
email: tools.email
key: tools.key
param: tools.param
bdate: tools.bdate
edate: tools.edate
minlat: tools.minlat
maxlat: tools.maxlat
minlon: tools.minlon
maxlon: tools.maxlon
cbdate: tools.cbdate
cedate: tools.cedate
outputParameters:
- type: object
mapping: $.
- name: get-quarterly-data-cbsa
description: Get Quarterly Data by CBSA
hints:
readOnly: true
destructive: false
idempotent: true
call: aqs-quarterly-data.quarterlyDataByCBSA
with:
email: tools.email
key: tools.key
param: tools.param
bdate: tools.bdate
edate: tools.edate
cbsa: tools.cbsa
cbdate: tools.cbdate
cedate: tools.cedate
outputParameters:
- type: object
mapping: $.