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: 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 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/FCST after the phenomenon is Observed or forecast phenomenon, a later FCST AT nnnnZ is Forecast time (SIGMET only).
  • M (mandatory) elements of the message type are always present (null when 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 TURB in an AIRMET, ISOL CB in a SIGMET) is not accepted — Phenomenon is null and 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 under Repetition 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 under Undecodable 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