Skip to content

API Geodata

Список маршрутів

#МетодМаршрутОписНеобхідний рівень доступу
1GET/geo/topodata50/:codifierДані топографічної карти 1:50 000L1
2GET/geo/communityАдміністративна прив'язка за координатами або КАТОТТГL1
3GET/geo/elevationВисота точки над рівнем моряL1
4GET/geo/unbreakability-pointsПошук найближчих пунктів незламностіL1
5POST/geo/terrain-profileПобудова профілю місцевості за лінієюL1
6GET/geo/parcelІнформація про земельну ділянку за кадастровим номером або координатамиL0 (з обмеженнями)
7POST/geo/queryЗапит геоданих у точці за вказаним шаромL1
8GET/geo/infoАгрегована інформація в точці за доменамиL1
9GET/geo/pzfІнформація про природоохоронні території (ПЗФ)L1
10GET/geo/admin-boundariesОтримання адміністративних меж за координатамиL1
11GET/geo/social-objectsПошук соціальних об'єктів навколо точкиL1
12GET/geo/un-dataДані ООН / ПРООНL1

1. Дані топографічної карти масштабу 1:50 000

Метод: GET URL: /geo/topodata50/:codifierПрава доступу: L1

Параметри (Params):

ПараметрТипОбов'язковістьОпис
codifierstringобов'язковийКод КАТОТТГ території

Параметри (Query):

ПараметрТипОбов'язковістьОпис
nocachestringопціональнийОновити кеш (наприклад "1")
debugstringопціональнийРежим налагодження (тільки для admin)

Відповідь (200 OK)

json
{
  "buildingCount": 342,
  "miningsiteCount": 5,
  "religiousbuildCount": 12,
  "sportbuildCount": 3,
  "vegetationArea": 125.6,
  "standingwaterArea": 8.4,
  "roadLength": 87.3,
  "railwayLength": 12.5,
  "monumentCount": 7,
  "maxHeight": 287,
  "settlementAreaSum": 15.2,
  "powerLineLength": 23.8
}

2. Адміністративна прив'язка за координатами або кодом КАТОТТГ

Метод: GET URL: /geo/communityПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberопціональнийШирота (0-90)
lonnumberопціональнийДовгота (0-180)
codifierstringопціональнийКод КАТОТТГ (формат: UA + 15-20 цифр)

Примітка: Має бути вказано або пару lat/lon, або codifier

Відповідь (200 OK) - за координатами

json
{
    "settlement": {
        "name": null,
        "codifier": null,
        "type": null
    },
    "district": {
        "type": "район",
        "name": "Кропивницький",
        "codifier": "UA35040000000034705"
    },
    "region": {
        "type": "область",
        "name": "Кіровоградська",
        "codifier": "UA35000000000016081"
    },
    "community": {
        "name": "Устинівська",
        "isMilitaryArea": false,
        "area": 944.25,
        "codifier": "UA35040330000014430",
        "children": [
            {
              "codifier": "UA35040330310046185",
              "name": "Селіванове",
              "area": "0.000019000000000000000000",
              "type": "село"
            },
            {
              "codifier": "UA35040330340033955",
              "name": "Степове",
              "area": "0.000112000000000000000000",
              "type": "село"
            }
        ],
        "geom": {
            "type": "MultiPolygon",
            "coordinates": []
        }
    }
}

Відповідь (200 OK) - за codifier

json
{
  "settlement": {
    "name": null,
    "type": null,
    "codifier": null
  },
  "district": {
    "name": "Київський район",
    "type": "район",
    "codifier": "UA80000000000010002"
  },
  "region": {
    "name": "Київська область",
    "type": "область",
    "codifier": "UA35000000000016081"
  },
  "community": {
    "name": "Київська міська територіальна громада",
    "codifier": "UA35040330000014430",
    "area": 839.0,
    "geom": {
      "type": "Polygon",
      "coordinates": [[[30.0, 50.0], [30.5, 50.0], [30.5, 50.5], [30.0, 50.5], [30.0, 50.0]]]
    },
    "children": [
      {
        "name": "Київ",
        "type": "місто",
        "area": 839.0,
        "codifier": "UA80000000000000001"
      }
    ]
  }
}

