EPA Air Quality System (AQS) API — Quality Assurance

Quality Assurance. 12 operations. Lead operation: QA Annual Performance Evaluations by Site. Self-contained Naftiko capability covering one EPA business surface.

Run with Naftiko EPAQuality Assurance

What You Can Do

GET
Qaannualbysite — QA Annual Performance Evaluations by Site
/v1/qaannualperformanceevaluations/bysite
GET
Qaannualbycounty — QA Annual Performance Evaluations by County
/v1/qaannualperformanceevaluations/bycounty
GET
Qaannualbystate — QA Annual Performance Evaluations by State
/v1/qaannualperformanceevaluations/bystate
GET
Qaannualbypqao — QA Annual Performance Evaluations by PQAO
/v1/qaannualperformanceevaluations/bypqao
GET
Qaannualbyma — QA Annual Performance Evaluations by Monitoring Agency
/v1/qaannualperformanceevaluations/byma
GET
Qablanksbysite — QA Blanks by Site
/v1/qablanks/bysite
GET
Qablanksbystate — QA Blanks by State
/v1/qablanks/bystate
GET
Qacollocatedbysite — QA Collocated Assessments by Site
/v1/qacollocatedassessments/bysite
GET
Qaflowrateverifbysite — QA Flow Rate Verifications by Site
/v1/qaflowrateverifications/bysite
GET
Qaflowrateauditsbysite — QA Flow Rate Audits by Site
/v1/qaflowrateaudits/bysite
GET
Qaonepointbysite — QA One Point QC Raw Data by Site
/v1/qaonepointqcrawdata/bysite
GET
Qapepbysite — QA PEP Audits by Site
/v1/qapepaudits/bysite

MCP Tools

qa-annual-performance-evaluations-site

QA Annual Performance Evaluations by Site

read-only idempotent
qa-annual-performance-evaluations-county

QA Annual Performance Evaluations by County

read-only idempotent
qa-annual-performance-evaluations-state

QA Annual Performance Evaluations by State

read-only idempotent
qa-annual-performance-evaluations-pqao

QA Annual Performance Evaluations by PQAO

read-only idempotent
qa-annual-performance-evaluations-monitoring-agency

QA Annual Performance Evaluations by Monitoring Agency

read-only idempotent
qa-blanks-site

QA Blanks by Site

read-only idempotent
qa-blanks-state

QA Blanks by State

read-only idempotent
qa-collocated-assessments-site

QA Collocated Assessments by Site

read-only idempotent
qa-flow-rate-verifications-site

QA Flow Rate Verifications by Site

read-only idempotent
qa-flow-rate-audits-site

QA Flow Rate Audits by Site

read-only idempotent
qa-one-point-qc-raw-data-site

QA One Point QC Raw Data by Site

read-only idempotent
qa-pep-audits-site

QA PEP Audits by Site

read-only idempotent

Capability Spec

aqs-quality-assurance.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: EPA Air Quality System (AQS) API — Quality Assurance
  description: 'Quality Assurance. 12 operations. Lead operation: QA Annual Performance Evaluations by Site. Self-contained Naftiko capability covering one EPA business surface.'
  tags:
    - EPA
    - Quality Assurance
  created: '2026-05-29'
  modified: '2026-05-29'
binds:
  - namespace: env
    keys:
      EPA_EMAILKEY_KEY: EPA_EMAILKEY_KEY
