Business v1 / Firme
Firme după activitate (semantic)
Descrii ce face firma în text liber (ex. „reparații de biciclete") și primești firmele din CAEN-ul
potrivit ca SENS. Sub capotă: textul e potrivit semantic la codul CAEN (vezi /caen/potriveste),
apoi se listează firmele cu acel cod. Răspunsul arată și CAEN-ul detectat + alternativele. Se pot
adăuga filtre: ?judet=, ?stare=, ?tva=. Paginat.
GET
https://oneapi.ro/api/business/v1/firme/dupa-activitate
Parametri de interogare
NumeTipDescriereValori acceptate
formaopțional
string | null
Forma juridică (
SRL, SA, PFA…).
ex. SRL
judetopțional
string | null
Filtru opţional pe judeţ.
ex. CJ
localitateopțional
integer | null
Localitatea sediului rezolvat prin Locations — nume sau cod SIRUTA.
1
stareopțional
string | null
Filtru opţional pe starea firmei (
funcţiune, radiată…).
ex. funcțiune
textopțional
string | null
Descrierea activităţii (obligatoriu). Ex.: „reparaţii de biciclete".
ex. reparatii de bicicleteex. Cluj
tvaopțional
boolean | null
Cu
1 întoarce numai plătitorii de TVA, cu 0 numai neplătitorii.
ex. true
uatopțional
integer | null
UAT-ul sediului rezolvat — nume sau cod SIRUTA.
1
Cum se comportă
- Descrii în text liber ce face firma (ex. „reparaţii de biciclete") şi primeşti firmele din CAEN-ul potrivit ca sens — nu pe cuvinte. Compune două lucruri: potrivirea semantică text→CAEN (vezi
/caen/potriveste) urmată de listarea firmelor cu acel cod. - Răspunsul arată explicit CAEN-ul detectat (cu scor) şi alternativele, ca să fie transparent pe ce s-a filtrat. Firmele vin în forma rezumat, paginate.
- Se pot adăuga filtrele obişnuite de listare:
?judet=,?localitate=,?uat=,?forma=,?stare=,?tva=.?text=e obligatoriu. - Se filtrează pe CAEN-ul cu scorul cel mai mare. Dacă vrei să alegi tu dintre sugestii, foloseşte
/caen/potrivesteşi apoi/caen/{cod}/firme.
La ce folosește
- Găsirea firmelor dintr-un domeniu descris în cuvinte, fără să ştii codul CAEN.
- Prospectare / lead generation pe o nişă de activitate.
- Analiză de piaţă pe un sector descris natural.
Structura răspunsului
CâmpTipDescriere
data[].cui
integer
Codul fiscal.
data[].denumire
string | null
Denumirea.
data[].cod_inmatriculare
string | null
Numărul de ordine în registrul comerţului (J…).
data[].forma_juridica
string | null
Forma juridică (SRL, SA, PFA…).
data[].stare
string | null
Starea firmei, ca obiect:
denumire e textul brut din ONRC (107 valori distincte folosite), categorie e clasificarea noastră în 7 cutii — activa, suspendata, dizolvata, lichidare, radiata, insolventa, alta — pe care o foloseşti ca să filtrezi sau să grupezi. cod e codul ONRC al stării.
data[].data_inmatriculare
string | null
Data înmatriculării la registrul comerţului.
data[].radiere.vazut_la
string
data[].radiere.dupa
string | null
data[].sediu.judet
string
Judeţul sediului social.opțional
data[].sediu.localitate
string
Localitatea sediului social.opțional
data[].sediu.cod_siruta
integer
Codul SIRUTA al localităţii — chainable spre /locations/v1.opțional
data[].caen_principal.cod
string
Codul CAEN principal.
data[].caen_principal.denumire
string | null
Denumirea activităţii principale.
data[].fiscal.tva
boolean
Plătitoare de TVA.
data[].fiscal.inactiv
boolean
Declarată inactivă fiscal.
data[].fiscal.e_factura
boolean
Înrolată în e-Factura.
data[].financiar
object
Ultimul bilanţ depus (an, cifră de afaceri, profit net, salariaţi);
null la firmele fără bilanţ — PFA-uri, firme noi —, nu zero.
data[].financiar.an
integer
Anul bilanţului.
data[].financiar.cifra_afaceri
number | null
Cifra de afaceri netă, în lei.
data[].financiar.profit_net
number | null
Profitul net, în lei; negativ = pierdere.
data[].financiar.salariati
integer | null
Numărul mediu de salariaţi.
meta.paginare.pagina
integer
Pagina curentă.
meta.paginare.per_pagina
integer
Rezultate pe pagină.
meta.paginare.total
integer
Total rezultate.
meta.paginare.pagini
integer
Număr de pagini.
Exemple de răspuns
GEThttps://oneapi.ro/api/business/v1/firme/dupa-activitate?text=reparatii+de+biciclete&per_pagina=3
{
"data": [
{
"cui": 21341760,
"denumire": "141 GSM SRL",
"cod_inmatriculare": "J10/352/2007",
"forma_juridica": "SRL",
"stare": {
"cod": "1084",
"denumire": "radiată",
"categorie": "radiata"
},
"data_inmatriculare": "2007-03-13",
"sediu": {
"judet": "Buzău",
"localitate": "Nehoiu",
"cod_siruta": 47925
},
"caen_principal": {
"cod": "5274",
"denumire": "Alte reparații de articole personale n.c.a."
},
"fiscal": {
"tva": false,
"inactiv": false,
"e_factura": false
},
"financiar": null
}
],
"meta": {
"activitate": {
"text": "reparatii de biciclete",
"caen": {
"cod": "9529",
"denumire": "Repararea și întreținerea articolelor de uz personal și gospodăresc n.c.a.",
"scor": 0.617999792098999
},
"alternative": [
{
"cod": "951",
"denumire": "Repararea și întreținerea calculatoarelor şi a echipamentelor de comunicaţii",
"scor": 0.5903294086456299
}
]
},
"paginare": {
"pagina": 1,
"per_pagina": 3,
"total": 5056,
"pagini": 1686
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/dupa-activitate?per_pagina=3&text=Cluj
{
"data": [
{
"cui": 54150023,
"denumire": "1001 DANCES S.R.L.",
"cod_inmatriculare": "J2026014214006",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2026-03-03",
"sediu": {
"judet": "Timiș",
"localitate": "Săcălaz",
"cod_siruta": 158573
},
"caen_principal": {
"cod": "8559",
"denumire": "Alte forme de învățământ n.c.a."
},
"fiscal": {
"tva": false,
"inactiv": false,
"e_factura": false
},
"financiar": null
}
],
"meta": {
"activitate": {
"text": "Cluj",
"caen": {
"cod": "85",
"denumire": "Învăţământ",
"scor": 0.43629056215286255
},
"alternative": [
{
"cod": "731",
"denumire": "Publicitate",
"scor": 0.4311078529889678
}
]
},
"paginare": {
"pagina": 1,
"per_pagina": 3,
"total": 115428,
"pagini": 38476
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/dupa-activitate?per_pagina=3&text=Cluj&judet=CJ&localitate=54984&uat=54975
{
"data": [
{
"cui": 40725563,
"denumire": "123 CHANGE YOUR WAY S.R.L.",
"cod_inmatriculare": "J12/872/2019",
"forma_juridica": "SRL",
"stare": {
"cod": "2069",
"denumire": "sediu expirat",
"categorie": "alta"
},
"data_inmatriculare": "2019-03-04",
"sediu": {
"judet": "Cluj",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984
},
"caen_principal": {
"cod": "8559",
"denumire": "Alte forme de învățământ n.c.a."
},
"fiscal": {
"tva": false,
"inactiv": true,
"e_factura": false
},
"financiar": {
"an": 2025,
"cifra_afaceri": 7756,
"profit_net": 1407,
"salariati": 1
}
}
],
"meta": {
"activitate": {
"text": "Cluj",
"caen": {
"cod": "85",
"denumire": "Învăţământ",
"scor": 0.43629056215286255
},
"alternative": [
{
"cod": "731",
"denumire": "Publicitate",
"scor": 0.4311078529889678
}
]
},
"paginare": {
"pagina": 1,
"per_pagina": 3,
"total": 3881,
"pagini": 1294
}
}
}
Coduri de eroare
| Cod | Slug | Când apare |
|---|---|---|
| 401 | neautentificat | Token lipsă, invalid, expirat sau revocat. |
| 403 | feature_indisponibil | Planul curent nu include funcţia de care ţine ruta. |
| 422 | validare | Lipseşte parametrul text. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
| 503 | mentenanta | Indexul semantic CAEN nu e construit, sau serviciul de embeddings e temporar indisponibil. |
Toate erorile au aceeași formă. eroare.cod e stabil și e cel după care trebuie să ramifici în cod — nu după textul din mesaj, care se poate schimba.
{
"eroare": {
"cod": "validare",
"mesaj": "Lipseşte parametrul text.",
"detalii": {
"forma": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}