Leadgen - Romanian company registry (ONRC)

Search 4.2M Romanian companies by name, CUI, CAEN or county: ANAF status, 18 years of financial statements, website contacts. Free tier, no signup.

Hosted MCP Server

npx add-mcp 'https://leadgen-mcp.adrianhomelab.com/mcp?src=mcp-registry'

Installs into Claude Code, Codex, Cursor and more

Documentation

Referința API — registrul companiilor din România (ONRC)

Fiecare endpoint, cu exemple pe care le poți rula direct din pagină. Trimite cheia în header-ul X-API-Key. Serverul MCP acceptă cheia ta fie în Authorization: Bearer, fie în X-API-Key. Fără cheie ai 5 interogări pe zi pentru fiecare adresă IP; o cheie gratuită de la /start îți dă 50; ziua se resetează la 00:00 UTC (02:00 sau 03:00, ora României). Fiecare răspuns 401, 402 sau 429 conține get_a_key. GET /usage îți arată cât ți-a mai rămas (nu se numără ca interogare), iar fiecare răspuns la o interogare are headerele RateLimit-Limit, RateLimit-Remaining și RateLimit-Reset (secunde până la resetare).

Gratuit în perioada de lansare. Toate endpoint-urile și filtrele sunt gratuite azi, în limita zilnică. Când pornesc planurile plătite, istoricul financiar complet 2008–2025, indicatorii, scorul de sănătate și percentilele, filtrele după cifră de afaceri, angajați și TVA, exportul CSV și listele mai lungi de 25 de rânduri trec în Pro (45 lei/lună, 500 de interogări pe zi); Business (145 lei/lună) are 5.000 de interogări pe zi. Free păstrează profilul companiei, starea și riscul, datele ANAF, cifrele ultimului an și listele de până la 25 de rânduri. Vezi toate planurile.

Exemple pentru date firme după CUI, verificare ONRC și ANAF și export după CAEN →

Loturi, potrivire și răspunsuri compacte

POST /lookup_companies primește până la 100 de CUI-uri, iar POST /match_companies până la 500 de înregistrări (nume, județ, domeniu sau CUI); fiecare răspunde cu un rând pentru fiecare intrare, în aceeași ordine. Fiecare rând se numără ca o interogare: un lot mai mare decât ce ți-a rămas azi primește răspuns pentru rândurile care încap, iar restul sunt marcate not_processed (nu se numără; partial: true, processed, remaining: trimite-le din nou după resetare); fără nimic rămas, lotul e refuzat (429). Rândurile greșite nu se numără (câmpul metering arată ce s-a numărat). GET /find_company_by_domain găsește compania din spatele unui site. Adaugă fields=companyName,cui,county,risk sau compact=true la o listă ca să primești doar acele câmpuri. /record/{cui} este o fișă datată, cu surse, de tipărit sau salvat ca PDF (?format=json pentru date); fiecare rând cu o companie trimite la ea prin url (null pentru persoane fizice autorizate și alte persoane fizice), iar o listă de companii are appUrl, aceeași listă în aplicație. Uneltele MCP cu aceleași nume se numără la fel.

Corelează-ți lista

Ai o listă cu nume de companii, coduri CUI sau site-uri web (un fișier exportat din CRM, o foaie de calcul)? Nu le căuta unul câte unul: POST /match_companies corelează până la 500 de rânduri pe apel și răspunde cu un rând pentru fiecare intrare, în aceeași ordine, cu compania găsită, cât de sigură e potrivirea (confidence) și pe ce s-a bazat (matchedOn). Fiecare rând se numără ca o interogare (o cheie gratuită are 50 pe zi).

curl -X POST -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  "https://leadgen.adrianhomelab.com/match_companies" \
  -d '{"rows": [{"name": "Dedeman", "county": "Bacau"}, {"cui": "RO14399840"}, {"domain": "emag.ro", "ref": "crm-42"}], "compact": true}'

Site-uri și domenii

GET /extract_contacts?website= citește până la max_pages pagini dintr-un site (1-20, implicit 5) și găsește e-mailuri, telefoane și profiluri sociale. GET /enrich_company?cui= întoarce fișa din registru plus contactele de pe site-ul companiei, fiecare cu un grad de încredere și o sursă (din cache; refresh=true citește site-ul acum). GET /lookup_domain?domain= dă WHOIS, DNS și auditul SPF/DMARC. Fiecare apel este o interogare. Se citesc doar site-uri publice: localhost, un IP privat sau un nume intern primesc 400, la fel un site care nu poate fi citit; acestea nu se numără. Uneltele MCP cu aceleași nume răspund la fel.