capability:
  consumes:
    - type: http
      namespace: aqs-quality-assurance
      baseUri: https://aqs.epa.gov/data/api
      description: EPA Air Quality System (AQS) API — Quality Assurance business capability. Self-contained, no shared references.
      authentication:
        type: apikey
        key: key
        value: '{{env.EPA_EMAILKEY_KEY}}'
        placement: query
      resources:
        - name: qaannualperformanceevaluations-bysite
          path: /qaAnnualPerformanceEvaluations/bySite
          operations:
            - name: qaAnnualBySite
              method: GET
              description: QA Annual Performance Evaluations 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaannualperformanceevaluations-bycounty
          path: /qaAnnualPerformanceEvaluations/byCounty
          operations:
            - name: qaAnnualByCounty
              method: GET
              description: QA Annual Performance Evaluations 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaannualperformanceevaluations-bystate
          path: /qaAnnualPerformanceEvaluations/byState
          operations:
            - name: qaAnnualByState
              method: GET
              description: QA Annual Performance Evaluations 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaannualperformanceevaluations-bypqao
          path: /qaAnnualPerformanceEvaluations/byPQAO
          operations:
            - name: qaAnnualByPQAO
              method: GET
              description: QA Annual Performance Evaluations by PQAO
              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: pqao
                  in: query
                  type: string
                  required: true
                  description: Primary Quality Assurance Organization code.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaannualperformanceevaluations-byma
          path: /qaAnnualPerformanceEvaluations/byMA
          operations:
            - name: qaAnnualByMA
              method: GET
              description: QA Annual Performance Evaluations by Monitoring Agency
              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: ma
                  in: query
                  type: string
                  required: true
                  description: Monitoring Agency code.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qablanks-bysite
          path: /qaBlanks/bySite
          operations:
            - name: qaBlanksBySite
              method: GET
              description: QA Blanks 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qablanks-bystate
          path: /qaBlanks/byState
          operations:
            - name: qaBlanksByState
              method: GET
              description: QA Blanks 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qacollocatedassessments-bysite
          path: /qaCollocatedAssessments/bySite
          operations:
            - name: qaCollocatedBySite
              method: GET
              description: QA Collocated Assessments 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaflowrateverifications-bysite
          path: /qaFlowRateVerifications/bySite
          operations:
            - name: qaFlowRateVerifBySite
              method: GET
              description: QA Flow Rate Verifications 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaflowrateaudits-bysite
          path: /qaFlowRateAudits/bySite
          operations:
            - name: qaFlowRateAuditsBySite
              method: GET
              description: QA Flow Rate Audits 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qaonepointqcrawdata-bysite
          path: /qaOnePointQcRawData/bySite
          operations:
            - name: qaOnePointBySite
              method: GET
              description: QA One Point QC Raw 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
        - name: qapepaudits-bysite
          path: /qaPepAudits/bySite
          operations:
            - name: qaPepBySite
              method: GET
              description: QA PEP Audits 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.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
  exposes:
    - type: rest
      namespace: aqs-quality-assurance-rest
      port: 8080
      description: REST adapter for EPA Air Quality System (AQS) API — Quality Assurance. One Spectral-compliant resource per consumed operation, prefixed with /v1.
      resources:
        - path: /v1/qaannualperformanceevaluations/bysite
          name: qaannualperformanceevaluations-bysite
          description: REST surface for QA Annual Performance Evaluations by Site.
          operations:
            - method: GET
              name: qaAnnualBySite
              description: QA Annual Performance Evaluations by Site
              call: aqs-quality-assurance.qaAnnualBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaannualperformanceevaluations/bycounty
          name: qaannualperformanceevaluations-bycounty
          description: REST surface for QA Annual Performance Evaluations by County.
          operations:
            - method: GET
              name: qaAnnualByCounty
              description: QA Annual Performance Evaluations by County
              call: aqs-quality-assurance.qaAnnualByCounty
              with:
                email: rest.email
                key: rest.key
                param: rest.param
                bdate: rest.bdate
                edate: rest.edate
                state: rest.state
                county: rest.county
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaannualperformanceevaluations/bystate
          name: qaannualperformanceevaluations-bystate
          description: REST surface for QA Annual Performance Evaluations by State.
          operations:
            - method: GET
              name: qaAnnualByState
              description: QA Annual Performance Evaluations by State
              call: aqs-quality-assurance.qaAnnualByState
              with:
                email: rest.email
                key: rest.key
                param: rest.param
                bdate: rest.bdate
                edate: rest.edate
                state: rest.state
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaannualperformanceevaluations/bypqao
          name: qaannualperformanceevaluations-bypqao
          description: REST surface for QA Annual Performance Evaluations by PQAO.
          operations:
            - method: GET
              name: qaAnnualByPQAO
              description: QA Annual Performance Evaluations by PQAO
              call: aqs-quality-assurance.qaAnnualByPQAO
              with:
                email: rest.email
                key: rest.key
                param: rest.param
                bdate: rest.bdate
                edate: rest.edate
                pqao: rest.pqao
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaannualperformanceevaluations/byma
          name: qaannualperformanceevaluations-byma
          description: REST surface for QA Annual Performance Evaluations by Monitoring Agency.
          operations:
            - method: GET
              name: qaAnnualByMA
              description: QA Annual Performance Evaluations by Monitoring Agency
              call: aqs-quality-assurance.qaAnnualByMA
              with:
                email: rest.email
                key: rest.key
                param: rest.param
                bdate: rest.bdate
                edate: rest.edate
                ma: rest.ma
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qablanks/bysite
          name: qablanks-bysite
          description: REST surface for QA Blanks by Site.
          operations:
            - method: GET
              name: qaBlanksBySite
              description: QA Blanks by Site
              call: aqs-quality-assurance.qaBlanksBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qablanks/bystate
          name: qablanks-bystate
          description: REST surface for QA Blanks by State.
          operations:
            - method: GET
              name: qaBlanksByState
              description: QA Blanks by State
              call: aqs-quality-assurance.qaBlanksByState
              with:
                email: rest.email
                key: rest.key
                param: rest.param
                bdate: rest.bdate
                edate: rest.edate
                state: rest.state
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qacollocatedassessments/bysite
          name: qacollocatedassessments-bysite
          description: REST surface for QA Collocated Assessments by Site.
          operations:
            - method: GET
              name: qaCollocatedBySite
              description: QA Collocated Assessments by Site
              call: aqs-quality-assurance.qaCollocatedBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaflowrateverifications/bysite
          name: qaflowrateverifications-bysite
          description: REST surface for QA Flow Rate Verifications by Site.
          operations:
            - method: GET
              name: qaFlowRateVerifBySite
              description: QA Flow Rate Verifications by Site
              call: aqs-quality-assurance.qaFlowRateVerifBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaflowrateaudits/bysite
          name: qaflowrateaudits-bysite
          description: REST surface for QA Flow Rate Audits by Site.
          operations:
            - method: GET
              name: qaFlowRateAuditsBySite
              description: QA Flow Rate Audits by Site
              call: aqs-quality-assurance.qaFlowRateAuditsBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qaonepointqcrawdata/bysite
          name: qaonepointqcrawdata-bysite
          description: REST surface for QA One Point QC Raw Data by Site.
          operations:
            - method: GET
              name: qaOnePointBySite
              description: QA One Point QC Raw Data by Site
              call: aqs-quality-assurance.qaOnePointBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
        - path: /v1/qapepaudits/bysite
          name: qapepaudits-bysite
          description: REST surface for QA PEP Audits by Site.
          operations:
            - method: GET
              name: qaPepBySite
              description: QA PEP Audits by Site
              call: aqs-quality-assurance.qaPepBySite
              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
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: aqs-quality-assurance-mcp
      port: 9090
      transport: http
      description: MCP adapter for EPA Air Quality System (AQS) API — Quality Assurance. One tool per consumed operation, routed inline through this capability's consumes block.
      tools:
        - name: qa-annual-performance-evaluations-site
          description: QA Annual Performance Evaluations by Site
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: aqs-quality-assurance.qaAnnualBySite
          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
          outputParameters:
            - type: object
              mapping: $.
        - name: qa-annual-performance-evaluations-county
          description: QA Annual Performance Evaluations by County
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: aqs-quality-assurance.qaAnnualByCounty
          with:
            email: tools.email
            key: tools.key
            param: tools.par

# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/epa/refs/heads/main/capabilities/aqs-quality-assurance.yaml