ARS (ICAO)

Required roles: AIS PIB API — Roles
Base endpoint: https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-ars-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 special air-report (ARS) into readable fields, in either of its two forms: uplink (plain language, one line) and downlink (data blocks). Optionally returns the report position in decimal degrees (parsed).

The forms are those of PANS-MET Appendix 3: uplink Table A3-2, downlink Table A3-1. The contents of special air-reports are given in PANS-MET 3.1.2 and PANS-ATM 4.12.3; the model AIREP SPECIAL form and the ARS designator in PANS-ATM Appendix 1. Special air-reports distributed on the ground (e.g. from AIREP / ARS) are in the uplink form. For routine air-reports use AIREP (ICAO).


Endpoints

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

{ "raw": "<ARS 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 element names of Table A3-2 (uplink) or Table A3-1 (downlink); phenomena and qualifiers are expanded with the template's terms. Abbreviations are expanded as defined in PANS-MET and PANS-ABC (Doc 8400); EDR (eddy dissipation rate) and RH (relative humidity), which PANS-ABC does not list, are shown as EDR (Eddy dissipation rate) and RH (Relative humidity).
  • M (mandatory) elements are always present (null when missing); C (conditional) elements appear only when present.
  • Uplink is read in template order: location indicator (C), identification, aircraft identification, observed phenomenon, observation time, location (C), level (C). Phenomena are matched longest first (SEV TURB before TS).
  • Downlink data blocks are recognized by their pattern: position, level, time, wind (direction, speed, quality flag), air temperature (T127 → 12.7 °C, TM455 → −45.5 °C), turbulence (EDR064/08 → 0.64, peak at time index 08), humidity (RH054 → 54 %) and the condition prompting the report.
  • Strict template: groups that do not follow the template are listed under Undecodable elements (neighbouring groups form one entry).

Response

Uplink example:

EPWW ARS A319 MOD TURB OBS AT 1112Z N5158E01716 FL350=
{
  "Location indicator": "EPWW",
  "Identification": "Special air-report",
  "Aircraft identification": "A319",
  "Observed phenomenon": "Moderate turbulence",
  "Observation time": "Observed at 11:12 UTC",
  "Observed location": "N51°58' E17°16'",
  "Observed level": "FL 350",
  "positions": [{"start": 0, "end": 4}, "…"],
  "corrected_raw": "EPWW ARS A319 MOD TURB OBS AT 1112Z N5158E01716 FL350",
  "raw": "EPWW ARS A319 MOD TURB OBS AT 1112Z N5158E01716 FL350=",
  "parsed": {
    "utc_day": null, "utc_time": "1112",
    "position": {"lat": 51.9667, "lon": 17.2667},
    "location_indicator": "EPWW",
    "aircraft_identification": "A319"
  }
}
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"), utc_day (always null), position (lat/lon in signed decimal degrees, N/E positive; null without 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