Fără cod: un workflow n8n

Descarcă workflow-ul n8n (îl imporți în n8n cu Import from file): citește un CSV sau un Google Sheet, trimite rândurile cu CUI la POST /lookup_companies și pe celelalte (nume, județ, site) la POST /match_companies, cu cheia ta în header-ul X-API-Key (credențial Header Auth), și scrie lista înapoi cu CUI-ul, starea, riscul, telefonul, mărimea fiecărei companii și încrederea potrivirii. Fiecare rând se numără ca o interogare, ca mai sus. Pașii, în română și engleză, sunt în README-ul lui (docs/integrations/n8n).

Skill pentru Claude

Skill-ul Leadgen pentru Claude (format Agent Skills; sursa pe GitHub) îi spune lui Claude ce unealtă să folosească pentru o listă de companii, o verificare înainte de o afacere, potrivirea unei liste de clienți sau monitorizare, și cum să răspundă: citează data snapshot-ului, spune ce nu s-a verificat, numește sursa datelor. claude.ai / Claude Desktop: Settings → Capabilities → Skills → încarcă arhiva zip. Claude Code: dezarhiveaz-o în ~/.claude/skills/. Merge împreună cu serverul MCP de mai sus.

Exemple de cod

curl -H "X-API-Key: lg_your_key" "https://leadgen.adrianhomelab.com/lookup_business?query=DEDEMAN&max_results=3"

Conectează un client MCP

Rulează o dată într-un terminal (adaugă --scope user ca să-l ai în toate proiectele):

claude mcp add --transport http leadgen https://leadgen-mcp.adrianhomelab.com/mcp
# cu o cheie:
claude mcp add --transport http leadgen https://leadgen-mcp.adrianhomelab.com/mcp --header "Authorization: Bearer lg_your_key"

Sau împarte-l cu echipa în fișierul .mcp.json al proiectului (linia "type": "http" e obligatorie):

{
  "mcpServers": {
    "leadgen": {
      "type": "http",
      "url": "https://leadgen-mcp.adrianhomelab.com/mcp",
      "headers": { "Authorization": "Bearer lg_your_key" }
    }
  }
}

Dacă nu ai o cheie, omite antetul: 30 de căutări pe zi pentru fiecare adresă IP, împărțite între toți utilizatorii din spatele acesteia (o rețea de birou sau de acasă se ia în calcul o singură dată). Cu o cheie gratuită de la leadgen.adrianhomelab.com/start (50 de interogări/zi în loc de 30), înlocuiește lg_your_key cu cheia ta. Serverul MCP acceptă cheia ta fie în Authorization: Bearer, fie în X-API-Key.

Licență și atribuire

Datele despre companii sunt date publice deschise, nu ale noastre: Oficiul Național al Registrului Comerțului (ONRC) și Ministerul Finanțelor le publică pe data.gov.ro sub licența CC BY 4.0 (situațiile financiare 2008–2010 sub licența OGL-ROU-1.0), iar plătitorul de TVA, e-Factura și inactivitatea vin din serviciul public ANAF pentru contribuabili. Când afișezi sau livrezi aceste date în produsul tău, menționează sursa cu acest rând:

Sursa: ONRC și Ministerul Finanțelor (data.gov.ro, CC BY 4.0; situațiile financiare 2008–2010 sub OGL-ROU-1.0) și ANAF, prin Leadgen (leadgen.adrianhomelab.com)

Fiecare răspuns cu companii conține același rând în câmpul attribution (source numește stratul: onrc, mfp, anaf), iar fiecare export CSV se încheie cu el. Licențele cer menționarea sursei; nu interzic folosirea comercială. Păstrează adresa de la finalul rândului: îi spune celui care îți citește copia de unde provine.

Ce nu acoperă Leadgen

O primă privire, nu o verificare completă: Buletinul procedurilor de insolvență (BPI), datoriile la ANAF, dosarele din instanță, asociații, SEAP și Monitorul Oficial nu sunt încărcate, iar fiecare bloc de risc o spune în notChecked. Sursele și prospețimea fiecăreia: acoperire.

Jurnal de modificări și modificări incompatibile

