Weather API

Overview

The Weather API provides real-time aviation weather data including METAR, TAF, and D-ATIS information from multiple sources. Weather data is essential for accurate performance calculations and flight planning.

Data Sources

Weather data is fetched from multiple authoritative sources including Aviation Weather Center (aviationweather.gov), Avinor Norway (api.met.no), and NOAA. The API automatically falls back to alternate sources if the primary source is unavailable.

Developer Key Access

Access to the Weather API is controlled by your developer key configuration. Weather access must be explicitly enabled on your key. Contact support if you need weather data access added to your integration.

Get Weather

POST /api

Retrieves current METAR, TAF, and D-ATIS data for a specified airport. Also includes decoded weather information and VPT-specific runway wind component analysis.

Request Parameters

Parameter Type Required Description
query string Required Must be "weather"
data.icao string Required Airport ICAO code (e.g., "EBBR", "KJFK")

Request Body

JSON
{
  "query": "weather",
  "data": {
    "icao": "EBBR"
  }
}

cURL Example

cURL
curl -X POST "https://api.virtualperformancetool.com/api" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-API-Version: 1.3.6" \
  -d '{
    "query": "weather",
    "data": {
      "icao": "EBBR"
    }
  }'

Response

JSON
{
  "apiVersion": "1.3.6",
  "metar": {
    "report": "METAR",
    "icao": "EBBR",
    "source": "Aviation Weather Center",
    "date": "2026-03-19 19:20:00",
    "text": "EBBR 191920Z 02005KT CAVOK 11/02 Q1023 NOSIG",
    "textHighlighted": [
      { "text": "EBBR", "color": null, "spaceSuffix": true },
      { "text": "191920Z", "color": null, "spaceSuffix": true },
      { "text": "02005KT", "color": null, "spaceSuffix": true },
      { "text": "CAVOK", "color": "#32CD32", "spaceSuffix": true },
      { "text": "NOSIG", "color": null, "spaceSuffix": false }
    ],
    "decoded": "METAR for station EBBR on Thu Mar 19, 19:20 UTC...\nWind: 20° at 05 KT\nVisibility: Greater than 10 km\n...",
    "metar2VPT": {
      "07l": {
        "windDir": 20,
        "windSpeed": 5,
        "gust": 0,
        "headwind": 4,
        "gustHeadwind": 0,
        "crosswindDir": 0,
        "crosswindSpeed": 0,
        "vrefAdd": 5,
        "qnh": 1023,
        "temp": 11,
        "dew": 2,
        "runwayConditionTakeoffDispatch": "DRY",
        "runwayConditionLandingDispatch": "DRY",
        "runwayConditionLandingEnroute": "DRY",
        "icing": false
      },
      "25r": {
        "windDir": 20,
        "windSpeed": 5,
        "gust": 0,
        "headwind": -4,
        "gustHeadwind": 0,
        "crosswindDir": 0,
        "crosswindSpeed": 0,
        "vrefAdd": 5,
        "qnh": 1023,
        "temp": 11,
        "dew": 2,
        "runwayConditionTakeoffDispatch": "DRY",
        "runwayConditionLandingDispatch": "DRY",
        "runwayConditionLandingEnroute": "DRY",
        "icing": false
      }
    }
  },
  "taf": {
    "report": "TAF",
    "icao": "EBBR",
    "source": "Aviation Weather Center",
    "date": "2026-03-19 17:04:00",
    "text": "EBBR 191704Z 1918/2024 04005KT CAVOK",
    "textHighlighted": [
      { "text": "EBBR", "color": null, "spaceSuffix": true },
      { "text": "CAVOK", "color": "#32CD32", "spaceSuffix": true }
    ],
    "decoded": "TAF for station EBBR on Thu Mar 19, 17:04 UTC...\nWind: 40° at 05 KT\nVisibility: Greater than 10 km\n"
  },
  "ivaoDAtis": [
    {
      "frequency": null,
      "timestamp": "2026-03-19T19:08:38.000Z",
      "atis": [
        "ts-1.eu-west-2.ivao.aero/EBBR_APP",
        "Brussels Arrival Information CHARLIE recorded at 1908z..."
      ],
      "callsign": "EBBR_APP",
      "revision": "C",
      "sessionId": 61914004,
      "order": 0
    }
  ],
  "vatsimDAtis": null
}

