Business v1 / Locații
Firme în jurul unui punct
⭐ Firmele al căror sediu cade pe o stradă care trece prin cercul dat, ordonate după distanță.
Firmele nu au coordonate proprii — legătura se face prin stradă, deci acoperirea e de ~71%.
GET
https://oneapi.ro/api/business/v1/firme/aproape
Parametri de interogare
NumeTipDescriereValori acceptate
latopțional
string | null
Latitudinea centrului (WGS84), în România.
ex. 46.77ex. 44.4526ex. 46.7712
lngopțional
string | null
Longitudinea centrului (WGS84), în România.
ex. 23.59ex. 26.0855ex. 23.6236
raza_kmopțional
string | null
Raza în km: între 0,05 şi 25; implicit 0,5.
ex. 0.3
stareopțional
string | null
Categoria de stare, nu denumirea ONRC: cele 197 de denumiri se reduc la şapte categorii, iar
„ce funcţionează aici" e o întrebare despre categorie.
o valoare greşită trebuie să dea 422, nu o zonă goală care arată ca o zonă fără firme. activasuspendatadizolvatalichidareradiatainsolventaalta
„ce funcţionează aici" e o întrebare despre categorie.
in: aici, nu permisiv ca restul:o valoare greşită trebuie să dea 422, nu o zonă goală care arată ca o zonă fără firme. activasuspendatadizolvatalichidareradiatainsolventaalta
Cum se comportă
- ⭐ Firmele al căror sediu cade pe o stradă care trece prin cercul dat, ordonate după distanţă.
- ⚠️ Firmele nu au coordonate proprii. Legătura se face prin stradă: sediul e legat de o arteră, iar artera are geometrie din OpenStreetMap. Acoperirea, măsurată pe 4 octombrie 2026, e de 2,75M din 3,91M de firme (70,4%) — restul nu pot fi găsite pe rază, oricât de aproape ar fi.
- Distanţa se măsoară până la centrul arterei, nu până la sediul exact — la scara unei străzi diferenţa e sub eroarea de legare a sediului, dar înseamnă că firmele de pe aceeaşi stradă au aceeaşi distanţă.
- Raza e plafonată la 25 km: dincolo de câţiva kilometri întrebarea nu mai e „ce firme sunt în jur", ci „ce firme sunt în oraş" — pentru asta există rutele pe entitate geografică.
- Varianta agregată, fără lista de firme, e la
/firme/zona.
La ce folosește
- Prospectare pe teren: ce firme sunt în raza agentului, ordonate după distanţă.
- Studiu de amplasament: ce activităţi există deja în jurul unui punct pe care îl evaluezi.
- Alimentarea unei hărţi interactive cu firmele din zona vizibilă.
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 punctului (WGS84).
data[].coordonate.lng
number
Longitudinea punctului (WGS84).
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
Distanţa în metri de la punctul cerut până la PUNCTUL ÎNTORS pe rândul ăsta — adică până la numărul din adresă acolo unde îl ştim, altfel până la centrul străzii. ⚠️ Selecţia pe rază se face însă pe centrul arterei, singurul cu index spaţial, deci un rând poate ieşi cu câteva zeci de metri peste
raza_km. Nu e o garanţie pierdută: nici înainte „centrul străzii în rază" nu însemna „firma în rază".
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.
meta.distanta
object
Cum sunt măsurate distanţele din răspuns. Apare pe orice răspuns care conţine o distanţă.
meta.distanta.metoda
string
Mereu
linie_dreapta: distanţa geodezică pe suprafaţa Pământului, nu pe drum.
meta.distanta.detaliu
string
Aceeaşi informaţie, în cuvinte.
Exemple de răspuns
GEThttps://oneapi.ro/api/business/v1/firme/aproape?lat=46.77&lng=23.59&raza_km=0.3
{
"data": [
{
"cui": 232949,
"denumire": "MEDEX SRL",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "1992-01-10",
"caen_principal": "8512",
"platitor_tva": false,
"sediu": {
"strada_id": 14967,
"strada": "Iuliu Maniu",
"numar": "1",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984,
"judet": "Cluj"
},
"coordonate": {
"lat": 46.770235,
"lng": 23.590533,
"precizie": "numar"
},
"distanta_m": 48
}
],
"meta": {
"centru": {
"lat": 46.77,
"lng": 23.59
},
"raza_km": 0.3,
"stare": null,
"precizie": "strada",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 2479,
"pagini": 124
},
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/aproape?lat=44.4526&lng=26.0855
{
"data": [
{
"cui": 17819426,
"denumire": "ATELIER CMAM SRL",
"forma_juridica": "SRL",
"stare": {
"cod": "2120",
"denumire": "perioadă de suspendare activitate expirată",
"categorie": "suspendata"
},
"data_inmatriculare": "2005-07-27",
"caen_principal": "7420",
"platitor_tva": false,
"sediu": {
"strada_id": 222727,
"strada": "Victoriei",
"numar": null,
"localitate": "București Sectorul 3",
"cod_siruta": 179169,
"judet": "București"
},
"coordonate": {
"lat": 44.452173,
"lng": 26.086032,
"precizie": "strada"
},
"distanta_m": 64
}
],
"meta": {
"centru": {
"lat": 44.4526,
"lng": 26.0855
},
"raza_km": 0.5,
"stare": null,
"precizie": "strada",
"paginare": {
"pagina": 1,
"per_pagina": 20,
"total": 3639,
"pagini": 182
},
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
GEThttps://oneapi.ro/api/business/v1/firme/aproape?per_pagina=3&lat=46.7712&lng=23.6236&stare=activa
{
"data": [
{
"cui": 16884914,
"denumire": "GP INSTAL SRL",
"forma_juridica": "SRL",
"stare": {
"cod": "1048",
"denumire": "funcțiune",
"categorie": "activa"
},
"data_inmatriculare": "2004-10-26",
"caen_principal": "4933",
"platitor_tva": false,
"sediu": {
"strada_id": 15607,
"strada": "Slănic",
"numar": "11",
"localitate": "Cluj-Napoca",
"cod_siruta": 54984,
"judet": "Cluj"
},
"coordonate": {
"lat": 46.771129,
"lng": 23.623433,
"precizie": "numar"
},
"distanta_m": 15
}
],
"meta": {
"centru": {
"lat": 46.7712,
"lng": 23.6236
},
"raza_km": 0.5,
"stare": "activa",
"precizie": "strada",
"paginare": {
"pagina": 1,
"per_pagina": 3,
"total": 1364,
"pagini": 455
},
"distanta": {
"metoda": "linie_dreapta",
"detaliu": "Distanţele sunt geodezice, în linie dreaptă pe suprafaţa Pământului (WGS84) — nu pe drum."
}
}
}
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 | Un parametru nedeclarat ori o valoare care nu trece validarea (lat, lng, raza_km). Câmpul vinovat e în detalii. |
| 422 | parametri_invalizi | Parametrii lat și lng sunt obligatorii. |
| 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 (lat, lng, raza_km). Câmpul vinovat e în detalii.",
"detalii": {
"lat": [
"Valoarea trimisă nu respectă regula parametrului."
]
}
}
}