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

Fiecare endpoint, cu exemple pe care le puteți rula direct din pagină. Trimiteți cheia în header-ul X-API-Key. Serverul MCP acceptă cheia fie în Authorization: Bearer, fie în X-API-Key. Fără cheie aveți 5 interogări pe zi pentru fiecare adresă IP; o cheie gratuită de la /start vă 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 vă arată cât v-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).

Planuri. Free: profilul companiei, starea și riscul, datele ANAF, cifrele ultimului an și liste de până la 25 de rânduri. Pro (45 RON/lună, 500 de interogări pe zi) adaugă 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 liste mai lungi; Business (145 RON/lună) are 5.000 de interogări pe zi. Vedeți toate planurile. Limite API și planuri →

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 v-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ți-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. Adăugați fields=companyName,cui,county,risk sau compact=true la o listă ca să primiți 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.

Corelați-vă lista

Aveți 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ți 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

Descărcați workflow-ul n8n (îl importaț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 dumneavoastră î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 → încărcați arhiva zip. Claude Code: dezarhivați-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-api.adrianhomelab.com/lookup_business?query=DEDEMAN&max_results=3"

Conectați un client MCP

Rulați o dată într-un terminal (adăugați --scope user ca să-l aveți î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 împărțiți-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 aveți o cheie, omiteți 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-api.adrianhomelab.com/start (50 de interogări/zi în loc de 30), înlocuiți lg_your_key cu cheia dumneavoastră. Serverul MCP acceptă cheia fie în Authorization: Bearer, fie în X-API-Key.

Pagina serverului MCP: uneltele, exemple și configurarea pas cu pas →

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șați sau livrați aceste date în produsul dumneavoastră, menționați 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ăstrați adresa de la finalul rândului: îi spune celui care vă 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.

Semnalați ce lipsește sau o înregistrare greșită

Folosiți 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/withdrawals/available — Dacă funcția de retragere din contract este disponibilă
  • GET /api/fx/eur-ron — Cursul BNR al euro în RON și data lui, pentru afișarea prețurilor și în RON
  • GET /api/withdrawals/link (w, lang) — Contractul numit de un link de retragere primit pe e-mail
  • POST /api/withdrawals — Trimite o declarație de retragere din contract
  • 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 /company_history (cui, limit) — Dacă s-a schimbat ceva la o companie de la un snapshot la altul, și când — nu și care câmp anume
  • GET /check_vat (cui) — Verifică în VIES dacă un CUI e plătitor de TVA valid și dacă numele din registru se potrivește
  • GET /contracts/{cui} (cui, role, since, until, limit) — Contracte de achiziții publice din SEAP: câștigate de firmă sau atribuite de ea, cu autoritatea contractantă, cod CPV, valoare în RON și rezumat pe ani
  • GET /topics — Domeniile predefinite și seturile de coduri CAEN din spatele lor
  • GET /usage — Planul dumneavoastră, limita zilnică și cât v-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 dumneavoastră, 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

Întrebări frecvente despre API

Există un API gratuit pentru datele companiilor din România (ONRC)?

Da. Leadgen are un API JSON gratuit, doar pentru citire, peste registrul oficial ONRC, construit din setul de date deschise de pe data.gov.ro. Aveți 5 interogări pe zi fără cheie în API și 30 de pe serverul MCP, plus 50 pe zi cu o cheie gratuită emisă pentru o adresă de e-mail.

Cum caut o companie după CUI sau după nume?

Apelați GET /lookup_business?query=<CUI sau nume>. O interogare numai din cifre se potrivește pe CUI (codul fiscal); una cu text e căutare full-text insensibilă la diacritice, deci 'paval' găsește 'PAVĂL'. Răspunsul conține numărul de înregistrare, forma juridică, adresa, codurile CAEN, administratorii și starea.

Cum verific o firmă înainte de un contract, prin API?

Căutați firma după cod fiscal (CUI) sau nume cu GET /lookup_business. Apoi cereți sănătatea financiară la /financials/CUI/ratios: 18 ani de bilanțuri, marje, solvabilitate, un scor 0-100 cu componentele lui, semnale de alarmă și percentile față de firmele similare. Confirmați numărul de TVA în registrul european cu check_vat, listați celelalte firme pe care le conduc administratorii cu lookup_director și citiți contractele publice câștigate cu company_contracts. Patru apeluri, o cheie, fără PDF.

Pot obține lista companiilor după cod CAEN și județ?

Da. GET /lookup_by_category?category=6201&county=Cluj întoarce companiile cu acel cod CAEN — un cod, o listă separată prin virgulă sau un domeniu predefinit ca 'software' — cele mai noi înregistrări primele, cu filtre pentru forma juridică, starea activă, site, cifră de afaceri, angajați, plătitori de TVA, data înregistrării și activitatea principală; adăugați format=csv pentru o foaie de calcul.

Include situații financiare (bilanț, cifră de afaceri, profit)?

Da: 18 ani fiscali, din 2008 până în 2025, din depunerile la Ministerul Finanțelor. GET /financials/<CUI> (sau unealta MCP lookup_financials) întoarce cifra de afaceri, profitul, angajații și liniile de bilanț pentru fiecare an, cu indicatori și creștere; /financials/<CUI>/ratios adaugă un scor de sănătate 0–100 cu componentele lui și percentile față de companiile similare din aceeași activitate și județ.

Pot să-l folosesc din Claude, Cursor sau alt client MCP?

Da. Adăugați https://leadgen-mcp.adrianhomelab.com/mcp ca server Streamable HTTP, cu o singură comandă prin Smithery sau cu o intrare JSON în configurația clientului. Aceleași date; fără cheie, serverul MCP vă dă 30 de interogări pe zi, iar cu cheie limitele sunt aceleași și cheia merge în header-ul Authorization.

Pot obține adrese de e-mail și numere de telefon prin API?

Telefon, adesea: fiecare rezultat conține telefonul declarat de companie la ANAF, dacă l-a declarat. Adresele de e-mail nu există în niciun registru oficial; pentru companiile cu site înregistrat (has_website=true), uneltele MCP enrich_company și extract_contacts citesc site-ul companiei pentru contactele publicate acolo.

Care sunt limitele și ce fac dacă am nevoie de mai mult?

Fără cheie, 5 interogări pe zi pentru fiecare adresă IP în API și 30 pe serverul MCP; 50 pe zi cu o cheie gratuită, resetate la 00:00 UTC (ora 02:00 sau 03:00 în România). Pentru volum sau o limită zilnică mai mare scrieți la contact@adrianhomelab.com; nivelul gratuit nu e făcut pentru republicarea setului de date.