Business v1 / Locații
Vecinii unei firme
⭐ Ce alte firme mai au sediul la aceeași adresă (implicit) sau pe aceeași stradă
(?scop=strada). Firma întrebată nu apare în listă.
GET
https://oneapi.ro/api/business/v1/firme/{cui}/vecini
Parametri de cale
NumeTipDescriereExemplu
cuiobligatoriu
string
Codul de identificare fiscală al firmei, fără prefixul
RO (ex. 6719278).
Parametri de interogare
NumeTipDescriereValori acceptate
scopopțional
string | null
Cât de aproape se numără vecinătatea:
adresa (implicit) sau strada.
ex. strada
Cum se comportă
- ⭐ Ce alte firme au sediul la aceeaşi adresă (implicit) sau pe aceeaşi stradă (
?scop=strada). Firma întrebată nu apare în listă. - Cifrele spun ceva despre economia reală: la adresa cu cele mai multe sedii din ţară — Bucureştii Noi nr. 136 — sunt înregistrate 24.409 de firme. Sediile de domiciliere sunt un fenomen, nu o excepţie, iar ruta asta le face vizibile.
- Vecinătatea se calculează pe strada rezolvată în nomenclator, nu pe textul brut al adresei. Pentru firmele al căror sediu n-a putut fi legat de o stradă (~21%) răspunsul e 422 cu motivul, nu o listă goală care ar sugera că firma n-are vecini.
scop=adresacompară numărul exact aşa cum e scris la sursă (26,27-33,1 bis) — nu se normalizează, fiindcă n-ar exista o regulă care să nu inventeze.
La ce folosește
- Detectarea adreselor de tip „sediu colectiv", unde zeci de firme împart acelaşi spaţiu.
- Semnal de risc la onboarding: un sediu cu sute de firme merită o verificare în plus.
- Prospectare pe clădire sau pe stradă: cine mai e vecin cu clientul tău.
Structura răspunsului
CâmpTipDescriere
data[].cui
integer
Codul fiscal al firmei.
data[].denumire
string
Denumirea firmei.
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 ONRC.
data[].caen_principal
string | null
Codul CAEN principal, din starea fiscală ANAF.
data[].platitor_tva
boolean | null
Plătitoare de TVA la ultima sincronizare.
data[].sediu.strada_id
integer | null
data[].sediu.strada
string | null
data[].sediu.numar
string | null
Numărul de la adresa sediului, așa cum e scris la sursă.
data[].sediu.localitate
string | null
Localitatea sediului.
data[].sediu.cod_siruta
integer | null
Codul SIRUTA al localității — chainable spre /locations/v1/localitati/{cod}.
data[].sediu.judet
string | null
Județul sediului.
data[].coordonate.lat
number
Latitudinea, în grade zecimale (WGS 84).
data[].coordonate.lng
number
Longitudinea, în grade zecimale (WGS 84).
data[].coordonate.precizie
string
Vezi
precizie de la /firme/{cui}/locatie: numar, numar_aproximativ, strada ori localitate. ⚠️ Într-o listă, precizia diferă de la rând la rând — nu o citi o dată pentru tot setul.
data[].distanta_m
integer | null
Nefolosit la vecini (rămâne
null) — apare la /firme/aproape.
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/6719278/vecini
{
"data": [
{
"cui": 54306506,
"denumire": "VANGUARD ESTATES S.R.L.",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2026-03-20",
"caen_principal": "6831",
"platitor_tva": true,
"sediu": {
"strada_id": 221585,
"strada": "Timișoara",
"numar": "26",
"localitate": "București Sectorul 6",
"cod_siruta": 179196,
"judet": "București"
},
"coordonate": {
"lat": 44.428876,
"lng": 26.036041,
"precizie": "numar"
},
"distanta_m": null
}
],
"meta": {
"scop": "adresa",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 95,
"pagini": 5
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/6719278/vecini?scop=strada
{
"data": [
{
"cui": 55520442,
"denumire": "CÎRCIUMARU MIHAI-JUNIOR PERSOANĂ FIZICĂ AUTORIZATĂ",
"forma_juridica": "PFA",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2026-09-01",
"caen_principal": "4933",
"platitor_tva": false,
"sediu": {
"strada_id": 221585,
"strada": "Timișoara",
"numar": "35",
"localitate": "București Sectorul 6",
"cod_siruta": 179196,
"judet": "București"
},
"coordonate": {
"lat": 44.427357,
"lng": 26.03988,
"precizie": "numar"
},
"distanta_m": null
}
],
"meta": {
"scop": "strada",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 4434,
"pagini": 222
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/vecini
{
"data": [
{
"cui": 49335041,
"denumire": "ALGESO ADMIN S.R.L.",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2023-12-22",
"caen_principal": "7022",
"platitor_tva": false,
"sediu": {
"strada_id": 142741,
"strada": "Republicii",
"numar": "123-125",
"localitate": "Roman",
"cod_siruta": 120879,
"judet": "Neamț"
},
"coordonate": {
"lat": 46.924989,
"lng": 26.943953,
"precizie": "numar"
},
"distanta_m": null
}
],
"meta": {
"scop": "adresa",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 5,
"pagini": 1
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/vecini
{
"data": [
{
"cui": 46003960,
"denumire": "UNIVERS-ALL KMCS S.R.L.",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2022-04-21",
"caen_principal": "4941",
"platitor_tva": true,
"sediu": {
"strada_id": 128938,
"strada": "Pompierilor",
"numar": "118",
"localitate": "Gheorgheni",
"cod_siruta": 83570,
"judet": "Harghita"
},
"coordonate": {
"lat": 46.724202,
"lng": 25.589422,
"precizie": "strada"
},
"distanta_m": null
}
],
"meta": {
"scop": "adresa",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 1,
"pagini": 1
}
}
}
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. |
| 404 | negasit | Firma cu CUI [{cui}] nu a fost găsită. |
| 422 | validare | Un parametru nedeclarat ori o valoare care nu trece validarea (scop). Câmpul vinovat e în detalii. |
| 422 | parametri_invalizi | Scopul [{scop}] nu există. Acceptate: adresa, strada. |
| 422 | sediu_nelegat | Sediul firmei [{cui}] nu e legat de o stradă din nomenclator, deci vecinii nu pot fi determinați. |
| 422 | sediu_fara_numar | Sediul firmei [{cui}] n-are număr, deci vecinii de adresă nu pot fi determinați. Încearcă ?scop=strada. |
| 429 | cota_depasita | Cota lunară a planului a fost depăşită (vezi Retry-After). |
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": "Un parametru nedeclarat ori o valoare care nu trece validarea (scop). Câmpul vinovat e în detalii.",
"detalii": {
"cui": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}