Companies module · business/v1

Every company in Romania, in a single call.

A read-only API over the full register: 3,9 milioane companies with their trade-register identity, ANAF tax status, financial statements, public contracts, directors and sector context — all keyed on the VAT number.

You ask for the tax code and get a unified JSON profile. No scraping, no PDFs, no reconciling five different sources yourself.

One VAT number in, a full profile outapplication/json
GET /api/business/v1/firme/14399840
{
  "cui": 14399840,
  "denumire": "Dante International SA",
  "stare": "functiune",
  "tva": true,
  "caen_principal": "4754",
  "sediu": { "judet": "București" },
  "financiar": { "cifra_afaceri": 6100000000 }
}
// + tax status, procurement, people, sector context
What is in the module The data comes from official public sources and is refreshed periodically. The module is strictly read-only — it changes nothing at the source.
Companies (trade register)
3.909.449
CAEN activities
19,2 mil.
Public contracts
17,4 mil.
Financial statements
15,7 mil.
API routes
122
01 What it holds

Five sources, one profile.

Every company brings together data that normally lives in separate registers.

ONRC

Identity & register

Name, VAT number, registration code, legal form, registered office, status, incorporation date, branches and working points.

ANAF

Tax status

VAT registration and its date, cash-accounting VAT, tax inactivity, split VAT, e-Invoice, the tax vector, debts and the tax calendar.

MF

Financial statements

Annual balance sheets decoded through an indicator dictionary — turnover, profit, assets, liabilities, employees — with EUR conversion and inflation adjustment.

SEAP

Public procurement

Contracts won: contracting authority, value, CPV, year — plus per-company aggregates and authority profiles.

ONRC

People & network

Directors, shareholders, liquidators — and the graph of related companies through shared people, with path finding between two companies.

INS

Sector context

More than 20 macro indicators for the company’s CAEN sector: wages, employment, turnover, investment, foreign trade, environment.

Everything keyed on the VAT numberYou do not have to match names between sources. You query by tax code and get the full profile, already reconciled — including the registered office resolved down to locality and street through the Locations module.
02 How you query it

122 routes, one predictable pattern.

The same convention everywhere: offset pagination, filters on the query string, a JSON response with “data” and “meta”.

GET /firme/{cui}

Profile by VAT number

The unified profile of a company, or dedicated slices: contact, location, activities, tax, financials, people.

GET /firme

Search & filters

Fuzzy search by name plus filters on county, locality, CAEN, legal form, status and VAT registration.

GET /firme/{cui}/financiar

Financials

Balance sheets by year, decoded into named indicators; variants in EUR (NBR rate) and adjusted for inflation (CPI deflator).

GET /firme/{cui}/achizitii

Procurement

The company’s contracts with filters on year and type, plus an aggregate summary and a global search across the whole procurement dataset.

GET /firme/{cui}/conexe

People & graph

The company’s directors and shareholders, related companies through shared people, and the path between two companies in the graph.

GET /caen · /cpv

Classifications

CAEN (original edition + Rev.1–3) with tree and mappings, CPV, legal forms, statuses — as a complete reference.

03 Sources & updates

Official public sources only.

Every field has a clear provenance. Nothing scraped from uncertain places.

ONRC

Trade Register

Company identity, legal forms, people and branches — the core of the register.

ANAF

The tax authority

Tax and VAT status, through the official ANAF API, with a history of changes.

Ministry of Finance

Balance sheets

The annual financial statements filed, published as open data.

data.gov.ro / AADR

Procurement & funds

SEAP contracts and European funding, from the open data portals.

INS TEMPO

Macro context

Sector indicators, from the official TEMPO statistical database.

Updates & licenceThe data is refreshed periodically — tax status monthly, the register and the rest on each source’s own cycle. It is public data, served as facts; check the terms for the conditions of use.
04 Sector context

The company, placed in its sector.

Alongside its own data, every company comes with more than 20 macro indicators for its CAEN sector — from INS TEMPO, at division or section level.

Pay

Average net and gross earnings, hourly labour cost, employee compensation by sector.

Employment

Employee headcount, staff of local units, companies with employees, job vacancy rate, workplace accidents.

Sector structure

Active enterprises, turnover, gross investment and labour productivity per person.

Dynamics & foreign trade

Companies created and dissolved per year, exporting and importing companies, the value of exports.

Industrial output & environment

The value of goods sold, industrial exports and imports (for industrial sectors) and greenhouse gas emissions.

05 Use cases

What it is good for.

Anywhere you have to find, verify or put in context a company in Romania.

KYB onboarding VAT checks Autofill at invoicing Due diligence Risk scoring Lead generation Portfolio monitoring Market analysis Sector benchmarking Ownership graphs Competitor mapping Research & journalism

Do not see your case? Write to us — the data is rich enough for most B2B flows.

06 Integration

One call, the whole profile.

A Bearer token and a GET. The response is clean JSON, ready to use.

GET/api/business/v1/firme/{cui}application/json
# the full profile of a company by VAT number
curl "https://oneapi.ro/api/business/v1/firme/14399840" \
  -H "Authorization: Bearer $ONEAPI_TOKEN"

# → 200 OK
{
  "data": {
    "cui": 14399840,
    "denumire": "Dante International SA",
    "forma_juridica": "SA",
    "stare": "functiune",
    "tva": true,
    "caen_principal": "4754",
    "sediu": { "judet": "București", "localitate": "București Sectorul 6" }
  },
  "meta": { "actualizat": "2026-08-01" }
}
When the company does not exist

Predictable errors

A missing or invalid VAT number → 404 with a clear error code. The same error shape across every route.

HTTP/1.1 404 Not Found
{
  "eroare": {
    "cod": "negasit",
    "mesaj": "Firma [9999999999] negăsită."
  }
}
07 Questions

Worth knowing.

More in the frequently asked questions and in the documentation.

Yes. The search route accepts a fuzzy query by name, with filters on county, locality, CAEN, legal form, status and VAT. There is also a name→VAT matching engine for bulk reconciliation.

Start with the companies. A generous free plan, no card. You generate a token and start querying in a few minutes.
Generate a token All modules