oneapi
Sign in
Business v1 / Firme

Company location

The company's registered office — RAW (ONRC) + RESOLVED (Locations: SIRUTA, unit, county, region, NUTS, population, street).

GET
https://oneapi.ro/api/business/v1/firme/{cui}/locatie

Path parameters

NameTypeDescriptionExample
cuirequired string The company tax identification number, without the RO prefix (e.g. 6719278).

Query parameters

This route accepts no query parameters.

How it behaves

  • The registered office resolved to county, locality and, where possible, street, by linking to the Locations module (99.9% at locality, ~79% at street).
  • Compared to sediu in the profile, this route is dedicated to the location slice: the Locations identifiers (SIRUTA code, locality id) plus the raw text.

What it is for

  • Placing the company on a map without geocoding the raw address text yourself.
  • Routing a lead to the sales agent covering the county or locality of the headquarters.
  • Linking the company to the rest of the platform through its SIRUTA code — from there you continue into /api/locations/v1.

Response structure

All fields below live inside data.

FieldTypeDescription
cui integer The tax ID.
raw[] string | integer The address as the source writes it, field by field; empty keys are omitted.
rezolvat.localitate_id integer The internal locality id in Locations.
rezolvat.localitate string The locality.
rezolvat.cod_siruta integer | null The locality SIRUTA code — chainable to /api/locations/v1.
rezolvat.uat string | null The administrative-territorial unit.
rezolvat.judet string | null The county.
rezolvat.regiune string | null The development region.
rezolvat.cod_nuts string | null The NUTS code of the territorial unit.
rezolvat.populatie integer | null The locality population (census).
rezolvat.strada_id integer | null The street id in Locations — chainable to /api/locations/v1/strazi/{id}.
rezolvat.strada string | null The street.
rezolvat.potrivire[] string How confident the link to the register is, for locality and for street.
rezolvat.coordonate.lat number Latitude of the point (WGS84, 6 decimals ≈ 11 cm).
rezolvat.coordonate.lng number Longitude of the point (WGS84).
rezolvat.coordonate.precizie string ⚠️ How fine the point is, in four steps that are NOT interchangeable: numar (the OSM address point, matched exactly on the house number in the register — 1,308,114 companies), numar_aproximativ (the same kind of point, matched only on the integer part: "4A" placed at "4" — 115,040 companies), strada (street centroid) and localitate (the rest). Only drop a pin for the first two; a pin on strada claims a precision we do not have.

Response examples

GEThttps://oneapi.ro/api/business/v1/firme/6719278/locatie
{
    "data": {
        "cui": 6719278,
        "raw": {
            "judet": "Bucureşti",
            "localitate": "Bucureşti Sectorul 6",
            "strada": "Timişoara",
            "numar": "26",
            "cod_postal": "61331",
            "sector": 6
        },
        "rezolvat": {
            "localitate_id": 13755,
            "localitate": "București Sectorul 6",
            "cod_siruta": 179196,
            "uat": "București",
            "judet": "București",
            "regiune": "București-Ilfov",
            "cod_nuts": "RO321",
            "populatie": 324994,
            "strada_id": 221585,
            "strada": "Timișoara",
            "potrivire": {
                "loc": "exact",
                "str": "exact"
            },
            "coordonate": {
                "lat": 44.428876,
                "lng": 26.036041,
                "precizie": "numar"
            }
        }
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitThe company with tax ID [{cui}] was not found.
422validareThe route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

All errors share the same shape. eroare.cod is stable and is the value you should branch on in code — not the text in mesaj, which may change.

{
    "eroare": {
        "cod": "validare",
        "mesaj": "The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored.",
        "detalii": {
            "cui": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}