Official data · ONRC · ANAF · Ministry of Finance

Lists of Romanian companies: who they are, what they do, how to reach them

Pick what the firms do and the county, see how many there are, and download the list with each firm's address, website, the phone it declared to ANAF, its revenue and headcount, in a file that opens in Excel.

Sales & lead generation

Company lists in the browser. Pick an activity and a county, filter by revenue, headcount and VAT, and download the list for Excel (CSV). No code.

Make a free list →

You sign in with your email: no password, no card.

Developer? API and MCP

Free API key. 25 lookups a day for an email address, no payment, over REST or the MCP server in Claude and Cursor.

Get my free key →

The API, its endpoints and examples

Example list: electrical installation firms (CAEN 4321) by county →

What's inside

DatasetRecords
Companies4,214,297
CAEN activity records19.53M
Legal representatives3.69M
Company statuses4.66M
Financial statements (Ministry of Finance)2008–2025 · 13.51M filings
ANAF fiscal layer (VAT, main activity, phone)2.03M firms
Registry versionfirme-02-09-2026 (published 3 September 2026, 47 days old)

Romanian company registry API (ONRC) for developers and AI agents

Free, read-only JSON access to Romania's official business registry: every registered company, its CAEN activities, legal representatives and status, 18 years of financial statements (2008–2025) with ratios and peer benchmarks, plus VAT status and main activity from ANAF.

Free · no auth for 5 lookups/day Read-only

Examples: company data by CUI, ONRC and ANAF checks, export by CAEN code →

Endpoints

Every endpoint, with examples and the parameters: API docs.

EndpointDescription
GET /lookup_business?query=<name|CUI>&max_results=NSearch companies by name or tax code (CUI).
GET /lookup_director?name=<name>&max_results=NFind companies by director / legal-representative name.
GET /lookup_by_category?category=<topic|CAEN code>&county=X&max_results=NLead lists by what a firm does: a curated topic (artificial intelligence, cybersecurity, software, …) or a raw CAEN activity code / comma-separated code list (6201, 6201,6210), optionally narrowed to one county. Newest registrations first.
GET /lookup_by_category?…&min_revenue=&min_employees=&vat_payer=true&main_activity_only=true&format=csvNarrow the list: revenue and headcount bands from the latest filing, VAT payers (ANAF), main activity only; format=csv downloads it as a spreadsheet.
GET /financials/<CUI>Every filed year since 2008: revenue, profit, headcount, balance-sheet lines and ratios per year, growth and CAGR.
GET /financials/<CUI>/ratiosMargins, solvency, liquidity, a 0–100 health score with its parts, red flags, and percentiles against firms with the same activity and county.
GET /topicsThe curated topics and the CAEN code sets behind them.
GET /docsInteractive OpenAPI docs (Swagger UI).
GET /healthLiveness check.

Free during launch. Every endpoint and filter is free today, within the daily limit. When the paid plans go live, the full 2008–2025 financial history, ratios, health score and peer percentiles, the revenue / headcount / VAT filters, CSV export and lists longer than 25 rows move to Pro (€9/month ≈ RON 47.96, 500 lookups a day); Business (€29/month ≈ RON 154.53) gives 5,000 lookups a day. Free keeps the company profile, status and risk, ANAF data, the latest year's figures and lists of up to 25 rows. See all plans. The RON amounts are indicative, at the BNR rate of 20 October 2026 (€1 = RON 5.3285); you pay in euros.

Try it

No key needed for a few lookups a day. A free key gives you 25 a day: get it in ten seconds at /start and send it as an X-API-Key header.

# search by company name
curl "https://leadgen.adrianhomelab.com/lookup_business?query=DEDEMAN&max_results=3"

# search by CUI (tax code)
curl "https://leadgen.adrianhomelab.com/lookup_business?query=2816464"

# find companies by director name
curl "https://leadgen.adrianhomelab.com/lookup_director?name=popescu"

# lead list by CAEN activity code (software), narrowed to one county
curl "https://leadgen.adrianhomelab.com/lookup_by_category?category=6201&county=Hunedoara&max_results=25"

# the curated topics (AI, cybersecurity, retail, …) and their CAEN codes
curl "https://leadgen.adrianhomelab.com/topics"

Sample response

Show the response for lookup_business?query=2816464
{
  "query": "2816464",
  "total": 1,
  "returned": 1,
  "results": [
    {
      "companyName": "DEDEMAN SRL",
      "cui": "2816464",
      "registrationCode": "J1992002621040",
      "legalForm": "SRL",
      "county": "Bacău",
      "website": "www.dedeman.ro",
      "phone": "0234513330",
      "caenActivities": [ { "code": "4752", "activity": "Comerț cu amănuntul al articolelor de fierărie, …", "main": true } ],
      "directors": [ "PAVĂL I. DRAGOŞ", "PAVĂL ADRIAN" ],
      "status": [ { "code": "1048", "name": "funcțiune" } ],
      "anaf": { "mainCaen": "4752", "vatPayer": true, "eFactura": true, "inactive": false },
      "latestFinancials": { "year": 2025, "revenue": 13157835535, "netResult": 1635337205, "employees": 12702 },
      "risk": { "level": "ok", "label": "no distress signals", "reasons": [] }
    }
  ]
}

Sample: lead list by CAEN code

