DM
Datamask Aviation
METAR · TAF · OPMET
Public API · v1 · beta

Datamask Aviation API

Datamask Aviation publishes a small read-only JSON API derived from the public OPMET feeds we already render. No authentication. CORS open. Use it for student-pilot apps, simulator integrations, hobby tooling, university research and anything else that benefits from a clean decoded METAR.

Endpoints

MethodPathDescription
GET/api/v1/metar/{icao}Latest METAR plus decoded fields (wind, visibility, clouds, QNH, flight category).
GET/api/v1/taf/{icao}Latest TAF as raw text. Decoded TAF timeline lives only in the web UI.
GET/api/v1/healthService status: ok flag, airport-database size, version and current UTC time.

Base URL: https://datamask.org · ICAO must match ^[A-Z0-9]{4}$ · 400 on invalid · 404 when the upstream OPMET feed has nothing for that station.

Example: METAR

GET /api/v1/metar/EDDM

{
  "icao": "EDDM",
  "observedAt": "2026/04/24 14:50",
  "fetchedAt": 1745504247123,
  "raw": "EDDM 241450Z 27012KT 9999 FEW035 18/09 Q1015 NOSIG",
  "decoded": {
    "station": "EDDM",
    "wind": { "direction": 270, "speedKt": 12, "gustKt": null, "unitRaw": "KT" },
    "visibility": { "meters": 9999, "statuteMiles": 6.21, "cavok": false },
    "clouds": [{ "quantity": "FEW", "heightFt": 3500, "type": null }],
    "temperature": { "temp": 18, "dewpoint": 9 },
    "qnh": { "hpa": 1015, "inhg": 29.97 },
    "flightCategory": "VFR",
    "ceilingFt": null
    /* ...full DecodedMetar shape */
  },
  "source": "noaa-tgftp",
  "attribution": "NOAA NWS · Datamask Aviation"
}

Example: TAF

GET /api/v1/taf/EDDM

{
  "icao": "EDDM",
  "issuedAt": "2026/04/24 12:00",
  "fetchedAt": 1745504247456,
  "raw": "TAF EDDM 241100Z 2412/2518 27010KT 9999 FEW040 ...",
  "source": "noaa-tgftp",
  "attribution": "NOAA NWS · Datamask Aviation"
}

Example: health

GET /api/v1/health

{
  "ok": true,
  "airports": 85217,
  "version": "0.2.0",
  "now": "2026-04-24T14:50:00.000Z"
}

Authentication & CORS

No authentication is required. Every endpoint sends Access-Control-Allow-Origin: * and accepts GET and OPTIONS, so the API is callable directly from a browser. Successful METAR/TAF responses are marked Cache-Control: public, s-maxage=30, stale-while-revalidate=300 — feel free to cache aggressively client-side; we already cache the upstream fetch for 30 seconds in-process.

Rate limits

Currently unenforced — please be reasonable. If your app makes more than a handful of requests per second per ICAO it is almost certainly fighting the upstream cache for no benefit; the underlying NOAA tgftp feed only updates around the publication minute. We will introduce per-IP limits if abuse occurs.

Attribution

Please cite both Datamask Aviation and the NOAA National Weather Service (the upstream OPMET source) in any product that surfaces this data. The attribution field on each response carries the canonical credit string.

Status

Free, beta. The shape of the JSON may change in backwards-compatible ways while we are at v1; breaking changes will only ship under /api/v2. For high-volume use, integration questions or a heads-up before relying on the API in production, e-mail admin@datamask.org.

See also About · Impressum · Pre-flight briefing