Denumire, adresă de facturare pe câmpuri, număr de registru, plătitor de TVA — pentru oricare din cele 5.576.423 de firme din România, în câteva milisecunde.
Nu un text de adresă pe care să-l tai tu în bucăți. Fiecare câmp vine la locul lui, cu diacriticele corecte, așa cum îl vrei într-un formular sau într-un ERP.
RO-prefix când e plătitor de TVAverificat_la — știi mereu cât de proaspete sunt dateleO cerere HTTP, un răspuns JSON. Cheia se trimite în antet. Nicio bibliotecă de instalat, niciun SDK de ținut la zi.
# pe server, cu cheia secretă curl https://api-cui.ro/v1/firma/14399840 \ -H "X-Api-Key: ck_..."
// în browser, cu o cheie PUBLICĂ legată de domeniul tău const r = await fetch('https://api-cui.ro/v1/firma/' + cui, { headers: { 'X-Api-Key': 'pk_...' } }); const f = await r.json(); form.denumire.value = f.denumire; form.strada.value = f.adresa_sediu.strada; form.oras.value = f.adresa_sediu.localitate; form.judet.value = f.adresa_sediu.judet; form.tva.checked = f.tva.platitor;
$ctx = stream_context_create(['http' => [ 'header' => "X-Api-Key: ck_...\r\n"]]); $f = json_decode(file_get_contents( "https://api-cui.ro/v1/firma/$cui", false, $ctx), true); echo $f['denumire'], ' — ', $f['adresa_sediu']['text'];
import requests f = requests.get(f"https://api-cui.ro/v1/firma/{cui}", headers={"X-Api-Key": "ck_..."}).json() print(f["denumire"], f["tva"]["platitor"])
// răspunsul (scurtat) { "cui": 14399840, "cui_ro": "RO14399840", "denumire": "DANTE INTERNATIONAL SA", "nr_reg_com": "J2002000372404", "cod_caen": "4754", "stare": { "activa": true, "inactiv_fiscal": false, … }, "tva": { "platitor": true, "de_la": "2002-02-01", "la_incasare": false, "split": false }, "adresa_sediu": { "judet": "MUNICIPIUL BUCUREȘTI", "judet_auto": "B", "localitate": "Sector 6 Mun. București", "strada": "Șos. Virtuții", "numar": "148", "detalii": "spatiul E47", "cod_postal": "60787", "text": "Șos. Virtuții nr. 148, spatiul E47, …" }, "adresa_fiscala": { … }, "verificat_la": "2026-09-19T03:12:40Z", "meta": { "ms": 1.4 } }
Vrei precompletare în checkout sau în formularul de ofertă, fără să treci prin serverul tău? O cheie secretă pusă în JavaScript ar fi a oricui deschide „View source”.
De aceea avem chei publice (pk_…): funcționează doar din domeniile pe care le-ai aprobat în panou, cu limita lor de ritm. Dacă cineva ți-o copiază, nu-i folosește la nimic.
Cheile secrete (ck_…) rămân pentru server: ERP, facturare, CRM, importuri.
/v1/firma/{cui} cu cheia publică.Instalezi, lipești cheia, iar câmpul „CUI" din checkout completează singur firma și adresa de facturare. Pentru cine nu vrea să scrie nicio linie de cod.
data-api-cui pe câmpuri. Merge pe orice formular, cu cheie publică.disponibil · vezi cumVrei să fii anunțat când apare pluginul pentru platforma ta, sau ai una care nu e în listă? Scrie-ne. Snippet-ul JavaScript merge de azi pe orice formular, cu o cheie publică.
Checkout B2B: clientul scrie CUI-ul, adresa de facturare se completează, TVA-ul se calculează corect de la prima încercare.
Client nou = un CUI. Denumire, J, adresă, plătitor de TVA sau nu — fără copiat de pe site-ul ANAF.
Lead-ul vine cu firma gata îmbogățită: cifră de afaceri, angajați, vechime, administrator. Știi cu cine vorbești înainte să suni.
Fintech, leasing, marketplace-uri: verifici că firma există, e activă, nu e inactivă fiscal, și cine o reprezintă.
Îl folosim și noi, ca sursă. Diferența e ce punem între el și aplicația ta.
| ANAF direct | alte API-uri comerciale | api-cui.ro | |
|---|---|---|---|
| Timp de răspuns | 100–1.000 ms, variabil | 200–350 ms | 1–5 ms pe server |
| Firme necunoscute | — | „202 — revino mai târziu” | toate cele 3,9 M sunt deja la noi |
| Adresa | text + câmpuri, cu sedile (ş, ţ) | un singur text | pe câmpuri, diacritice corecte, sediu + fiscal |
| Din browser | nu (fără CORS) | doar cu cheia expusă | da, chei publice pe domeniu |
| Limită | 1 cerere / secundă, cade des | după plan | după plan, fără căderi ANAF |
| Bilanțuri, administratori, contacte | nu | bilanțuri | da, în planul extins |
| Căutare după nume | nu | da, lentă | da, autocomplete sub 2 ms |
Prețuri de lansare, pe lună, fără TVA (se adaugă TVA 21% pe factură) — de la 29 lei. Începi cu 30 de zile gratuit, schimbi sau oprești planul oricând din cont.
Pachete de 500 / 2.000 / 10.000 de cereri, plătite o singură dată (de la 39 lei + TVA), valabile 12 luni. Se consumă după cota lunară — sau în locul unui abonament.
Peste 15.000 de cereri pe lună, SLA scris, contract, suport dedicat, export în masă sau replică proprie a datelor.
30 de zile gratuit, 50 de cereri, toate câmpurile, fără card. Când crești, treci la un plan mai mare din panou.
Creează contul →