3. Висота точки над рівнем моря

Метод: GET URL: /geo/elevationПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)

Відповідь (200 OK)

json
{
  "results": [
    {
      "dataset": "mapzen",
      "elevation": 201,
      "location": {
        "lat": 50,
        "lng": 30
      }
    }
  ],
  "status": "OK"
}

4. Пошук найближчих пунктів незламності

Метод: GET URL: /geo/unbreakability-pointsПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)

Відповідь (200 OK)

json
{
  "unbreakability": [
    {
      "id": 3935,
      "distance": 0.8259346561700001,
      "geom": {
          "type": "Point",
          "coordinates": [
              30.003473,
              49.99292
          ]
      },
      "FID": 5111,
      "number": 0,
      "IDF": "21688",
      "new_id": "4ba8c42f",
      "Oblast": "Київська",
      "ADMIN_2": "Білоцерківський",
      "ADMIN_3": "Ковалівська",
      "type_tg": "сільська територіальна громада",
      "COD_TG": " ",
      "COD_NP": " ",
      "type_np": "село",
      "Settlement": "Ковалівка",
      "Address": "вул. Фастівська 23",
      "Name": "Ковалівський академічний ліцей",
      "type": "Школа/дитячий садочок",
      "sector": "Пункти Незламності",
      "generator": "так",
      "Bulerjan": "ні",
      "kotel": "так",
      "star": "ні",
      "opt": "так",
      "grafic": "цілодобово",
      "vid": "вже працює",
      "zaryad": "так",
      "pidzariadk": "Підзарядка гаджетів",
      "primitka": "ПН на карту",
      "y": 49.99292,
      "x": 30.003473
    }
  ],
  "unbreakabilityBusiness": [
      {
        "id": 476,
        "distance": 7.95926293764,
        "geom": {
            "type": "Point",
            "coordinates": [
                29.95638,
                50.06581
            ]
        },
        "FID": 2644,
        "number": 7112,
        "IDF": "AZS0737",
        "new_id": "AZS0737",
        "Oblast": "Київська",
        "ADMIN_2": "Фастівський",
        "ADMIN_3": "Фастівська",
        "type_tg": "міська територіальна громада",
        "COD_TG": "UA32140150000040954",
        "COD_NP": " ",
        "type_np": " ",
        "Settlement": "Фастів",
        "Address": "вул Якубовського 62",
        "Name": "WOG",
        "type": "АЗК",
        "sector": "Пункти Незламності відповідального бізнесу",
        "generator": "так",
        "Bulerjan": " ",
        "kotel": " ",
        "star": " ",
        "opt": " ",
        "grafic": " ",
        "vid": " ",
        "zaryad": "так",
        "pidzariadk": "Підзарядка гаджетів",
        "primitka": "ПН (бізнес)",
        "y": 50.06581,
        "x": 29.95638
      }
  ]
}

5. Побудова профілю місцевості

Метод: POST URL: /geo/terrain-profileПрава доступу: L1
Таймаут: 25 секунд

Параметри (Body):

ПараметрТипОбов'язковістьОпис
coordinatesstringобов'язковийРядок координат у форматі lon lat,lon lat,... (наприклад 30.0 50.0,31.0 51.0)

Відповідь (200 OK)

json
{
  "elevation": [
    {
      "altitude": 145.2,
      "coordinates": [30.0, 50.0]
    },
    {
      "altitude": 148.7,
      "coordinates": [30.05, 50.05]
    },
    {
      "altitude": 152.1,
      "coordinates": [30.10, 50.10]
    }
  ]
}

6. Інформація про земельну ділянку за кадастровим номером або координатами

Метод: GET URL: /geo/parcelПрава доступу: L0 (з обмеженнями та rate limiting)

Обмеження швидкості:

  • minutely: до 20 запитів на хвилину
  • daily: ліміт на день (конфігураційний)

Параметри (Query):

