BYTETOOLS

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.

No API key requiredHTTPSFree tier

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
curl 'https://data.gov.ua/api/3/action/package_search?rows=1'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200 (truncated)
{
  "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

ParameterTypeRequiredDescription
qqueryOptionalFree-text Solr query. Use Ukrainian terms — the index holds no English text. бюджет
rowsqueryOptionalDatasets per page. Defaults to 20. 1
startqueryOptionalPagination offset. 0
fqqueryOptionalFilter query, for example by publishing organisation. organization:minfin
sortqueryOptionalSort 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

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.