Ask by activity instead of by name — 4321 is Lucrări de instalații electrice — then narrow the list: legal_form=SRL, a revenue band from the latest filing, VAT payers only, and main_activity_only=true to keep firms that declare the code as their main activity rather than one of dozens of authorised ones. active_only is on by default and drops struck-off, insolvent, dissolving and suspended firms, and those ANAF declares fiscally inactive. Add format=csv for a spreadsheet.

Show the request and response
GET /lookup_by_category?category=4321&county=Cluj&legal_form=SRL&min_revenue=1000000&vat_payer=true&max_results=1

{
  "caenCodes": [ "4321" ],
  "county": "Cluj",
  "filters": { "legalForm": "SRL", "activeOnly": true, "minRevenue": 1000000, "vatPayer": true, … },
  "total": 1,
  "returned": 1,
  "results": [
    {
      "companyName": "…",
      "cui": "…",
      "county": "Cluj",
      "phone": "…",
      "caenActivities": [ { "code": "4321", "activity": "Lucrări de instalații electrice", "main": true } ],
      "anaf": { "mainCaen": "4321", "vatPayer": true, "eFactura": true, "inactive": false },
      "latestFinancials": { "year": 2025, "revenue": 2350000, "employees": 14 },
      "risk": { "level": "ok", "reasons": [] }
    }
  ]
}

Contacts: results carry the phone the firm declared to ANAF, if it declared one. The registry has no email; for firms with a website on file (has_website=true), the MCP tool enrich_company reads the firm's own site for the contacts it publishes.

Where the data comes from

The registry data comes only from the official ONRC dataset on data.gov.ro, the Ministry of Finance filings and ANAF's public web service, loaded as published and indexed for fast, diacritic-insensitive search. One exception: when you ask for a firm's contacts, we read that firm's own public website.

Use it from an MCP client

There's also a full MCP server (business lookup, contact extraction, domain/WHOIS audit) at https://leadgen-mcp.adrianhomelab.com/mcp. Install it with one command, via Smithery:

npx @smithery/cli install @oaida-adrian-3qb2/leadgen-mcp

Or add it directly: https://leadgen-mcp.adrianhomelab.com/mcp · listed on Smithery · Apify actor for no-code access.

Links

Frequently asked questions

How do I get a list of Romanian companies by activity and county?

In the Leadgen app: pick what the firms do (a field or a CAEN code) and the county, see how many active firms there are, narrow by revenue, headcount and VAT, and download the list as a CSV that opens in Excel, with the phone each firm declared to ANAF, its revenue and headcount from the latest filing. Sign in with your email address; no card.

Is there a free API for Romanian company data (ONRC)?

Yes. Leadgen is a free, read-only JSON API over Romania's official ONRC registry, built from the open-data snapshot on data.gov.ro. You get 5 lookups a day without a key and 25 a day with a free key issued for an email address.

How do I look up a Romanian company by CUI or name?

Call GET /lookup_business?query=<CUI or name>. An all-digit query matches the CUI (tax code); a name query is diacritic-insensitive full-text search, so 'paval' finds 'PAVĂL'. The response carries the registration code, legal form, address, CAEN activities, directors and status.

Can I get a list of companies by CAEN code and county?

Yes. GET /lookup_by_category?category=6201&county=Cluj returns the firms on that CAEN activity code — one code, a comma-separated list, or a curated topic such as 'software' — newest registrations first, with filters for legal form, active status, website on file, revenue and headcount bands, VAT payers and main activity; add format=csv for a spreadsheet.

How fresh is the data, and where does it come from?

From the dataset the Romanian Trade Register (ONRC) publishes on data.gov.ro, loaded as published. The registry version and its publication date are shown in the table above and on /health. Registry data is never scraped and never bought from a third-party vendor; the only website we read is the firm's own, when you ask for its contacts.

Does it include financial statements (balance sheet, turnover, profit)?

Yes: 18 fiscal years, 2008 to 2025, from Ministry of Finance filings. GET /financials/<CUI> (or the MCP tool lookup_financials) returns revenue, profit, headcount and balance-sheet lines for every year with ratios and growth; /financials/<CUI>/ratios adds a 0–100 health score with its parts and percentiles against peers in the same activity and county.

Are there email addresses and phone numbers?

Phone numbers, often: each result carries the phone the firm declared to ANAF, if it declared one. Emails are not in any official register; for the firms with a website on file (has_website=true), the MCP tools enrich_company and extract_contacts read the firm's own site for the contacts it publishes.

Can I use it from Claude, Cursor or another MCP client?

Yes. Add https://leadgen-mcp.adrianhomelab.com/mcp as a Streamable HTTP server, with one command via Smithery or a JSON entry in your client's config. Same data and the same free limits; a key goes in the Authorization header.

What are the rate limits, and what if I need more?

5 lookups a day for each IP address without a key and 25 a day with a free key, reset at 00:00 UTC (02:00 or 03:00 in Romania). For bulk or higher daily volume write to contact@adrianhomelab.com; the free tier is not meant for re-publishing the dataset.

Start now

Sales & lead generation

Company lists in the browser. Pick an activity and a county, filter by revenue, headcount and VAT, and download the list for Excel (CSV). No code.

Make a free list →

You sign in with your email: no password, no card.

Developer? API and MCP

Free API key. 25 lookups a day for an email address, no payment, over REST or the MCP server in Claude and Cursor.

Get my free key →

The API, its endpoints and examples

Get product news

A few emails a year about new data and features, only if you ask.

Every email has a one-click unsubscribe link. What we store and why: privacy.