SHGM UAS Areas

Required roles: AIS PIB API — Roles
Base endpoint: https://ais-pib-api.ibosoft.net.tr:2087/shgm-ihattys
Attribution: show ibonav.aero wherever this data is displayed
Data sources: SHGM İHATTYS (Directorate General of Civil Aviation of Turkiye, UAS Tracking System).
Last updated: 03 NOV 2026

About the reference documents: Related Documents and Resources
Depending on your use, the original data sources may also need to be credited.

The UAS (drone) areas published by SHGM in İHATTYS, as GeoJSON polygons: permitted, permission-required and prohibited UAS flight areas and corridors in Turkiye. These are SHGM's own areas, not the airspace structure (CTR, TMA, R/P/D areas, …).

The data is not authoritative. A good part of the areas in İHATTYS are test entries made by SHGM; always refer to İHATTYS for official information.


Endpoints

Endpoint Description
GET /shgm-ihattys/geojson Areas of the latest snapshot (GeoJSON)
GET /shgm-ihattys/geojson?snapshot={snapshot} Areas of one stored snapshot
GET /shgm-ihattys/latest-snapshot Latest snapshot id and last fetch time
GET /shgm-ihattys/available Stored snapshots, newest first
GET /shgm-ihattys/status Fetch status (last success, last attempt, last error)

The areas are fetched every 10 minutes, aligned to the hour (:00, :10, :20 …). Each successful fetch is stored as a snapshot named after its slot (YYYYMMDD_HHMM, UTC); the last 10 snapshots are kept. A failed fetch is retried up to 3 times, 30 seconds apart; until a fetch succeeds the previous snapshot stays current.

/geojson and /latest-snapshot answer 404 until the first fetch has succeeded.

Area shapes

İHATTYS stores an area as a list of points, a shape (POLYGON or CORRIDOR) and an optional width. Every area is returned as a GeoJSON Polygon; geom_source tells how it was built:

geom_source İHATTYS record Polygon
polygon POLYGON, 3 or more points The points
corridor_area CORRIDOR, 3 or more points, no width The points (the record is an area, not a line)
corridor CORRIDOR, 2 or more points, with width A strip extending width_m to each side of the line (total width 2 × width_m), flat ends — as drawn by the İHATTYS app
circle CORRIDOR, 1 point, with width A circle around the point, radius width_m (64 sides)

Records that cannot be drawn (e.g. a polygon with fewer than 3 points) are left out.

Response

/latest-snapshot

{"snapshot": "20261103_2000", "last_fetched": "2026-11-03T20:02:02Z", "stale": false}
Field Description
snapshot Latest snapshot id
last_fetched Time of the last successful fetch (UTC)
stale true when no fetch has succeeded for two intervals (20 minutes)

/available

{"count": 3, "snapshots": ["20261103_2020", "20261103_2010", "20261103_2000"]}

/status

{
  "snapshot": "20261103_2000",
  "last_fetched": "2026-11-03T20:02:02Z",
  "last_attempt": "2026-11-03T20:01:25Z",
  "last_error": null,
  "stale": false,
  "fetch_interval_minutes": 10
}

last_error is the reason of the last failed attempt; it is cleared by the next success.

/geojson

A GeoJSON FeatureCollection (application/geo+json). Besides features, it carries snapshot and fetched_at (time of the fetch, UTC).

{
  "type": "FeatureCollection",
  "snapshot": "20261103_2000",
  "fetched_at": "2026-11-03T20:02:02Z",
  "features": [
    {
      "type": "Feature",
      "id": "9daeb236-4e58-4cbd-a6cd-49249d569e4b",
      "geometry": {"type": "Polygon", "coordinates": [[[29.5014, 37.1468], "…"]]},
      "properties": {
        "id": "9daeb236-4e58-4cbd-a6cd-49249d569e4b",
        "name": "koordinat_listesi_deneme",
        "description": null,
        "category": "YASAKLI HAVA SAHASI",
        "category_description": "uçuşlar yasaklıdır",
        "p1_permission": "CANNOT_FLY",
        "p2_permission": "CANNOT_FLY",
        "autonomous_permitted": false,
        "manual_permitted": false,
        "shape": "CORRIDOR",
        "geom_source": "corridor",
        "width_m": 3005.0,
        "upper_limit_m": 5292.0,
        "lower_limit_m": 0.0,
        "height_m": null,
        "ground_offset_m": null,
        "city": "BURDUR",
        "district": "GÖLHİSAR",
        "street": "Gölhisar, Burdur, Akdeniz Bölgesi, 15400, Türkiye",
        "created_at": "2026-10-13T13:57:43.188Z",
        "updated_at": "2026-10-13T13:57:43.188Z"
      }
    }
  ]
}
Property Description
id İHATTYS area id (also the feature id)
name Area name; null when the area has none (many have none)
description Free text; may be null
category İHATTYS category, as written in İHATTYS (Turkish): SERBEST (free), İZNE TABİİ (permission required), Bölge 3, YASAKLI HAVA SAHASI (prohibited)
category_description Category description (Turkish)
p1_permission, p2_permission Flight permission of the category for P1 / P2 license holders: PERMISSION_REQUIRED, CANNOT_FLY, or null when İHATTYS gives no value
autonomous_permitted, manual_permitted Whether autonomous / manual flights are permitted in the category (true / false)
shape İHATTYS shape: POLYGON or CORRIDOR
geom_source How the polygon was built — see Area shapes
width_m Corridor half-width (extent to each side of the line) or circle radius (m); null for polygons
upper_limit_m Upper limit (m, AMSL). The İHATTYS app draws the top of an area at an absolute height (amsl); the server field is taken to be the same value
lower_limit_m Lower limit (m, AMSL); 0 = MSL. The app draws the bottom of an area at absolute height 0; the server's lower limit is taken to use the same reference
height_m İHATTYS height (m); given only for some areas, otherwise null
ground_offset_m İHATTYS groundOffset (m): offset above the ground. The app uses it only for floating corridors ("pipe"), whose bottom is drawn this far above the terrain. Given together with height_m, otherwise null. It is not the terrain elevation
city, district Province and district (Turkish, upper case); may be null
street Address text; may be null
created_at, updated_at When the area was created / last changed in İHATTYS (UTC)

The identity of whoever created an area is not stored or returned.