Skip to content

# Air Quality API

GET/v1/sensordata/air/near

Air quality monitors within radius_km of a point with their latest readings (PM2.5, PM10, O3, NO2, SO2, CO as integers in the stated scale) and the US EPA AQI of the worst pollutant, nearest first. Refreshes every 60 minutes.

Price

$0.01/ call

Edge cache

1800s

Uptime 24h

100.00%

p95

212ms

MCP tool

sensordata_air-near

The Air Quality API provides air quality monitors within a specified radius of a point with their latest readings. The API returns data on PM2.5, PM10, O3, NO2, SO2, CO, and the US EPA AQI of the worst pollutant. The data is refreshed every 60 minutes. The API is available for $0.010 per request.

Parameters

NameInTypeDescription
lat* query number
lon* query number
radius_km query number = 25
limit query integer = 20

Code

curl
# 1. No key, no payment: the gateway answers 402 with the price
curl -i "https://api.realtimeapi.ai/v1/sensordata/air/near?lat=-33.87&lon=151.21"

# 2. Pay: retry with a signed x402 payment (any x402 client builds this header)
curl "https://api.realtimeapi.ai/v1/sensordata/air/near?lat=-33.87&lon=151.21" -H "PAYMENT-SIGNATURE: $X402_PAYMENT"
TypeScript · @x402/fetch
// npm i @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = x402Client.fromConfig({ schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(PRIVATE_KEY)) }] });
const pay = wrapFetchWithPayment(fetch, client);
const data = await (await pay("https://api.realtimeapi.ai/v1/sensordata/air/near?lat=-33.87&lon=151.21")).json();
console.log(data);
Python · x402
# pip install "x402[requests,evm]==2.27.0" eth-account
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact import register_exact_evm_client

client = x402ClientSync()
register_exact_evm_client(client, EthAccountSigner(Account.from_key(PRIVATE_KEY)))
session = x402_requests(client)
print(session.get("https://api.realtimeapi.ai/v1/sensordata/air/near?lat=-33.87&lon=151.21").json())
With an API key
curl "https://api.realtimeapi.ai/v1/sensordata/air/near?lat=-33.87&lon=151.21" -H "X-API-Key: $RTAPI_KEY"

Frequently asked questions

What parameters are required?

lat, lon, radius_km, limit

What data is returned?

Latest air quality readings and US EPA AQI

How often is the data refreshed?

Every 60 minutes

Get a free key

1,000 calls a month across every feed. Who is setting it up?

No key needed at all: agents can pay per call in USDC with x402.