Skip to content

API Analytics

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

#МетодМаршрутОписПрава доступу
1GET/analytics/agroАналіз культур посівів підприємств (пошук по тексту)L1
2GET/analytics/agro/:idАналіз культур посівів підприємств (за ID організації)L1
3GET/analytics/point/generate/:idГенерація статистики (точковий кейс)L1
4GET/analytics/point/voronoi/generate/:idГенерація полігонів Вороного (точковий кейс)L1
5GET/analytics/point/clear-dupes/:idОчистка дублів (точковий кейс)L1
6GET/analytics/point/clear/:idОчистка статистики (точковий кейс)L1
7GET/analytics/point/voronoi/clear/:idОчистка полігонів Вороного (точковий кейс)L1
8GET/analytics/point/community/:idСтатистика по ОТГ (точковий кейс)L1
9GET/analytics/point/:idСтатистика по країні (точковий кейс)L1
10GET/analytics/point-case/uploadЗавантаження даних для точкового кейсу (deprecated?)L1
11GET/analytics/polygon/clear/:idОчистка статистики (полігональний кейс)L1
12GET/analytics/polygon/community/:idСтатистика по ОТГ (полігональний кейс)L1
13GET/analytics/polygon/country/:idСтатистика по країні (полігональний кейс)L1
14GET/analytics/polygon/region/:idСтатистика по області (полігональний кейс)L1
15GET/analytics/polygon/community-list/:idСтатистика по всіх ОТГ (полігональний кейс)L1
16GET/analytics/polygon/progressПеревірка стану генерації статистики (полігональний кейс)L1
17GET/analytics/polygon/vtile/:layer/:lang/:z/:y/:xГенерація векторних тайлів (полігональний кейс)L1

1. Аналіз культур посівів підприємств

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

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

ПараметрТипОбов'язковістьОписПриклад
searchstringопціональнийПошуковий запит для фільтрації підприємств"агрофірма"
limitnumberопціональнийЛіміт записів50
pagenumberопціональнийСторінка1

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

json
{
    "total": 1,
    "items": [
        {
            "title": "ДП Лани",
            "edrpou": "23424234",
            "id": "3669244433938777593",
            "fieldsCount": 4,
            "totalArea": 992.861,
            "analysisDate": "2025-07-22",
            "notCropRotation": 1,
            "mainCrop": "Кукурудза"
        }
    ]
}

2. Аналіз культур посівів підприємств за ID організації

Метод: GET URL: /analytics/agro/:idОпис:
Права доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийID підприємства3669244433938777593

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

json
{
    "fieldsCount": 4,
    "totalArea": 992.86,
    "years": [
        {
            "year": 2021,
            "area": 675.48,
            "coverage": 0.45,
            "mainCrop": "Кукурудза"
        }
    ],
    "parcels": [
        {
            "cadastralNumber": "3220484100:10:005:0007",
            "area": "706.1706",
            "notCropRotation": 1,
            "years": [
                {
                    "year": 2021,
                    "crops": [
                        {
                            "class": "Кукурудза",
                            "crop_rotation": true,
                            "intersect_area": "348.00",
                            "intersection_percent": "79.34"
                        },
                        {
                            "class": "Соняшник",
                            "intersect_area": "143.69",
                            "intersection_percent": "50.34"
                        }
                    ]
                }
            ]
        }
    ]
}

3. Генерація статистики для точкового кейсу

Метод: GET URL: /analytics/point/generate/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

http
Event Stream

4. Генерація полігонів Вороного для точкового кейсу

Метод: GET URL: /analytics/point/voronoi/generate/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

http
Event Stream

5. Очистка дублів в статистиці точкового кейсу

Метод: GET URL: /analytics/point/clear-dupes/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

http
Event Stream

6. Очистка статистики для точкового кейсу

Метод: GET URL: /analytics/point/clear/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

http
Event Stream

7. Очистка полігонів Вороного для точкового кейсу

Метод: GET URL: /analytics/point/voronoi/clear/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

http
Event Stream

8. Отримання статистики по ОТГ для точкового кейсу

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

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

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

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

