oneapi
Autentificare
Business v1 / Locații

Firmele de la o adresă

Toate firmele cu sediul pe o stradă şi, opţional, la un număr — cheia oricărei verificări de sediu fictiv, fără
să porneşti de la o firmă cunoscută.

GET
https://oneapi.ro/api/business/v1/firme/la-adresa

Parametri de interogare

NumeTipDescriereValori acceptate
strada_idopțional integer | null Id-ul străzii din nomenclatorul Locations. Nu se combină cu localitate + strada. 1
localitateopțional integer | null Codul SIRUTA al localității (în București, al sectorului), împreună cu strada. 1
stradaopțional string | null Numele străzii, cu ori fără tipul arterei, împreună cu localitate. max 120 car.
numaropțional string | null Opțional: numărul, exact cum e scris la sursă. max 20 car.

Cum se comportă

  • ⭐ Toate firmele cu sediul pe o stradă și, cu numar, la un număr anume — fără să pornești de la o firmă cunoscută, ca la /firme/{cui}/vecini.
  • Strada se dă fie prin strada_id (din /locations/v1/localitati/{cod}/strazi), fie prin localitate (codul SIRUTA al localității — în București, al sectorului) plus strada. Numele trece prin normalizatorul adreselor: „Bld. Timișoara", „Bulevardul Timișoara" și „timisoara" dau aceeași stradă.
  • Când numele se potrivește mai multor străzi din localitate (o stradă și o alee cu același nume), răspunsul e 422 strada_ambigua cu candidate — lista lor, cu strada_id —, nu prima dintre ele.
  • numar se compară 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. Fără numar, se întoarce toată strada.
  • Se caută pe strada rezolvată în nomenclator: firmele al căror sediu n-a putut fi legat de o stradă (~21%) nu apar. Ordinea: cele mai recent înmatriculate primele.

La ce folosește

  • Verificarea unui sediu declarat: câte firme sunt înregistrate la aceeași adresă — semnalul clasic de sediu fictiv ori de domiciliere.
  • Due diligence pe o adresă, înainte de a semna un contract de închiriere ori de a accepta un client nou.
  • Prospectare pe o clădire ori pe o arteră comercială.

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.
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 aici (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.
meta.adresa.strada_id integer Strada din nomenclatorul Locations pe care s-a făcut căutarea.
meta.adresa.strada string Numele străzii, din nomenclator.
meta.adresa.tip string Tipul arterei: strada, bulevard, alee…
meta.adresa.localitate object Localitatea străzii {cod_siruta, nume}.
meta.adresa.numar string Numărul cerut, ori null pentru toată strada.

Exemple de răspuns

GEThttps://oneapi.ro/api/business/v1/firme/la-adresa?localitate=179196&strada=Bld.%20Timi%C8%99oara&numar=26
{
    "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": {
        "adresa": {
            "strada_id": 221585,
            "strada": "Timișoara",
            "tip": "bulevard",
            "localitate": {
                "cod_siruta": 179196,
                "nume": "București Sectorul 6"
            },
            "numar": "26"
        },
        "paginare": {
            "pagina": 1,
            "per_pagina": 20,
            "total": 96,
            "pagini": 5
        }
    }
}

Coduri de eroare

CodSlugCând apare
401neautentificatToken lipsă, invalid, expirat sau revocat.
403feature_indisponibilPlanul curent nu include funcţia de care ţine ruta.
404strada_negasitaStrada nu există în nomenclatorul Locations (ori în localitatea cerută).
422validareUn parametru nedeclarat ori o valoare care nu trece validarea (strada_id, localitate, strada, numar). Câmpul vinovat e în detalii.
422strada_ambiguaNumele se potriveşte mai multor străzi din localitate; cere cu strada_id.
429cota_depasitaCota 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 (strada_id, localitate, strada, numar). Câmpul vinovat e în detalii.",
        "detalii": {
            "strada_id": [
                "Valoarea trimisă nu respectă regula parametrului."
            ]
        }
    }
}