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.

Run with Naftiko EPAQuarterly Data

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

aqs-quarterly-data.yaml Raw ↑
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: $.