Fiecare modificare apare cu data ei în jurnalul de modificări. O modificare incompatibilă e anunțată cu cel puțin 14 zile înainte, acolo și pe e-mail, fiecărui deținător de cheie care a apelat endpoint-ul afectat în ultimele 30 de zile.

Semnalează ce lipsește sau o înregistrare greșită

Folosește pagina de feedback, POST /feedback cu {"message", "kind", "cui", "email"} (tipuri: gap, wrong_record, bug, idea, other) sau unealta MCP report_issue. Niciuna nu se numără ca interogare. O înregistrare greșită din registru se corectează la sursă (ONRC) și ajunge la noi cu următorul snapshot.

Endpoint-uri

Referința interactivă de mai jos (Swagger UI) este în engleză, ca schema OpenAPI; numele parametrilor și câmpurilor sunt cele din API.

  • POST /api/subscribe — Pornește un abonament Pro sau Business
  • GET /api/billing/intent (u) — Ce plan numește un link semnat de upgrade, pentru pagina de plată
  • GET /api/billing/company/{cui} (cui) — Datele de facturare ale unei companii din registrul nostru (denumire, adresă, statut TVA), ca să precompleteze plata, și dacă se poate abona
  • POST /api/billing/portal — Deschide portalul abonamentului pentru cheia din X-API-Key
  • POST /api/billing/portal-link — Trimite pe e-mail un link de unică folosință către portalul abonamentului
  • GET /api/fx/eur-ron — Cursul BNR al euro în lei și data lui, pentru afișarea prețurilor și în lei
  • GET /health — Disponibilitatea serviciului, versiunea registrului ONRC servită și vechimea ei
  • GET /lookup_business (query, max_results, county, fields, compact) — Caută o companie după nume sau CUI
  • GET /lookup_director (name, max_results, prefix, fields, compact) — Companiile unui administrator sau reprezentant legal, după nume
  • GET /lookup_by_category (category, topic, county, max_results, legal_form, active_only, has_website, min_revenue, max_revenue, min_employees, max_employees, vat_payer, main_activity_only, exclude_anaf_inactive, sort, registered_since, registered_until, format, lang, fields, compact) — Listă de companii după un domeniu predefinit sau după codul CAEN
  • POST /lookup_companies — Mai multe CUI-uri într-un singur apel
  • GET /lookup_companies (cuis, fields, compact) — Mai multe CUI-uri într-un singur apel, în query string
  • POST /match_companies — Potrivește până la 500 de înregistrări cu companiile din registru
  • GET /find_company_by_domain (domain, fields, compact) — Compania din spatele unui domeniu web
  • GET /extract_contacts (website, max_pages) — E-mailuri, telefoane și profiluri sociale găsite pe un site
  • GET /enrich_company (cui, website, max_pages, refresh) — Profilul complet al unei companii
  • GET /lookup_domain (domain, include_dns, include_security) — WHOIS, înregistrări DNS și un audit SPF/DMARC pentru un domeniu
  • GET /financials/{cui} (cui) — Toate situațiile financiare anuale ale unei companii (din 2008)
  • GET /financials/{cui}/ratios (cui) — Indicatori financiari calculați pentru o companie: marje, solvabilitate, scor de sănătate, percentile
  • GET /topics — Domeniile predefinite și seturile de coduri CAEN din spatele lor
  • GET /usage — Planul tău, limita zilnică și cât ți-a rămas azi
  • POST /register — Emite o cheie API gratuită pentru o adresă de e-mail
  • POST /alerts/email — Pornește rezumatele pe e-mail pentru companiile urmărite cu această cheie (cu confirmare)
  • GET /alerts/email — Unde merg alertele acestei chei și dacă adresa e confirmată
  • DELETE /alerts/email (lang) — Oprește alertele pe e-mail ale acestei chei sau anulează o cerere neconfirmată
  • GET /watches — Companiile și codurile CAEN urmărite cu cheia ta, fiecare cu ce s-a schimbat de la ultima verificare
  • POST /watches — Urmărește companii și/sau coduri CAEN într-un singur apel
  • DELETE /watches (kind, target, county) — Oprește urmărirea unei companii sau a unui cod CAEN
  • POST /watches/seen — Marchează toate schimbările ca văzute
  • GET /record/{cui} (cui, format, snapshot) — Fișa datată a unei companii, cu surse, de tipărit sau salvat
  • POST /feedback — Semnalează ce lipsește sau ce e greșit