TAF
Required roles:
AIS PIB API— Roles
Base endpoint:https://ais-pib-api.ibosoft.net.tr:2087/opmet-taf
Reference documents: ICAO Doc 10157 PANS-MET, Ed. 1 (27/11/25)
Attribution: showibonav.aerowherever this data is displayed
Data sources: TSMS (Turkish State Meteorological Service), NOAA Aviation Weather Center.
Last updated: 17 OCT 2026About the reference documents: Related Documents and Resources
Depending on your use, the original data sources may also need to be credited.
Current or recent aerodrome forecasts (TAF) of an aerodrome, requested by its ICAO location indicator. Forecasts are returned as published (raw text); decoding is a separate service.
The forecast format is that of PANS-MET Appendix 4 (Table A4-1). To decode a forecast, pass its raw text to TAF (ICAO) or TAF (FAA).
Endpoints
GET /opmet-taf/{icao}
GET /opmet-taf/{icao}?hours=N
GET /opmet-taf/{icao}?source={id}
Forecasts are requested from the data sources at the time of the call (no cached copy).
Parameters
| Parameter | In | Description |
|---|---|---|
icao |
path | ICAO location indicator of the aerodrome (4 letters, e.g. LTFM). Case-insensitive. |
hours |
query, optional | Look-back period in hours, 0 < hours ≤ 6 (decimals allowed). Omit for the current forecast. |
source |
query, optional | Use only this data source, without falling back to another one. |
- No
hours: only the latest TAF. hours=N: all TAFs issued within the lastNhours, newest first.
Data source selection
Each data source covers a set of aerodromes by location-indicator prefix. The source that covers the requested indicator is tried first. If it cannot be reached or returns no forecast, the source with worldwide coverage is used.
source id |
Data source | Coverage |
|---|---|---|
mgm |
TSMS | Aerodromes with indicators starting with LT (Türkiye) |
noaa |
NOAA | Worldwide; also used when the regional source has no data |
With ?source= only that source is queried; an unknown id returns 400.
Response
200 OK:
{
"sources": ["NOAA"],
"reports": [
{
"source": "NOAA",
"icao": "LTFM",
"station_name": "Istanbul Arpt",
"issue_time": "2026-03-18T17:27:00.000Z",
"valid_from": "2026-03-18T18:00:00+00:00",
"valid_to": "2026-03-20T00:00:00+00:00",
"raw": "TAF AMD LTFM 181727Z 1818/1924 04018G28KT 9999 SCT012 BKN025",
"location": { "lat": 41.262, "lon": 28.74, "elevation_m": 99 }
}
]
}
| Field | Description |
|---|---|
sources |
Names of the data sources that contributed to the response |
reports[] |
Forecasts, newest first |
reports[].source |
Name of the data source of this forecast |
reports[].icao |
ICAO location indicator |
reports[].station_name |
Station name; may be null |
reports[].issue_time |
Time of issue (ISO 8601, UTC) |
reports[].valid_from / valid_to |
Period of validity (ISO 8601, UTC); null when the data source does not provide it — the period is always in the raw text |
reports[].raw |
Forecast text as published |
reports[].location |
lat, lon, elevation_m; null when the data source does not provide coordinates |
Errors
| Code | Meaning |
|---|---|
400 |
Invalid ICAO location indicator (must be exactly 4 letters), or unknown source id |
404 |
The data sources were reached but hold no TAF for this aerodrome (also when a forced source has none) |
422 |
hours out of range |
502 |
None of the candidate data sources could be reached |
A 404 means "no forecast", not a failure: show it as "no data" in your application.