AQICN JSON Air Quality API — Stations

AQICN JSON Air Quality API — Stations. 5 operations. Lead operation: Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates. Self-contained Naftiko capability covering one Air Quality Programmatic Apis business surface.

Run with Naftiko Air Quality Programmatic ApisStations

What You Can Do

GET
Getaqibygeocoordinates — Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates
/v1/feed/geo-lat-lng
GET
Getaqibyip — Air Quality Programmatic APIs AQICN Get AQI by IP Geolocation
/v1/feed/ip
GET
Getaqibycity — Air Quality Programmatic APIs AQICN Get AQI by City Name
/v1/feed/{city}
GET
Getstationsinbounds — Air Quality Programmatic APIs AQICN Get Stations Within Map Bounds
/v1/map/bounds
GET
Searchstations — Air Quality Programmatic APIs AQICN Search Monitoring Stations
/v1/search

MCP Tools

air-quality-programmatic-apis-aqicn

Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates

read-only idempotent
air-quality-programmatic-apis-aqicn-2

Air Quality Programmatic APIs AQICN Get AQI by IP Geolocation

read-only idempotent
air-quality-programmatic-apis-aqicn-3

Air Quality Programmatic APIs AQICN Get AQI by City Name

read-only idempotent
air-quality-programmatic-apis-aqicn-4

Air Quality Programmatic APIs AQICN Get Stations Within Map Bounds

read-only idempotent
air-quality-programmatic-apis-aqicn-5

Air Quality Programmatic APIs AQICN Search Monitoring Stations

read-only idempotent

Capability Spec

aqicn-json-stations.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: AQICN JSON Air Quality API — Stations
  description: 'AQICN JSON Air Quality API — Stations. 5 operations. Lead operation: Air Quality Programmatic APIs AQICN Get
    AQI by Geographic Coordinates. Self-contained Naftiko capability covering one Air Quality Programmatic Apis business surface.'
  tags:
  - Air Quality Programmatic Apis
  - Stations
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    AIR_QUALITY_PROGRAMMATIC_APIS_API_KEY: AIR_QUALITY_PROGRAMMATIC_APIS_API_KEY
capability:
  consumes:
  - type: http
    namespace: aqicn-json-stations
    baseUri: https://api.waqi.info
    description: AQICN JSON Air Quality API — Stations business capability. Self-contained, no shared references.
    resources:
    - name: feed-geo:{lat};{lng}
      path: /feed/geo:{lat};{lng}/
      operations:
      - name: getaqibygeocoordinates
        method: GET
        description: Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: lat
          in: path
          type: number
          description: Latitude coordinate
          required: true
        - name: lng
          in: path
          type: number
          description: Longitude coordinate
          required: true
        - name: token
          in: query
          type: string
          description: API authentication token
          required: true
    - name: feed-ip
      path: /feed/ip/
      operations:
      - name: getaqibyip
        method: GET
        description: Air Quality Programmatic APIs AQICN Get AQI by IP Geolocation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: token
          in: query
          type: string
          description: API authentication token
          required: true
    - name: feed-city
      path: /feed/{city}/
      operations:
      - name: getaqibycity
        method: GET
        description: Air Quality Programmatic APIs AQICN Get AQI by City Name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: city
          in: path
          type: string
          description: City name or station ID
          required: true
        - name: token
          in: query
          type: string
          description: API authentication token
          required: true
    - name: map-bounds
      path: /map/bounds/
      operations:
      - name: getstationsinbounds
        method: GET
        description: Air Quality Programmatic APIs AQICN Get Stations Within Map Bounds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: latlng
          in: query
          type: string
          description: Bounding box as lat1,lng1,lat2,lng2
          required: true
        - name: networks
          in: query
          type: string
          description: Filter by network (all, china, us, etc.)
        - name: token
          in: query
          type: string
          description: API authentication token
          required: true
    - name: search
      path: /search/
      operations:
      - name: searchstations
        method: GET
        description: Air Quality Programmatic APIs AQICN Search Monitoring Stations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: keyword
          in: query
          type: string
          description: Search keyword (city or station name)
          required: true
        - name: token
          in: query
          type: string
          description: API authentication token
          required: true
    authentication:
      type: apikey
      key: token
      value: '{{env.AIR_QUALITY_PROGRAMMATIC_APIS_API_KEY}}'
      placement: query
  exposes:
  - type: rest
    namespace: aqicn-json-stations-rest
    port: 8080
    description: REST adapter for AQICN JSON Air Quality API — Stations. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/feed/geo-lat-lng
      name: feed-geo-lat-lng
      description: REST surface for feed-geo:{lat};{lng}.
      operations:
      - method: GET
        name: getaqibygeocoordinates
        description: Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates
        call: aqicn-json-stations.getaqibygeocoordinates
        with:
          lat: rest.lat
          lng: rest.lng
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feed/ip
      name: feed-ip
      description: REST surface for feed-ip.
      operations:
      - method: GET
        name: getaqibyip
        description: Air Quality Programmatic APIs AQICN Get AQI by IP Geolocation
        call: aqicn-json-stations.getaqibyip
        with:
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/feed/{city}
      name: feed-city
      description: REST surface for feed-city.
      operations:
      - method: GET
        name: getaqibycity
        description: Air Quality Programmatic APIs AQICN Get AQI by City Name
        call: aqicn-json-stations.getaqibycity
        with:
          city: rest.city
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/map/bounds
      name: map-bounds
      description: REST surface for map-bounds.
      operations:
      - method: GET
        name: getstationsinbounds
        description: Air Quality Programmatic APIs AQICN Get Stations Within Map Bounds
        call: aqicn-json-stations.getstationsinbounds
        with:
          latlng: rest.latlng
          networks: rest.networks
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/search
      name: search
      description: REST surface for search.
      operations:
      - method: GET
        name: searchstations
        description: Air Quality Programmatic APIs AQICN Search Monitoring Stations
        call: aqicn-json-stations.searchstations
        with:
          keyword: rest.keyword
          token: rest.token
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: aqicn-json-stations-mcp
    port: 9090
    transport: http
    description: MCP adapter for AQICN JSON Air Quality API — Stations. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: air-quality-programmatic-apis-aqicn
      description: Air Quality Programmatic APIs AQICN Get AQI by Geographic Coordinates
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: aqicn-json-stations.getaqibygeocoordinates
      with:
        lat: tools.lat
        lng: tools.lng
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.
    - name: air-quality-programmatic-apis-aqicn-2
      description: Air Quality Programmatic APIs AQICN Get AQI by IP Geolocation
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: aqicn-json-stations.getaqibyip
      with:
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.
    - name: air-quality-programmatic-apis-aqicn-3
      description: Air Quality Programmatic APIs AQICN Get AQI by City Name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: aqicn-json-stations.getaqibycity
      with:
        city: tools.city
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.
    - name: air-quality-programmatic-apis-aqicn-4
      description: Air Quality Programmatic APIs AQICN Get Stations Within Map Bounds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: aqicn-json-stations.getstationsinbounds
      with:
        latlng: tools.latlng
        networks: tools.networks
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.
    - name: air-quality-programmatic-apis-aqicn-5
      description: Air Quality Programmatic APIs AQICN Search Monitoring Stations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: aqicn-json-stations.searchstations
      with:
        keyword: tools.keyword
        token: tools.token
      outputParameters:
      - type: object
        mapping: $.