json
{
    "time": {
        "totalPOI": 1,
        "countFiltered": 24,
        "communities": 170,
        "poi": 96,
        "total": 291
    },
    "name": "Аналітика ефективності розміщення закладів  спроможної мережі охорони здоров'я (зона 10 км)",
    "nameShort": "Медичні заклади",
    "totalPOI": 21368,
    "settlementFiltered": "0",
    "communityFiltered": "0",
    "distance": 30,
    "community": {
        "totalSettlement": "9",
        "totalPOI": "42",
        "filteredPOI": "9",
        "filteredSettlement": "9",
        "communityId": "18501076278620054",
        "communityName": "Ковалівська",
        "communityCodifier": "UA32020070000027895",
        "regionName": "Київська",
        "DistrictName": "Білоцерківський",
        "geom": {
            "type": "MultiPolygon",
            "coordinates": []
        }
    },
    "poi": [
        {
            "poi_id": "3768",
            "geom": {
                "type": "Point",
                "coordinates": []
            },
            "title": "ПЗ Пологи",
            "address": "Васильківський район, Пологи",
            "rows": [
                {
                    "name": "Пологи",
                    "codifier": "UA32020070060063134",
                    "type": "село",
                    "distance": 100.2,
                    "geom": {
                        "type": "Point",
                        "coordinates": []
                    },
                    "route_geom": {
                        "type": "LineString",
                        "coordinates": []
                    }
                }
            ]
        }
    ]
}

9. Отримання статистики по країні для точкового кейсу

Метод: GET URL: /analytics/point/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3429355753738077469

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

json
{
    "meta": {
        "totalPOI": "13814",
        "remoteCommunities": "679",
        "remoteSettlements": "2243",
        "actualDate": "2025-04-15",
        "pointCaseId": "3429355753738077469",
        "name": "Аналітика ефективності розміщення закладів  спроможної мережі охорони здоров'я (зона 10 км)",
        "nameShort": "Медичні заклади",
        "descMap": "Тут ви можете знайти актуальну інформацію про розміщення закладів  спроможної мережі охорони здоров'я (зона 10 км)",
        "distance": "10"
    },
    "rows": [
        {
            "id": "3546194569869657752",
            "codifier": "UA01020410000012183",
            "name": "Табачненська",
            "region": "Автономна Республіка Крим",
            "type": "community",
            "district": "Бахчисарайський",
            "totalPOI": "0",
            "totalSettlements": "0",
            "remoteSettlements": "0",
            "status": 1
        }
    ]
}

10. Завантаження даних для точкового кейсу аналітики (deprecated?)

Метод: GET URL: /analytics/point-case/uploadПрава доступу: L1

Параметри (Body): multipart/form-data з файлом даних

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

json
{
  "success": true,
  "message": "Дані успішно завантажено",
  "upload_id": "upload_001",
  "records_imported": 15234,
  "file_name": "data_2024.csv"
}

11. Очистка статистики для полігонального кейсу

Метод: GET URL: /analytics/polygon/clear/:id
Права доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3559901252630349225

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

http
Event Stream

12. Отримання статистики по ОТГ для полігонального кейсу

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

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3559901252630349225

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

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

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

json
{
    "time": {
        "params": 76,
        "settlement": 47,
        "community": 0,
        "data": 246
    },
    "name": "Аналіз земельних ділянок (Категорії)",
    "nameShort": null,
    "totalArea": 21144.77,
    "indicatorKey": "category_code",
    "indicatorName": "Призначення земельної ділянки",
    "categoryId": "3ee14e2e8c43",
    "categoryItems": [
        {
            "id": "3559901252630349225",
            "name": "Аналіз земельних ділянок (Категорії)",
            "name_short": null
        }
    ],
    "options": [
        {
            "id": "0",
            "text": "Не визначено",
            "color": "rgba(140, 129, 133, 0.56)",
            "hide": false
        },
        {
            "id": "100",
            "text": "Землі сільськогосподарського призначення",
            "color": "rgba(255, 215, 0, 1)",
            "hide": false
        },
        {
            "id": "500",
            "text": "Землі рекреаційного призначення",
            "color": "rgba(255, 140, 0, 1)",
            "hide": false
        }
    ],
    "community": {
        "communityId": "830",
        "codifier": "UA32020070000027895",
        "communityName": "Ковалівська",
        "communityCodifier": "UA32020070000027895",
        "regionName": "Київська",
        "DistrictName": "Білоцерківський",
        "geom": {}
    },
    "data": [
        {
            "key": "100",
            "count": 9102,
            "area": "18783.3074173132946634934",
            "percent": "0.88831901301500495517"
        },
        {
            "key": "500",
            "count": 5,
            "area": "3.6776203863695549",
            "percent": "0.00017392571176535380"
        }
    ]
}

13. Отримання статистики по країні для полігонального кейсу

Метод: GET URL: /analytics/polygon/country/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3559901252630349225

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

