Real-time weather, webcam images, and 24-hour history for all airports - programmatically.
Use this HTTP(S) base URL and /v1 prefix for Public API v1 requests to this deployment.
https://api.aviationwx.org/v1
Example: https://api.aviationwx.org/v1/airports/kspb/weather. Override the documented base with config.public_api.canonical_base_url in airports.json when your deploymentβs public origin differs.
Get current weather for an airport:
curl https://api.aviationwx.org/v1/airports/kspb/weather
List AviationWX-operated weathercams (absolute image URLs):
curl https://api.aviationwx.org/v1/weathercam/bulk?operator=aviationwx
The API supports two access tiers:
No API key required
Requires API key
To use an API key, include it in the X-API-Key header:
curl -H "X-API-Key: your_api_key" https://api.aviationwx.org/v1/airports
List all available airports with basic metadata. Optional operator includes an airport when it has one or more weathercams or weather sources with that operator, including weather-source type defaults when operator is omitted (for example metar is faa). Optional has_webcams=true keeps airports that have weathercams configured (not sliced by operator). Optional has_weather=true keeps airports with weather sources configured (not sliced by operator). When operator is set, webcam_count still counts matching weathercams only.
Get detailed metadata for a single airport including runways, frequencies, and services.
Get the fused current weather observation. Not filtered by operator.
Get 24-hour rolling weather history. Supports hours, resolution parameters. Each observation includes density_altitude and pressure_altitude as integers when available, otherwise null.
List weathercams for an airport. Optional operator returns only weathercams whose operator equals that slug.
Get the current webcam image. Native original has no fmt (type is read from the file). fmt is for generated size variants (jpg, webp).
Get historical webcam frames. Use ts for a specific frame. Omit fmt for the native original; fmt is for generated size variants.
Get weather for multiple airports in a single request (max 10 airports).
One-query weathercam catalog. Optional operator matches weathercams only (not weather sources). Maintenance sites are excluded by default; maintenance=true includes them. Nested webcam objects include absolute image_url / images URLs. Origin rebuilds when airports.json changes.
Get API health and status information.
Get a scheduler-built production operations snapshot (aggregated health caches and scrubbed log summaries).
All endpoints return JSON responses with consistent structure:
{
"success": true,
"meta": {
"api_version": "1",
"request_time": "2024-12-24T10:00:00Z",
"attribution": "Weather data from AviationWX.org"
},
"weather": { ... }
}
{
"success": false,
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Try again in 45 seconds.",
"retry_after": 45
}
}
Every response includes rate limit information:
| Header | Description |
|---|---|
X-RateLimit-Limit |
Requests allowed per minute |
X-RateLimit-Remaining |
Requests remaining in current window |
X-RateLimit-Reset |
Unix timestamp when window resets |
| Field | Unit |
|---|---|
| Temperature | Celsius (with Fahrenheit also provided) |
| Wind Speed | Knots |
| Pressure | Inches of Mercury (inHg) |
| Visibility | Statute Miles |
| Ceiling | Feet AGL |
| Elevation | Feet MSL |
Weather data from AviationWX.org