Response Sections

The weather response contains four main sections, each providing different types of aviation weather information.

Section Type Description
metar object|null Current METAR observation with raw text, decoded values, and runway-specific wind analysis
taf object|null Terminal Aerodrome Forecast with decoded forecast periods
ivaoDAtis array|null D-ATIS information from the IVAO network (if available)
vatsimDAtis array|null D-ATIS information from the VATSIM network (if available)

METAR Object

The METAR object contains the current weather observation with multiple useful formats.

Field Type Description
report string Always "METAR"
icao string Airport ICAO code
source string Data source (e.g., "Aviation Weather Center", "Avinor Norway")
date string Observation timestamp in UTC (YYYY-MM-DD HH:MM:SS)
text string Raw METAR text
textHighlighted array Array of token objects with text, color (hex or null), and spaceSuffix (boolean) for syntax highlighting
decoded string Human-readable decoded weather as formatted text string
metar2VPT object Runway-specific wind analysis and conditions. Keys are runway identifiers (e.g., "07l", "25r")

metar2VPT Object

Contains wind component calculations and runway conditions for each runway at the airport. Keys are lowercase runway identifiers (e.g., "07l", "25r", "01").

Field Type Description
windDir number Wind direction in degrees
windSpeed number Wind speed in knots
gust number Gust speed in knots (0 if no gusts)
headwind number Headwind component in knots (negative = tailwind)
gustHeadwind number Gust headwind component in knots
crosswindDir number Crosswind direction indicator (0 = none)
crosswindSpeed number Crosswind component in knots
vrefAdd number VREF additive for approach speed correction
qnh number QNH pressure in hPa
temp number Temperature in °C
dew number Dew point in °C
runwayConditionTakeoffDispatch string Runway condition for takeoff dispatch (e.g., "DRY", "WET")
runwayConditionLandingDispatch string Runway condition for landing dispatch
runwayConditionLandingEnroute string Runway condition for enroute landing planning
icing boolean Whether icing conditions are present

TAF Object

The TAF object contains the terminal aerodrome forecast with decoded forecast periods.

Field Type Description
report string Always "TAF"
icao string Airport ICAO code
source string Data source
date string Forecast issue timestamp in UTC
text string Raw TAF text (truncated for display)
textHighlighted array Array of token objects with text, color, and spaceSuffix for syntax highlighting
decoded string Human-readable decoded forecast as formatted text string

ATIS Objects (IVAO & VATSIM)

D-ATIS information from online flight simulation networks. Returns null if no active ATC is connected at the airport.

IVAO D-ATIS

Field Type Description
frequency string|null ATC frequency
timestamp string ATIS update timestamp
atis array Array of ATIS text lines
callsign string ATC callsign (e.g., "EBBR_TWR")
revision string ATIS revision letter
sessionId number IVAO session identifier
order number Priority order (0 = highest priority)

VATSIM D-ATIS

Field Type Description
frequency string ATIS frequency (e.g., "118.250")
atis array Array of ATIS text lines
callsign string ATC callsign (e.g., "EBBR_ATIS")
atisCode string Information letter (A, B, C, etc.)
order number Priority order (0 = highest priority)
Network Availability

IVAO and VATSIM D-ATIS data is only available when controllers are actively connected on those networks. If no ATC is online at the requested airport, these fields will return null.

Error Handling

Common error responses for the weather endpoint:

JSON - Missing ICAO Error
{
  "apiVersion": "1.3.6",
  "Error": [
    {
      "message": "Missing ICAO."
    }
  ]
}
METAR Freshness

METAR data has a validity window of 75 minutes. If the latest available METAR is older than this threshold, the API will still return it but you should consider it potentially outdated for operational use.