AIREP (ICAO)

Required roles: AIS PIB API — Roles
Base endpoint: https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-airep-icao
Reference documents: ICAO Doc 10157 PANS-MET, Ed. 1 (27/11/25) · ICAO Doc 8400 PANS-ABC, Ed. 9, Amend. 33 (8/11/18) · ICAO Doc 4444 PANS-ATM, Ed. 16, Amend. 13 (27/11/25)
Attribution: show ibonav.aero or "Decoded by Ibosoft" wherever decoded output is displayed
Data sources: none — decodes the message supplied in the request.
Last updated: 17 OCT 2026

About the reference documents: Related Documents and Resources

Decodes a single-line air-report (AIREP) into readable fields. Optionally returns the report position in decimal degrees (parsed).

The single-line AIREP uses the element order of the special air-report uplink template (PANS-MET Appendix 3, Table A3-2); only the identification is AIREP. The contents of routine air-reports are given in PANS-MET 3.1.1 and PANS-ATM 4.12.2, the AIREP form in PANS-ATM Appendix 1. For special air-reports use ARS (ICAO). To get reports to decode, see AIREP / ARS.


Endpoints

POST /opmet-decoder-airep-icao/decode?parsed=false
Content-Type: application/json

{ "raw": "<AIREP text>" }

Parameters

Parameter In Default Description
raw body — Report text, at least 5 characters. A WMO bulletin heading is accepted and removed; a leading FIR location indicator is kept.
parsed query false true: add the parsed object

How the template is processed

  • Field names and wording come from PANS-MET Appendix 3: output keys are the template element names; phenomena are expanded with the template's terms (SEV TURB → "Severe turbulence", VA CLD → "Volcanic ash cloud"). Abbreviations are expanded as defined in PANS-MET and PANS-ABC (Doc 8400).
  • M (mandatory) elements — identification, aircraft identification, observed phenomenon, observation time — are always present (null when missing). C (conditional) elements — location indicator, observed location, observed level — appear only when present.
  • Phenomena are matched longest first (SEV TURB before TS, VA CLD before VA); VA MT <name> is recognized with the mountain name.
  • Strict template: groups that do not follow the template are listed under Undecodable elements (neighbouring groups form one entry).

Response

EPWW AIREP THY1 SEV TURB OBS AT 0930Z N4012E02855 FL370=
{
  "Location indicator": "EPWW",
  "Identification": "Air-report",
  "Aircraft identification": "THY1",
  "Observed phenomenon": "Severe turbulence",
  "Observation time": "Observed at 09:30 UTC",
  "Observed location": "N40°12' E28°55'",
  "Observed level": "FL 370",
  "positions": [{"start": 0, "end": 4}, "…"],
  "corrected_raw": "EPWW AIREP THY1 SEV TURB OBS AT 0930Z N4012E02855 FL370",
  "raw": "EPWW AIREP THY1 SEV TURB OBS AT 0930Z N4012E02855 FL370=",
  "parsed": {
    "utc_day": null, "utc_time": "0930",
    "position": {"lat": 40.2, "lon": 28.9167},
    "location_indicator": "EPWW",
    "aircraft_identification": "THY1"
  }
}
Key Description
element keys Decoded elements, in template order
Undecodable elements Groups that do not follow the template (only when there are any)
corrected_raw The message after normalization; positions refer to this text
positions Character spans {start, end} in corrected_raw, one per decoded value in output order
parsed With parsed=true: utc_time ("HHMM", from OBS AT), utc_day (always null — an air-report has no day), position (lat/lon in signed decimal degrees, N/E positive; null when the report has no coordinates), location_indicator, aircraft_identification

Errors

Code Meaning
400 The message could not be parsed at all; detail explains why
422 raw is missing or shorter than 5 characters