SIGMET / AIRMET (ICAO)
Required roles:
AIS PIB API— Roles
Base endpoint:https://ais-pib-api.ibosoft.net.tr:2087/opmet-decoder-sigmet-airmet
Reference documents: ICAO Doc 10157 PANS-MET, Ed. 1 (27/11/25) · ICAO Doc 8400 PANS-ABC, Ed. 9, Amend. 33 (8/11/18)
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 SIGMET and AIRMET information into readable fields with one decoder, following the PANS-MET template strictly. Also returns the normalized message (corrected_raw) and the position of every decoded token (positions).
PANS-MET defines SIGMET and AIRMET in one template (Table A7-5), so one decoder serves both; the message type decides which elements and phenomena are allowed. To get messages to decode, see SIGMET / AIRMET.
Endpoints
POST /opmet-decoder-sigmet-airmet/decode
Content-Type: application/json
{ "raw": "<SIGMET or AIRMET text>" }
Parameters
| Parameter | In | Description |
|---|---|---|
raw |
body | Message text. A WMO bulletin heading before the first line (e.g. WSIR31 LTAA 181300) is accepted and removed. |
How the template is processed
- Field names and wording come from PANS-MET Table A7-5 and its notes: output keys are the template element names; phenomena, qualifiers and locations are expanded with the template's terms (e.g.
SEV TURB→ "Severe turbulence",STNR→ "Stationary",S OF N2020→ "South of N20°20'"). Abbreviations are expanded as defined in PANS-MET and PANS-ABC (Doc 8400). - Order: the message is read left to right in template order; the same pattern is told apart by its position — e.g. the first
OBS/FCSTafter the phenomenon is Observed or forecast phenomenon, a laterFCST AT nnnnZis Forecast time (SIGMET only). - M (mandatory) elements of the message type are always present (
nullwhen missing or not following the template). C (conditional) elements appear only when present. A cancellation (CNL SIGMET|AIRMET …) has no body elements. - Type-specific content: a phenomenon that does not belong to the message type (e.g.
SEV TURBin an AIRMET,ISOL CBin a SIGMET) is not accepted —Phenomenonisnulland the group is undecodable. If the identification (SIGMET n/AIRMET n) is missing, only the elements common to both are decoded. - Repeated elements (
AND, e.g. several volcanic ash or tropical cyclone areas) are returned underRepetition of elements, one line per repeated group. - Strict template: only the spellings of the template are accepted (e.g. a point written without a space,
N2028W10949, is undecodable). Undecodable groups are listed underUndecodable elements; neighbouring ones form one entry.
For the full list of elements, phenomena and location forms, see PANS-MET Table A7-5.
Response
Example — PANS-MET Example A7-11:
YUCC SIGMET 5 VALID 221215/221600 YUDO –
YUCC AMSWELL FIR SEV TURB OBS AT 1210Z N2020 W07005 FL250 INTSF FCST AT 1600Z S OF N2020 AND E OF W06950
{
"Location indicator of FIR/CTA": "YUCC",
"Identification": "SIGMET 5",
"Validity period": "Valid from Day 22, 12:15 UTC to Day 22, 16:00 UTC",
"Location indicator of MWO": "YUDO",
"Name of the FIR/CTA": "YUCC AMSWELL FIR",
"Phenomenon": "Severe turbulence",
"Observed or forecast phenomenon": "Observed at 1210Z",
"Location": "N20°20' W70°05'",
"Level": "FL 250",
"Changes in intensity": "Intensifying",
"Forecast time": "Forecast at 1600Z",
"Forecast position": "South of N20°20' and East of W69°50'",
"positions": [{"start": 0, "end": 4}, "…"],
"corrected_raw": "YUCC SIGMET 5 VALID 221215/221600 YUDO –\nYUCC AMSWELL FIR SEV TURB …",
"raw": "YUCC SIGMET 5 VALID 221215/221600 YUDO – …"
}
| Key | Description |
|---|---|
| element keys | Decoded elements, in template order |
Repetition of elements |
Repeated element groups (only when present) |
Undecodable elements |
Groups that do not follow the template (only when there are any) |
corrected_raw |
The message after normalization (bulletin heading removed, upper case, no final =); positions refer to this text |
positions |
Character spans {start, end} in corrected_raw, one per decoded value in output order (one per list item), then one per undecodable entry |
raw |
The message as received |
Errors
| Code | Meaning |
|---|---|
400 |
The message could not be parsed at all; detail explains why |
422 |
raw is missing or too short |