json
{
    "time": {
        "case": 15,
        "data": 28,
        "total": 43
    },
    "name": "Аналіз земельних ділянок (Категорії)",
    "nameShort": null,
    "categoryId": "3ee14e2e8c43",
    "categoryItems": [
        {
            "id": "3559901252630349225",
            "name": "Аналіз земельних ділянок (Категорії)",
            "name_short": null
        }
    ],
    "actualDate": "2025-02-06",
    "generateDate": "2026-06-12",
    "totalAOI": 26943763,
    "totalArea": 46468241.13,
    "indicatorKey": "category_code",
    "indicatorName": "Призначення земельної ділянки",
    "options": [
        {
            "id": "100",
            "text": "Землі сільськогосподарського призначення",
            "color": "rgba(255, 215, 0, 1)",
            "hide": false
        },
        {
            "id": "300",
            "text": "Землі природно-заповідного та іншого природоохоронного призначення",
            "color": "rgba(43, 147, 72, 1)",
            "hide": false
        }
    ],
    "data": [
        {
            "key": "300",
            "count": 5564,
            "area": "830407.88",
            "percent": "0.02"
        },
        {
            "key": "100",
            "count": 17331792,
            "area": "33119598.48",
            "percent": "0.71"
        }
    ]
}

14. Отримання статистики по області для полігонального кейсу

Метод: GET URL: /analytics/polygon/region/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3559901252630349225

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

ПараметрТипОбов'язковістьОписПриклад
codifierstringопціональнийКод областіUA32

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

json
{
    "time": {
        "case": 16,
        "data": 71,
        "region": 1542,
        "total": 1629
    },
    "name": "Аналіз земельних ділянок (Категорії)",
    "nameShort": null,
    "totalArea": 2418151.80,
    "indicatorKey": "category_code",
    "indicatorName": "Призначення земельної ділянки",
    "options": [
        {
            "id": "0",
            "text": "Не визначено",
            "color": "rgba(140, 129, 133, 0.56)",
            "hide": false
        },
        {
            "id": "100",
            "text": "Землі сільськогосподарського призначення",
            "color": "rgba(255, 215, 0, 1)",
            "hide": false
        }
    ],
    "region": {
        "id": "13",
        "name": "Київська",
        "codifier": "UA32000000000030281",
        "geom": {}
    },
    "data": [
        {
            "indicator_id": "100",
            "count": 1210989,
            "area": 1413053.58,
            "percent": 0.58
        },
        {
            "indicator_id": "0",
            "count": 25401,
            "area": 7034.37,
            "percent": 0.01
        }
    ]
}

15. Отримання статистики по всіх ОТГ для полігонального кейсу

Метод: GET URL: /analytics/polygon/community-list/:idПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
idstringобов'язковийІдентифікатор набору даних3559901252630349225

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

json
{
    "count": 1767,
    "categoryId": "3ee14e2e8c43",
    "categoryItems": [
        {
            "id": "3559901252630349225",
            "name": "Аналіз земельних ділянок (Категорії)",
            "name_short": null
        }
    ],
    "rows": [
        {
            "codifier": "UA12060130000012028",
            "area": "25320.37",
            "count": "6210"
        }
    ]
}

16. Перевірка стану генерації статистики для полігонального кейсу

Метод: GET URL: /analytics/polygon/progressПрава доступу: L1

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

json
{
    "skipped": [
        "3559901252630349223"
    ],
    "errored": [
        "3559901252630349224"
    ],
    "finished": [
        "3559901252630349225"
    ],
    "next": {
        "id": "3559901252630349226",
        "table": "data.parcel",
        "count": 0,
        "dbname": "postgres",
        "host": "127.0.0.1",
        "port": 5432
    }
}

17. Генерація векторних тайлів полігонального кейсу

Метод: GET URL: /analytics/polygon/vtile/:layer/:lang/:z/:y/:xПрава доступу: L1

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

ПараметрТипОбов'язковістьОписПриклад
layerstringобов'язковийІдентифікатор шару даних3559901252630349225
langstringобов'язковийМова локалізації (ua, en)ua
zstringобов'язковийРівень масштабу (zoom)1
ystringобов'язковийКоордината Y тайлу1
xstringобов'язковийКоордината X тайлу + Extension1.png

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

http
HTTP/1.1 200 OK
Content-Type: application/x-protobuf
Content-Encoding: gzip

[Mapbox Vector Tile data (VMT)]

Коди помилок

КодНазваОпис
400Bad RequestНекоректний запит (відсутні обов'язкові параметри)
401UnauthorizedВідсутня авторизація
403ForbiddenДоступ заборонено
404Not FoundДані або ідентифікатор не знайдено
409ConflictОперація неможлива (наприклад, генерація вже виконується)
429Too Many RequestsПеревищено ліміт запитів
500Internal Server ErrorПомилка сервера

Примітки

  • L1 - доступ для авторизованих користувачів
  • Точковий кейс (POI) - аналітика на основі точкових об'єктів (точки інтересу)
  • Полігональний кейс (Polygon) - аналітика на основі полігональних об'єктів (ділянки, райони)
  • Полігони Вороного (Voronoi diagrams) - геометричне розбиття площини на області, найближчі до заданих точок
  • Генерація статистики може бути ресурсоємною операцією, рекомендується використовувати ендпоїнт /analytics/polygon/progress для моніторингу стану