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: showibonav.aeroor "Decoded by Ibosoft" wherever decoded output is displayed
Data sources: none — decodes the message supplied in the request.
Last updated: 17 OCT 2026About 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) andRH(relative humidity), which PANS-ABC does not list, are shown asEDR (Eddy dissipation rate)andRH (Relative humidity). - M (mandatory) elements are always present (
nullwhen 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 TURBbeforeTS). - 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 |