Messy open data, one clean API.
Stop parsing CSVs, Excel exports, broken encodings, and schemas that change every year. Canovix serves data.gov.ro as one predictable, typed REST API — filter, sort, paginate, ship.
The same dataset, before and after.
Every publisher exports differently — ragged headers, mixed encodings, thousands separators in three formats. One universal rule set normalizes all of it.
The data is public. Using it isn't easy.
Everything below is already free on data.gov.ro — as files. Canovix does the engineering between a download link and a dependable API, once, for everyone.
- CSV and Excel downloads, one file at a time
- A different schema for every publisher
- Manual cleaning after every update
- Field names that change year to year
- Broken encodings, five spellings of NULL
- Raw files — no queries, no API
- One JSON REST API for everything
- Standardized schema and types
- Consistent snake_case naming
- Filtering, sorting, and pagination built in
- Validated values, real NULLs, clean text
- Ready to integrate in minutes
From scattered files to one endpoint.
Built to be boring, on purpose.
One schema, every dataset
Elections, school results, vehicle registries, budgets — all behind one predictable REST contract with consistent field names, types, filters, and pagination.
Standardized by rule
A single universal rule set cleans every dataset: null tokens, padding rows, both thousands conventions, Romanian date formats. No per-dataset exceptions.
Provenance on every row
Each dataset carries its ingestion record — source URL, checksum, pipeline version, import date — so you can cite exactly which government file a number came from.
Everything is a query parameter.
Learn the contract once — every one of the datasets answers to the same six primitives.
Filtering
Any column is a filter, with Stripe-style operators: [gte], [lt], [in], [contains]. Unknown parameters are rejected, not ignored.
Sorting
Multi-column sort with a - prefix for descending. Invalid sort fields return a 422, never a silent default.
Pagination
Offset pages with totals for UIs, opaque cursors for cheap deep iteration over millions of rows.
Full-text search
Diacritic-insensitive search across the whole catalog — somaj finds șomaj.
Field selection
Project only the columns you need and keep payloads small.
Metadata & discovery
Every dataset self-describes: columns, types, row count, sample rows, and the provenance of its latest ingestion.
See a response before you sign up.
Real endpoints, sample responses. Pick a dataset, run the request, read the exact envelope your code will get — then mint a key and run it for real.
{
"data": [
{ "county": "CLUJ", "manufacturer_canonical": "VOLKSWAGEN", "vehicle_count": 27877 },
{ "county": "CLUJ", "manufacturer_canonical": "DACIA", "vehicle_count": 31402 }
],
"pagination": { "total": 210 , "count": 2 , "has_next": true , "next_offset": 2 },
"meta": { "dataset": "vehicle_registry", "source": "https://data.gov.ro/dataset/parc-auto-romania" }
}Every dataset behind one contract.
Baccalaureate results 2025
108k rowsVehicle registry
383k rowsLocal election results 2020
673k rowsRegistered unemployment
monthlyPublic enterprises
1.7k rowsSIRUTA territorial registry
17k rowsCAEN nomenclature
decode tableVerified ETS emissions
yearlyEvaluarea Națională 2024
yearlyBathing water quality
monitoringAsylum applications
2019Anghel Saligny gas program
investmentsBuilt for people who ship.
Developers
One predictable contract instead of two hundred file formats. Generate a client from the OpenAPI spec and never write another CSV parser.
AI agents
Machine-readable discovery at /v1/datasets: agents can enumerate the catalog, inspect schemas, and query clean JSON — no scraping, no guessing.
Civic tech
Build dashboards and watchdog tools on validated data, with provenance behind every number you publish.
Journalists
Filter, sort, and export to CSV in one request — and cite the exact government file, checksum included, behind every figure.
Researchers
Bulk NDJSON and CSV exports with typed columns and stable schemas, so year-over-year analysis doesn't start with cleanup.
Startups
Prototype on the free tier today, scale on metered plans later — without budgeting an engineer for data cleaning.
Production-grade by default.
Start free. Pay for volume, nothing else.
Every plan includes the full catalog — every dataset, filtered exports, and provenance. Plans differ only in how much you can call.
Every plan runs on an account — create a free one (up to 5 keys and a live usage dashboard, no card) and start calling right away. For a paid plan, create the account then email us to upgrade: your existing keys move to the new limits in place, nothing changes in your integration. Self-serve billing is on the way; Enterprise is bespoke, so talk to us.
Live in three requests.
Start free. Your keys, your dashboard.
Create a free account to mint up to 5 API keys, revoke them anytime, and watch your usage live — 10k calls a month, no card required.
- Keys are shown once and stored only as hashes
- Live usage chart — per day and against your quota
- Delete your account (and all its data) anytime
Questions, answered.
How fresh is the data?
Every response is served from the latest successful ingestion of its source file, and each dataset's provenance (source URL, checksum, import date) is available at /v1/datasets/{id}. Sources are re-ingested as they change upstream — most government datasets update monthly or yearly.
What does the free tier include?
10,000 calls a month across every dataset at 60 requests/minute, with up to 5 API keys and a live usage dashboard — no card required. Paid plans raise both limits, starting at €19/month for 100,000 calls.
How do I upgrade to a paid plan?
Create a free account, then email contact@canovix.ro with the plan you want — we upgrade your account and every key on it moves to the new limits in place, so nothing changes in your integration. Self-serve billing is on the roadmap; Enterprise is bespoke, so contact us.
How do I authenticate?
Create a free account, mint an API key in your dashboard, and send it as a bearer token in the Authorization header (Authorization: Bearer rok_…). Only a hash of the key is stored server-side.
Is the data official?
Yes — it comes straight from data.gov.ro's open datasets under their open licenses. We standardize names, types, and formats, but never alter the underlying figures; rows that fail validation are quarantined, not silently fixed.
Can I get the raw data too?
Every dataset has a streaming export endpoint (CSV or NDJSON) that accepts the same filters as the list endpoint — one request, no pagination.
Ship on Romanian open data today.
Free account — 10k calls a month, up to 5 keys, no card. Sign up, mint a key in your dashboard, and make your first call in minutes.