API

API (інтерфейс програмування додатків) (англ. Application programming interface) - набір готових функцій, що надаються порталом opendata.rada.gov.ua для обміну даними та їх використання у зовнішніх програмних продуктах. Використовується програмістами і журналістами для аналізу даних і написаний додатків на базі інформації, доступної на opendata.rada.gov.ua

Ідентифікатор датасету - унікальний номер набору даних. За цим номером можна завжди знайти конкретний набір даних, навіть якщо зміниться назва або адреса набору даних на сайті.

Ви можете завантажити набір скориставшись інтерфейсом (кнопка "Завантаження") або отримати по API.

Для того, щоб отримати файл в форматі xml, необхідно перейти за посиланням та вказати “Ідентифікаційний номер” набору даних, який відображається при відкритті обраного набору даних, а також номер ревізії, якщо необхідно отримати попередню версію набору даних:

opendata.rada.gov.ua/?q=api/action/datastore/search&resource_id=ідентифікаційний номер набору даних&revision_id=номер ревізії

Для того, щоб забрати файл в форматі json, необхідно додати до запиту .json [.../search&resource_id=...]

opendata.rada.gov.ua/?q=api/action/datastore/search.json&resource_id=ідентифікаційний номер набору даних&revision_id=номер ревізії

Якщо revision_id не передавати, то поверне останній (актуальний) варіант набору даних.

Разом з тим, за допомогою Datastore API, існує можливість опитувати сховище даних, отримувати результати, фільтрувати їх і здійснювати повнотекстовий пошук по ресурсам та датасетам.

site_read

Повертає true якщо API платформи доступно для читання.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/site_read

data.json

Більше інформації тут.

Приклад: http://opendata.rada.gov.ua/?q=data.json

revision_list

Повертає список ID версій ресурсів.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/revision_list

package_list

Повертає список ID наборів даних.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/package_list

current_package_list_with_resources

Повертає список наборів даних і їх ресурсів.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/current_package_list_with_resources

package_show

Повертає метадані про датасета і його ресурсах.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/package_show?id=[id of resourse]

package_revision_list

Повертає список версій (revisions) набору даних.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/package_revision_list?id=[id of resourse]

resource_show

Повертає метадані про ресурс.

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/resource_show?id=[id of resourse]

group_list

Повертає список груп (тематичних хабів).

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/group_list?order_by=name&all_fields=TRUE

group_package_show

Повертає ID наборів даних, що належать групі (тематичного хабу).

Приклад: http://opendata.rada.gov.ua/?q=api/3/action/group_package_show?id=[id of resourse]

Сховище даних (Datastore API) опитується по URL: http://opendata.rada.gov.ua/?q=api/action/datastore/search

Параметри запиту

Параметр Опис
resource_id (mixed) ID ресурсу у вигляді рядка, або ID кількох ресурсів у вигляді масиву, за якими йде пошук
Наприклад:
json - http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=f7d5e93f-956b-48e3-9684-2158e3e99238
xmlhttp://opendata.rada.gov.ua/api/action/datastore/search.xml?resource_id=f7d5e93f-956b-48e3-9684-2158e3e99238
filters (mixed) масив або рядок умов, за якими робиться вибірка
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=f7d5e93f-956b-48e3-9684-2158e3e99238&filters[name]=Безпартійний, де [name] - назва стовбця набору даних, Безпартійний - значення, яке містить
q (string) або
query (string)
повнотекстовий запит
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&query=18089
limit (int) максимальна к-ть рядків на повернення. Значення за замовчуванням: 100 рядків
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&filters[mp_id]=18089&limit=3
fields (array or comma separated string) повертаються поля. Значення за замовчуванням: всі поля в первісному порядку
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&fields=assistant_fullname&limit=10
sort (string) сортування за назвами полів, що вказуються через кому
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&fields=assistant_fullname&limit=10&sort[assistant_fullname]=asc
join (array) масив полів для вибірки даних з декількох ресурсів одночасно

Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id[fir]=f7d5e93f-956b-48e3-9684-2158e3e99238&resource_id[sec]=f7d5e93f-956b-48e3-9684-2158e3e99238&filters[fir][name]=Безпартійний&join[fir]=name&join[sec]=name

У разі, якщо існує два і більше наборів, які пов'язані певним чином, то за допомогою параметра 'join' ми можемо об'єднати їх дані. У запиті вказується ID кожного ресурсу (набору даних), при цьому для кожного з них вказується алиас (псевдонім), в нашому випадку це 'fir' і 'sec'. Ми можемо відфільтрувати рядки, які нам потрібно отримати, для цього можна використовувати параметр filters. Перше значення в квадратних дужках [fir] вказує на потрібний ресурс, друге значення [firstname] - назва стовпчика (поля), після знака одно вказано значення. Далі вказується для кожного ресурсу параметр join [<алиас ресурсу>], після знаку рівності вказується то поле ресурсу, значення якого об'єднує даний ресурс з іншими, в нашому випадку це поле 'firstname'. В результаті для кожного запису будуть представлені всі вибрані поля (або взагалі все, якщо не було конкретно вказано, які поля потрібно вибирати) з кожного ресурсу. У разі, якщо назви полів з різних ресурсів співпадуть, то буде вибрано значення поля з останнього зазначеного в запиті ресурсу.

 

Значення, що повертаються

Значення Опис
fields (list of fields) поля, колонки та їх метадані
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&fields=mp_id,assistant_fullname
offset (int) параметр, що дозволяє вказувати кількість наборів даних, на який буде зміщений результат від початку списку
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=f7d5e93f-956b-48e3-9684-2158e3e99238&offset=3
limit (int) значення обмеження (максимального кількості рядків) в запиті
Наприклад: http://opendata.rada.gov.ua/api/action/datastore/search.json?resource_id=a5d6c400-7ea1-4320-8792-205a5f6f1da5&filters[mp_id]=18086&limit=3
count або total (int) кіл-сть записів повертається за запитом
records (list of dictionaries) список результатів запиту