ПараметрТипОбов'язковістьОпис
cadNumstringопціональнийКадастровий номер (формат: 10 цифр:2:3:4)
latnumberопціональнийШирота (0-90)
lonnumberопціональнийДовгота (0-180)
tokenstringопціональнийТокен доступу

Примітка: Має бути вказано або cadNum, або пару lat/lon

Відповідь (200 OK)

json
{
  "cadnum": "3224985101:01:003:0356",
  "category": "Землі сільськогосподарського призначення",
  "purpose_code": "01.03",
  "purpose": "01.03 Для ведення особистого селянського господарства",
  "use": "для ведення особистого селянського господарства",
  "area": "0.3613",
  "unit_area": "га",
  "ownershipcode": "100",
  "ownership": "Приватна власність",
  "ppoint": "POINT()",
  "zoom_to": "POLYGON()",
  "geom": {
      "type": "MultiPolygon",
      "coordinates": []
  },
  "category_code": "100",
  "valuation_value": "",
  "valuation_date": "",
  "geom_text": "MULTIPOLYGON()",
  "type": "dzk"
}

7. Запит геоданих у точці за вказаним шаромPOST

Метод: POST URL: /geo/queryПрава доступу: L1

Параметри (Body):

ПараметрТипОбов'язковістьОпис
geometryobjectобов'язковийGeoJSON геометрія точки
geometry.typestringобов'язковийТип геометрії (наприклад "Point")
geometry.coordinatesarrayобов'язковийКоординати [lon, lat]
layerstringобов'язковийНазва шару для запиту (наприклад "parcel")

Відповідь (200 OK)

json
{
    "success": true,
    "total": 1,
    "data": {
        "layerId": "parcel",
        "layerName": "Земельні ділянки",
        "id": "3899940423107348131",
        "title": "3224985101:01:003:0356"
    },
    "rows": [
        {
            "layerId": "parcel",
            "layerName": "Земельні ділянки",
            "id": "3899940423107348131",
            "title": "3224985101:01:003:0356"
        }
    ]
}

8. Агрегована інформація в точці за доменами

Метод: GET URL: /geo/infoПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)
domainsstringобов'язковийДомени через кому (наприклад "parcel,address")

Відповідь (200 OK)

json
{
    "success": true,
    "total": 1,
    "data": {
        "layerId": "parcel",
        "layerName": "Земельні ділянки",
        "id": "3899940423107348131",
        "title": "3224985101:01:003:0356"
    },
    "rows": [
        {
            "layerId": "parcel",
            "layerName": "Земельні ділянки",
            "id": "3899940423107348131",
            "title": "3224985101:01:003:0356"
        }
    ]
}

9. Дані ПЗФ

Метод: GET URL: /geo/pzfПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)
sqlstringопціональнийSQL-фільтр
limitnumberопціональнийЛіміт записів (1-100)
sridintegerопціональнийSRID для геометрії

Відповідь (200 OK)

json
{
    "total": 1,
    "rows": [
        {
            "pa_id": "3232334329002592255",
            "wdpa_id": null,
            "name_ua": "Ботанічний заказник місцевого значення «Черківщина»",
            "name_en": null,
            "name_legal": "Ботанічний заказник місцевого значення «Черківщина»",
            "importance": "Local",
            "category": "6",
            "type": "3",
            "active": true,
            "date_yes": "2017-06-22 00:00:00",
            "date_no": null,
            "area": "32.4",
            "area_i": null,
            "area_ex": null,
            "phone_ua": null,
            "website": null,
            "contact_facebook": null,
            "pa_id_text": "0232UA0703022",
            "geom": {
                "type": "MultiPolygon",
                "coordinates": []
            },
            "region": [
                "65"
            ],
            "is_within": false,
            "distance_km": 14.954920039772702,
            "line_distance": {
                "type": "LineString",
                "coordinates": []
            },
            "importance_data": {
                "id": "Local",
                "text": "Місцеве",
                "icon": null,
                "color": "#41ae76"
            },
            "type_text": "ботанічний",
            "active_data": {
                "id": "true",
                "text": "Так",
                "icon": null,
                "color": "green"
            },
            "category_data": {
                "id": "6",
                "text": "заказник",
                "icon": null,
                "color": "#6a51a3"
            },
            "region_text": [
                "Київська область"
            ]
        }
    ]
}

