# AirNow API: Get air quality

> Gets AirNow current air quality, pollutant readings and today's and tomorrow's forecasts for a US city or ZIP code, or a covered Canadian or Mexican city.

Unofficial. Not affiliated with or endorsed by AirNow.

- Page: https://fous.com/methods/airnow.gov/get-air-quality
- Method: `airnow.gov/get_air_quality`, version 1
- Website: airnow.gov
- Returns: current AQI and category, pollutant readings, today and tomorrow forecasts, health advice, AirNow link
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `location` | string | yes | `"Denver, CO"` | City and state, a five-digit US ZIP code, or a covered Canadian or Mexican city, for example Denver, CO or 94103. |

## Output

From a run on Oct 23, 2026. Its input:

```json
{
  "location": "Denver, CO"
}
```

Its output:

```json
{
  "aqi": 47,
  "category": "Good",
  "airnow_url": "https://www.airnow.gov/?reportingArea=Denver-Boulder&stateCode=CO",
  "pollutants": [
    {
      "aqi": 16,
      "category": "Good",
      "pollutant": "Ozone"
    },
    {
      "aqi": 4,
      "category": "Good",
      "pollutant": "PM2.5"
    },
    {
      "aqi": 47,
      "category": "Good",
      "pollutant": "PM10"
    }
  ],
  "health_advice": "Air quality is good. Enjoy outdoor activities.",
  "main_pollutant": "PM10",
  "reporting_area": "Denver-Boulder, CO",
  "observation_time": "2026-10-23T03:00:00-06:00",
  "today_forecast_aqi": null,
  "forecast_discussion": null,
  "today_forecast_date": "2026-10-23",
  "tomorrow_forecast_aqi": null,
  "tomorrow_forecast_date": "2026-10-24",
  "today_forecast_category": "Good",
  "tomorrow_forecast_category": null
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"airnow.gov/get_air_quality","input":{"location":"Denver, CO"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- What's the air quality like in Denver, CO right now?
- Can you check the current AQI for ZIP code 94103 and tell me the main pollutant?
- I'm planning a run tomorrow in Austin, TX. Is the air forecast going to be safe for outdoor exercise?
- Give me today's and tomorrow's air quality forecast for 10001 and any health advice for people with asthma.
- Look up the current air quality category and pollutant readings for Guadalajara, Mexico on airnow.gov.

## Input schema

```json
{
  "type": "object",
  "required": [
    "location"
  ],
  "properties": {
    "location": {
      "type": "string",
      "description": "City and state, a five-digit US ZIP code, or a covered Canadian or Mexican city, for example Denver, CO or 94103."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "reporting_area",
    "observation_time",
    "aqi",
    "category",
    "main_pollutant",
    "pollutants",
    "today_forecast_date",
    "today_forecast_aqi",
    "today_forecast_category",
    "tomorrow_forecast_date",
    "tomorrow_forecast_aqi",
    "tomorrow_forecast_category",
    "forecast_discussion",
    "health_advice",
    "airnow_url"
  ],
  "properties": {
    "aqi": {
      "type": [
        "integer",
        "null"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "airnow_url": {
      "type": "string"
    },
    "pollutants": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "pollutant",
          "aqi",
          "category"
        ],
        "properties": {
          "aqi": {
            "type": [
              "integer",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "pollutant": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "health_advice": {
      "type": [
        "string",
        "null"
      ]
    },
    "main_pollutant": {
      "type": [
        "string",
        "null"
      ]
    },
    "reporting_area": {
      "type": "string"
    },
    "observation_time": {
      "type": [
        "string",
        "null"
      ]
    },
    "today_forecast_aqi": {
      "type": [
        "integer",
        "null"
      ]
    },
    "forecast_discussion": {
      "type": [
        "string",
        "null"
      ]
    },
    "today_forecast_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "tomorrow_forecast_aqi": {
      "type": [
        "integer",
        "null"
      ]
    },
    "tomorrow_forecast_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "today_forecast_category": {
      "type": [
        "string",
        "null"
      ]
    },
    "tomorrow_forecast_category": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
```

## See more

- [IQAir API: Get air quality](https://fous.com/methods/iqair.com/get-air-quality.md): Gets a city's current air quality, weather, daily forecast and health advice from IQAir.
- [AccuWeather API: Get current weather](https://fous.com/methods/accuweather.com/get-current-weather.md): Gets current conditions and RealFeel for a city or postal code on AccuWeather. The UV level follows standard UV-index ranges. Air quality is null unless it is shown with the current conditions.
- [NWS API: Get current conditions](https://fous.com/methods/weather.gov/get-current-conditions.md): Gets the latest observed weather from a nearby National Weather Service station for a US city, address, or ZIP code. Measurements the station does not report are null.
- [MSN API: Get current weather](https://fous.com/methods/msn.com/get-current-weather.md): Gets current MSN Weather conditions for a city, address or ZIP code. The place is found through OpenStreetMap Nominatim. Matches for broad searches are approximate.
- [The Weather Channel API: Get current weather](https://fous.com/methods/weather.com/get-current-weather.md): Gets current conditions and today's high and low from The Weather Channel for a city, postcode, ZIP code or street address worldwide. Street addresses are geocoded exactly first; some observations omit gusts or other measurements.
- [Pollen.com API: Get pollen forecast](https://fous.com/methods/pollen.com/get-pollen-forecast.md): Returns up to five days of pollen index and level for a US ZIP code, with top allergens for today and tomorrow where Pollen.com lists them.
- [NWS API: Get hourly forecast](https://fous.com/methods/weather.gov/get-hourly-forecast.md): Looks up a US city, street address or ZIP code and returns up to 156 hourly National Weather Service forecasts for it.
- [NOAA API: Get aurora forecast](https://fous.com/methods/swpc.noaa.gov/get-aurora-forecast.md): Gets the 30-minute chance of aurora overhead near a place, current geomagnetic activity, and the three-day Kp outlook. Visibility also depends on darkness and local conditions; tonight uses approximate local solar hours 18:00-06:00.
