data.gov.ua API
Free Ukrainian open data API with no key: 36,000+ datasets with a legal basis recorded on every record and file hashes on every resource. Tested example and live response.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the data.gov.ua API?
data.gov.ua is Ukraine's national open data portal, exposing a free, key-free CKAN API covering more than 36,000 datasets. Its records carry two extensions you will not find on most CKAN installs: `purpose_of_collecting_information`, naming the legal act that requires publication, and a SHA hash on every resource file.
Ukraine's catalogue is unusually rigorous about provenance. Every dataset names the order or decree that obliges its publisher to release it, in the `purpose_of_collecting_information` field — a typical value cites a numbered order of the State Judicial Administration and the amendment that revised it. Combined with `update_frequency` stated in plain words and `file_hash_sum` on each resource, this is one of the few national portals where you can prove a file has not changed since you last fetched it without downloading it again.
Everything is Ukrainian. Titles, notes, maintainer names and tag strings are Cyrillic, and there is no English mirror, so `q=court` returns nothing while `q=суд` returns plenty. Coverage leans heavily towards courts, local administrations, budget execution and registry extracts, and publication has continued through the full-scale war — the record returned by an unfiltered search was last modified on the day of testing.
Quick facts
- Base URL
https://data.gov.ua/api/3/action- Authentication
- No API key for reads. Publishing requires an account tied to a state body.
- Rate limit
- No published limit. Some agencies attach very large resource lists, so page conservatively.
- Pricing
- Free. Most datasets are Creative Commons Attribution; check `license_id` per record.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the data.gov.ua API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Search Ukrainian government datasets
GET https://data.gov.ua/api/3/action/package_search?rows=1
curl 'https://data.gov.ua/api/3/action/package_search?rows=1'const res = await fetch("https://data.gov.ua/api/3/action/package_search?rows=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://data.gov.ua/api/3/action/package_search?rows=1", timeout=20)
res.raise_for_status()
print(res.json()){
"help": "https://data.gov.ua/api/3/action/help_show?name=package_search",
"success": true,
"result": {
"count": 36944,
"sort": "score desc, metadata_modified desc",
"facets": {},
"results": [
{
"license_title": "Creative Commons Attribution",
"maintainer": "Вікторія Головач",
"relationships_as_object": [],
"tag_string": "посвідчення,фільми,кіно,національний фільм,українські фільми,нацфільм,реєстр,держкіно",
"purpose_of_collecting_information": "\"Наказ Державного агентства України з питань кіно від 06.03.2019р. №55 \"\"Про затвердження Порядку видачі (анулювання) свідоцтва національного фільму та зразку свідоцтва національного фільму\"\", Закон України \"\"Про кінематографію\"\", постанова Кабінету Міністрів України від 21.10.2015р. №835\"\" Про затвердження Положення про набори даних, які підлягають оприлюдненню у формі відкритих даних\"\".\"",
"private": false,
"maintainer_email": "holovach@usfa.gov.ua",
"num_tags": 8,
"update_frequency": "once a quarter",
"id": "999022bd-b885-4c4d-b708-80b4878e3b1b",
"metadata_created": "2023-06-15T03:35:36.667391",
"metadata_modified": "2026-08-21T07:57:59.559951",
"author": "usfa",
"author_email": "opendata@usfa.gov.ua",
"isopen": true,
"state": "active",
"version": "1.0",
"license_id": "cc-by",
"type": "dataset",
"resources": [
{
"cache_last_updated": null,
"package_id": "999022bd-b885-4c4d-b708-80b4878e3b1b",Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | query | Optional | Free-text Solr query. Use Ukrainian terms — the index holds no English text. бюджет |
rows | query | Optional | Datasets per page. Defaults to 20. 1 |
start | query | Optional | Pagination offset. 0 |
fq | query | Optional | Filter query, for example by publishing organisation. organization:minfin |
sort | query | Optional | Sort order. The API returns `score desc, metadata_modified desc` by default. metadata_modified desc |
Response fields
successboolean- CKAN's own flag. Verify it separately from the HTTP status.
result.countinteger- Total matching datasets — 36,944 unfiltered when tested.
result.sortstring- The sort actually applied, echoed back. Ukraine returns this where most CKAN installs do not.
results[].purpose_of_collecting_informationstring- The legal act mandating publication, cited by number and date. Ukraine-specific.
results[].update_frequencystring- Stated cadence in words, for example `once a year`.
results[].resources[].file_hash_sumstring- Hash of the resource file — use it to detect change without re-downloading.
results[].resources[].file_size / sizestring and integer- Two size fields that do not always agree; `size` is the authoritative byte count.
results[].maintainer / maintainer_emailstring- Named civil servant and a working contact address, populated far more consistently than on most portals.
What you can build with the data.gov.ua API
- Track Ukrainian budget execution and procurement disclosures
- Detect changed files cheaply by comparing `file_hash_sum` between runs
- Build a Ukrainian-language dataset search
- Audit which legal instrument requires a given dataset to exist
- Monitor a court or local administration for new publications
Common errors and how to fix them
Empty results
You searched in English.
Fix: The index is Cyrillic-only. Transliterate or translate the query into Ukrainian first.
HTTP 200 with success false
CKAN rejected the parameters.
Fix: Read `error.message` in the body; the status code stays 200.
Resource URL 404s while the dataset record is fine
The publishing body moved or withdrew the file.
Fix: Treat resource URLs as unstable and re-resolve them from `package_show` rather than caching them for long periods.
Mismatched `file_size` and `size`
Legacy string field alongside the numeric one.
Fix: Use the integer `size`; `file_size` is a free-text carry-over.
data.gov.ua API — frequently asked questions
Is the data.gov.ua API free?
Yes. Reads require no key and no registration. Only state bodies publishing datasets need an account.
Is the portal still being updated during the war?
Yes. The record returned by an unfiltered search at the time of testing had been modified that same day, and the catalogue holds close to 37,000 datasets.
What is purpose_of_collecting_information?
A Ukrainian extension that names the order or decree obliging the publisher to release the dataset, usually citing an issuing body, a number and a date. It gives you a legal audit trail that stock CKAN records do not carry.
Can I search data.gov.ua in English?
Not usefully. Titles, descriptions and tags are Ukrainian, so English queries return nothing. Translate the search term, or list organisations first and browse by publisher.
Tools that pair with this API
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Hash Comparer
Compare two hashes or strings side by side to check they match. Get a normalized equality verdict plus per-character diff highlighting, all offline in your browser.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
data.gov.ua is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.