METARs & TAFs
Current surface weather observations (METARs) and terminal aerodrome forecasts (TAFs) for airports.
Endpoints
METARs
Current surface weather observations for airports.
GET
/api/v1/metars/{icaoCodeOrIdent}Student PilotGet Metar For Airport
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| icaoCodeOrIdent* | path | string | ICAO code or FAA identifier (e.g., KDFW, DFW) |
Responses
200Returns the METAR observationMetarDto
idintegerDatabase identifier.
rawTextstringnullableRaw METAR text string as received from the source.
stationIdstringnullableICAO station identifier (e.g., KDFW).
observationTimestringnullableObservation time in ISO 8601 format.
latitudenumbernullableStation latitude in decimal degrees.
longitudenumbernullableStation longitude in decimal degrees.
tempCnumbernullableTemperature in degrees Celsius.
dewpointCnumbernullableDewpoint temperature in degrees Celsius.
windDirDegreesstringnullableWind direction in degrees true, or "VRB" for variable.
windSpeedKtintegernullableWind speed in knots.
windGustKtintegernullableWind gust speed in knots.
visibilityStatuteMistringnullableVisibility in statute miles.
altimInHgnumbernullableAltimeter setting in inches of mercury.
seaLevelPressureMbnumbernullableSea level pressure in millibars.
qualityControlFlagsMetarQualityControlFlagsDtoQuality control flags indicating METAR observation characteristics.
correctedstringnullableIndicates a corrected observation.
autostringnullableIndicates an automated observation.
autoStationstringnullableIndicates an automated station type.
maintenanceIndicatorOnstringnullableMaintenance indicator is on.
noSignalstringnullableNo signal received.
lightningSensorOffstringnullableLightning sensor is off.
freezingRainSensorOffstringnullableFreezing rain sensor is off.
presentWeatherSensorOffstringnullablePresent weather sensor is off.
wxStringstringnullablePresent weather string (e.g., "-RA" for light rain).
skyConditionMetarSkyConditionDto[]nullableSky condition layers (cloud cover and bases).
skyCoverstringSky cover type: SKC, CLR, FEW, SCT, BKN, or OVC.
cloudBaseFtAglintegernullableCloud base height in feet AGL.
flightCategorystringnullableFlight category: VFR, MVFR, IFR, or LIFR.
404If no METAR is found for the airportApiErrorResponse
codestringMachine-readable error code (e.g., "AIRCRAFT_NOT_FOUND").
messagestringHuman-readable error message suitable for display.
detailsstringnullableAdditional error details (only included in development environment).
validationErrorsRecord<string, string[]>nullableField-level validation errors (only for validation failures).
timestampstringUTC timestamp when the error occurred.
traceIdstringnullableCorrelation ID for tracing the request.
pathstringnullableRequest path that generated the error.
Code Examples
curl \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://preflightapi-apim-service.azure-api.net/api/v1/metars/KJFK"GET
/api/v1/metars/state/{stateCode}Student PilotGet Metars By State
Returns paginated results of MetarDto
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| stateCode* | path | string | Two-letter state code (e.g., TX, CA) |
| cursor | query | string? | Cursor from a previous response to fetch the next page. |
| limit | query | integer | Maximum number of items to return (default 100, max 500). |
Responses
200Returns the paginated METARsPaginatedResponseOfMetarDto
dataMetarDto[]The page of results.
idintegerDatabase identifier.
rawTextstringnullableRaw METAR text string as received from the source.
stationIdstringnullableICAO station identifier (e.g., KDFW).
observationTimestringnullableObservation time in ISO 8601 format.
latitudenumbernullableStation latitude in decimal degrees.
longitudenumbernullableStation longitude in decimal degrees.
tempCnumbernullableTemperature in degrees Celsius.
dewpointCnumbernullableDewpoint temperature in degrees Celsius.
windDirDegreesstringnullableWind direction in degrees true, or "VRB" for variable.
windSpeedKtintegernullableWind speed in knots.
windGustKtintegernullableWind gust speed in knots.
visibilityStatuteMistringnullableVisibility in statute miles.
altimInHgnumbernullableAltimeter setting in inches of mercury.
seaLevelPressureMbnumbernullableSea level pressure in millibars.
qualityControlFlagsMetarQualityControlFlagsDtoQuality control flags indicating METAR observation characteristics.
wxStringstringnullablePresent weather string (e.g., "-RA" for light rain).
skyConditionMetarSkyConditionDto[]nullableSky condition layers (cloud cover and bases).
flightCategorystringnullableFlight category: VFR, MVFR, IFR, or LIFR.
paginationPaginationMetadataMetadata for cursor-based pagination.
nextCursorstringnullableCursor value to pass for the next page of results (null if no more pages).
hasMorebooleanWhether more results are available beyond this page.
limitintegerMaximum number of items per page.
Code Examples
curl \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://preflightapi-apim-service.azure-api.net/api/v1/metars/state/NY?limit=25"GET
/api/v1/metars/states/{stateCodes}Student PilotGet Metars By States
Returns paginated results of MetarDto
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| stateCodes* | path | string | Comma-separated state codes (e.g., TX,OK,LA) |
| cursor | query | string? | Cursor from a previous response to fetch the next page. |
| limit | query | integer | Maximum number of items to return (default 100, max 500). |
Responses
200Returns the paginated METARsPaginatedResponseOfMetarDto
dataMetarDto[]The page of results.
idintegerDatabase identifier.
rawTextstringnullableRaw METAR text string as received from the source.
stationIdstringnullableICAO station identifier (e.g., KDFW).
observationTimestringnullableObservation time in ISO 8601 format.
latitudenumbernullableStation latitude in decimal degrees.
longitudenumbernullableStation longitude in decimal degrees.
tempCnumbernullableTemperature in degrees Celsius.
dewpointCnumbernullableDewpoint temperature in degrees Celsius.
windDirDegreesstringnullableWind direction in degrees true, or "VRB" for variable.
windSpeedKtintegernullableWind speed in knots.
windGustKtintegernullableWind gust speed in knots.
visibilityStatuteMistringnullableVisibility in statute miles.
altimInHgnumbernullableAltimeter setting in inches of mercury.
seaLevelPressureMbnumbernullableSea level pressure in millibars.
qualityControlFlagsMetarQualityControlFlagsDtoQuality control flags indicating METAR observation characteristics.
wxStringstringnullablePresent weather string (e.g., "-RA" for light rain).
skyConditionMetarSkyConditionDto[]nullableSky condition layers (cloud cover and bases).
flightCategorystringnullableFlight category: VFR, MVFR, IFR, or LIFR.
paginationPaginationMetadataMetadata for cursor-based pagination.
nextCursorstringnullableCursor value to pass for the next page of results (null if no more pages).
hasMorebooleanWhether more results are available beyond this page.
limitintegerMaximum number of items per page.
Code Examples
curl \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://preflightapi-apim-service.azure-api.net/api/v1/metars/states/NY,CA,TX?limit=25"TAFs
Terminal aerodrome forecasts for airports.
GET
/api/v1/tafs/{icaoCodeOrIdent}Student PilotGet Taf By Icao Code Or Ident
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| icaoCodeOrIdent* | path | string | ICAO code or airport identifier |
Responses
200Returns the TAF informationTafDto
rawTextstringnullableRaw TAF text string as received from the source.
stationIdstringnullableICAO station identifier (e.g., KDFW).
issueTimestringnullableTime the TAF was issued in ISO 8601 format.
bulletinTimestringnullableBulletin time in ISO 8601 format.
validTimeFromstringnullableStart of the TAF valid period in ISO 8601 format.
validTimeTostringnullableEnd of the TAF valid period in ISO 8601 format.
remarksstringnullableTAF remarks.
latitudenumbernullableStation latitude in decimal degrees.
longitudenumbernullableStation longitude in decimal degrees.
elevationMnumbernullableStation elevation in meters.
forecastTafForecast[]nullableForecast periods within the TAF.
fcstTimeFromstringnullable
fcstTimeTostringnullable
changeIndicatorstringnullable
timeBecomingstringnullable
probabilityintegernullable
windDirDegreesstringnullable
windSpeedKtintegernullable
windGustKtintegernullable
windShearHgtFtAglintegernullable
windShearDirDegreesintegernullable
windShearSpeedKtintegernullable
visibilityStatuteMistringnullable
altimInHgnumbernullable
vertVisFtintegernullable
wxStringstringnullable
notDecodedstringnullable
skyConditionsTafSkyCondition[]nullable
turbulenceConditionsTafTurbulenceCondition[]nullable
icingConditionsTafIcingCondition[]nullable
temperatureTafTemperature[]nullable
404If the TAF or airport is not foundApiErrorResponse
codestringMachine-readable error code (e.g., "AIRCRAFT_NOT_FOUND").
messagestringHuman-readable error message suitable for display.
detailsstringnullableAdditional error details (only included in development environment).
validationErrorsRecord<string, string[]>nullableField-level validation errors (only for validation failures).
timestampstringUTC timestamp when the error occurred.
traceIdstringnullableCorrelation ID for tracing the request.
pathstringnullableRequest path that generated the error.
Code Examples
curl \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
"https://preflightapi-apim-service.azure-api.net/api/v1/tafs/KJFK"