10. Отримання адміністративних меж за координатами

Метод: GET URL: /geo/admin-boundariesПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)
debugstringопціональнийРежим налагодження (тільки для admin)

Відповідь (200 OK)

json
{
    "region_id": "8870140591529698",
    "name_ua": "Паляничинці",
    "object_type": "C",
    "codifier": "UA32020070050038776",
    "area": 3.17,
    "geom": {
        "type": "MultiPolygon",
        "coordinates": []
    },
    "parent": "18501076278620054",
    "object_status": "1",
    "info_json": null,
    "koatuu": "3224985101",
    "parent_level1": "65",
    "parent_level2": "2392155055118616277",
    "parent_level3": "18501076278620054"
}

11. Пошук соціальних об'єктів навколо заданої точки

Метод: GET URL: /geo/social-objectsПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
latnumberобов'язковийШирота (0-90)
lonnumberобов'язковийДовгота (0-180)
limitnumberопціональнийЛіміт записів (1-100)
unitsstringопціональнийОдиниці виміру (m або km)
radiusnumberопціональнийРадіус пошуку
nocachestringопціональнийОновити кеш (наприклад "1")
without_datastringопціональнийБез даних

Список шарів, що досліджуються:

  • primary_care_network - заклади первинної медичної допомоги
  • social_services - соціальні послуги
  • fire_rescue_units - пожежно-рятувальні підрозділи
  • state_rescue_units - державні аварійно-рятувальні підрозділи
  • social_services_agencies - агенції соціальних послуг
  • inclusive_resource_centers - інклюзивно-ресурсні центри
  • sport_facilities - спортивні споруди

Відповідь (200 OK)

json
{
    "rows": [
        {
            "id": "4088",
            "point": {
                "x": "29.98727649450302",
                "y": "49.99815936415962"
            },
            "dist": "0.9324",
            "data": {
                "name": "ПЗ Паляниченці",
                "layer": "Мережа первинної медичної допомоги",
                "address": null
            }
        }
    ]
}

12. Дані ООН / ПРООН

Метод: GET URL: /geo/un-dataПрава доступу: L1

Параметри (Query):

ПараметрТипОбов'язковістьОпис
nocachestringопціональнийОновити кеш (наприклад "1")

Відповідь (200 OK)

json
{
    "cache": false,
    "count": 426,
    "rows": [
        {
            "undp_id": "3454638800490202936",
            "region_name": "Київська",
            "region_codifier": "UA32000000000030281",
            "district_name": "Вишгородський",
            "district_codifier": "UA32100000000065867",
            "community_name": "Іванківська",
            "community_codifier": "UA32100050000082904",
            "settlement_name": "Яхнівка",
            "settlement_codifier": "UA32100050810034142",
            "build_count": "910",
            "build_area": "30.30",
            "image_count": "1",
            "transfer_phase": "Перша фаза",
            "path_raster": "Yakhnivka.tif",
            "path_vt": "Yakhnivka_polygon.geojson",
            "path_vt_centroid": "Yakhnivka_centroid.geojson",
            "address": null,
            "cdate": "2024-09-11 11:34:08.061363",
            "preview": null,
            "url_metadata": "/metadata-list/3454638800490202936",
            "extent": [
                "29.633762826000066",
                "50.812355799000045",
                "29.640590858000053",
                "50.816895801000044"
            ],
            "link": "/api/tiles/undp_3454638800490202936/{z}/{x}/{y}.png"
        }
    ]
}

Коди помилок

КодНазваОпис
400Bad RequestНекоректний запит (невірний формат параметрів)
403ForbiddenДоступ заборонено (невірний токен, заблокований користувач)
404Not FoundРесурс не знайдено
422Unprocessable EntityПомилка валідації схеми запиту
429Too Many RequestsПеревищено ліміт запитів

Примітки

  • L0 - публічний доступ з обмеженнями (тільки /geo/parcel)
  • L1 - доступ для авторизованих користувачів
  • Координати приймаються у форматі WGS84 (EPSG:4326)