Aviation Weather Center API
Read-only live METAR observations from AviationWeather.gov by one or more ICAO station identifiers. The API provides latest observations and recent source history with raw reports, structured weather fields, explicit units and UTC timestamp meanings; valid stations without reports, invalid station identifiers, and upstream failures are distinguished.
Endpoint health
Loading verification…
Connect your agent
Connect through MCP so your agent can find this API, read its docs, and call its endpoints.
Add the server from your terminal.
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcpIn Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.
Then ask your agent to use the Aviation Weather Center API for your task.
Call it over HTTP
Get an API keySign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.
curl --request GET --get 'https://api.agent-data.dev/aviationweather-gov/v1/metars/latest' \
--header "Authorization: Bearer $AGENT_DATA_API_KEY" \
--data-urlencode 'ids=KJFK'Endpoints
Inputs and response fields for every endpoint in this API.
GETMetars latest/v1/metars/latest
Fetches the current/latest METAR observation for each valid requested station. A valid station with no current report appears in missing_observations; an identifier absent from source station metadata appears in invalid_stations.
Input
idsRequiredQuery · stringComma-separated ICAO station identifiers, one to 20 values.
Example: KJFK
Response
dataobject[]data[].windobjectdata[].wind.gust_knots?integer | nulldata[].wind.speed_knots?integer | nulldata[].wind.direction_degrees?integer | nulldata[].clouds?object[]data[].clouds[].coverstringdata[].clouds[].base_feet?integer | nulldata[].stationobjectdata[].station.namestringdata[].station.state?string | nulldata[].station.country?string | nulldata[].station.iata_id?string | nulldata[].station.icao_idstringdata[].station.elevation_m?number | nulldata[].station.latitude_deg?number | nulldata[].station.longitude_deg?number | nulldata[].raw_metarstringdata[].metar_typestringdata[].visibility?string | nulldata[].dew_point_c?number | nulldata[].report_time?string (date-time) | nulldata[].altimeter_hpa?number | nulldata[].received_time?string (date-time) | nulldata[].temperature_c?number | nulldata[].flight_category?string | nulldata[].observation_timestring (date-time)data[].sea_level_pressure_hpa?number | nulldata[].observation_epoch_secondsintegerhoursinteger | nullsourceobjectsource.namestringsource.endpointstringsource.freshnessstringsource.retrieved_atstring (date-time)requested_idsstring[]invalid_stationsstring[]missing_observationsstring[]units_and_timestampsobjectunits_and_timestamps.windstringunits_and_timestamps.cloudsstringunits_and_timestamps.pressurestringunits_and_timestamps.elevationstringunits_and_timestamps.timestampsstringunits_and_timestamps.visibilitystringunits_and_timestamps.temperaturestringFields marked ? are optional.
GETMetars history/v1/metars/history
Fetches all source METAR reports available within the requested 1–24 hour window. The source controls the actual available history; this API does not fabricate gaps or paginate beyond that source window.
Input
idsRequiredQuery · stringComma-separated ICAO station identifiers, one to 20 values.
Example: KJFK
hoursOptionalQuery · integer, min: 1, max: 24, default: 6Recent history window in hours, bounded to 1 through 24.
Example: 6
Response
dataobject[]data[].windobjectdata[].wind.gust_knots?integer | nulldata[].wind.speed_knots?integer | nulldata[].wind.direction_degrees?integer | nulldata[].clouds?object[]data[].clouds[].coverstringdata[].clouds[].base_feet?integer | nulldata[].stationobjectdata[].station.namestringdata[].station.state?string | nulldata[].station.country?string | nulldata[].station.iata_id?string | nulldata[].station.icao_idstringdata[].station.elevation_m?number | nulldata[].station.latitude_deg?number | nulldata[].station.longitude_deg?number | nulldata[].raw_metarstringdata[].metar_typestringdata[].visibility?string | nulldata[].dew_point_c?number | nulldata[].report_time?string (date-time) | nulldata[].altimeter_hpa?number | nulldata[].received_time?string (date-time) | nulldata[].temperature_c?number | nulldata[].flight_category?string | nulldata[].observation_timestring (date-time)data[].sea_level_pressure_hpa?number | nulldata[].observation_epoch_secondsintegerhoursinteger | nullsourceobjectsource.namestringsource.endpointstringsource.freshnessstringsource.retrieved_atstring (date-time)requested_idsstring[]invalid_stationsstring[]missing_observationsstring[]units_and_timestampsobjectunits_and_timestamps.windstringunits_and_timestamps.cloudsstringunits_and_timestamps.pressurestringunits_and_timestamps.elevationstringunits_and_timestamps.timestampsstringunits_and_timestamps.visibilitystringunits_and_timestamps.temperaturestringFields marked ? are optional.
Don’t see the endpoint you need?
Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.
An account is required to submit an extension. Prepare your request, then sign in to build.