World Air Quality Index (WAQI) Map API

Map tile and station boundary queries

Operations 1

GET /map/bounds/ Get monitoring stations within geographic bounds #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/waqi-map-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

waqi-map-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: World Air Quality Index (WAQI) JSON Feed Map API
  description: The WAQI JSON API provides real-time air quality data, AQI readings, pollutant measurements, and station data for more than 12,000 monitoring stations worldwide. It delivers city-level and station-level air quality index values for pollutants including PM2.5, PM10, NO2, CO, SO2, and Ozone, along with geo-location queries, weather conditions, and 3-8 day forecast data. Authentication requires a free token obtained from the Air Quality Open Data Platform.
  version: 1.0.0
  contact:
    name: WAQI Support
    url: https://aqicn.org/api/
  license:
    name: Non-Commercial Use
    url: https://aqicn.org/api/
  termsOfService: https://aqicn.org/api/
servers:
- url: https://api.waqi.info
  description: WAQI Production API
security:
- tokenAuth: []
tags:
- name: Map
  description: Map tile and station boundary queries
paths:
  /map/bounds/:
    get:
      operationId: getMapBounds
      summary: Get monitoring stations within geographic bounds
      description: Returns all monitoring stations within a specified rectangular geographic bounding box, suitable for map display. Supports filtering by network (network parameter).
      tags:
      - Map
      parameters:
      - name: latlng
        in: query
        required: true
        description: 'Bounding box as a comma-separated string in the format: lat_north,lng_west,lat_south,lng_east.'
        schema:
          type: string
          pattern: ^-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?,-?\d+(\.\d+)?$
          example: 40.712,-74.006,34.052,-118.243
      - name: token
        in: query
        required: true
        description: API authentication token.
        schema:
          type: string
          example: demo
      - name: networks
        in: query
        required: false
        description: Filter results by monitoring network (e.g., 'all' for all networks).
        schema:
          type: string
          example: all
      responses:
        '200':
          description: Successful response with list of monitoring stations within the bounding box
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MapBoundsResponse'
              example:
                status: ok
                data:
                - lat: 40.6943
                  lon: -73.9249
                  uid: 7536
                  aqi: '45'
                  station:
                    name: Brooklyn, New York, USA
                    time: '2024-01-15T12:00:00-05:00'
        '400':
          description: Invalid bounding box parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Invalid or missing API token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    MapStation:
      type: object
      description: A monitoring station returned in map bounds queries
      properties:
        lat:
          type: number
          format: float
          description: Station latitude
          example: 40.6943
        lon:
          type: number
          format: float
          description: Station longitude
          example: -73.9249
        uid:
          type: integer
          description: Unique station identifier
          example: 7536
        aqi:
          type: string
          description: Current AQI value (may be '-' if unavailable)
          example: '45'
        station:
          type: object
          properties:
            name:
              type: string
              description: Station display name
              example: Brooklyn, New York, USA
            time:
              type: string
              format: date-time
              description: Timestamp of the last reading
              example: '2024-01-15T12:00:00-05:00'
      required:
      - lat
      - lon
      - uid
      - aqi
    ErrorResponse:
      type: object
      description: Error response returned when a request fails
      properties:
        status:
          type: string
          enum:
          - error
          description: Always 'error' for error responses
        data:
          type: string
          description: Human-readable error message
          example: Unknown city or station
      required:
      - status
      - data
    MapBoundsResponse:
      type: object
      description: Response from the map bounds endpoint
      properties:
        status:
          type: string
          enum:
          - ok
          - error
          description: Response status indicator
        data:
          type: array
          description: List of monitoring stations within the bounding box
          items:
            $ref: '#/components/schemas/MapStation'
      required:
      - status
      - data
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: query
      name: token
      description: API token obtained from the Air Quality Open Data Platform at https://aqicn.org/data-platform/token/
externalDocs:
  description: WAQI JSON API Documentation
  url: https://aqicn.org/json-api/doc/