oneapi
Sign in
Business v1 / Firme

People

The people connected to the company (directors, shareholders, representatives, liquidators) — name, role, locality and source. The person's id lets you search their companies through the reverse route.

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

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

  • A name alone identifies nobody, and the register does not publish the national ID number. That is why every person carries an identificator (a UUID derived from name + county of birth + date of birth) and a judet_nastere. The date of birth is neither stored nor exposed — it only feeds the identifier. Where the register gives no date of birth (13% of mentions, mostly corporate liquidators), the person stays distinct at each company, so that no link is invented.
  • The people linked to the company from the ONRC registry: administrators, associates, liquidators — with each one's role and source.
  • The network of companies linked through shared people is at /firme/{cui}/conexe, and the graph path between two companies at /firme/{cui}/conexe/{cui2}.

What it is for

  • Identifying the decision-makers in a company.
  • Ownership and control analysis (beneficial owners, approximately).
  • A starting point for graphs of links between companies.

Response structure

All fields below live inside data.

FieldTypeDescription
nr_persoane integer The number of people.
persoane[].id integer The internal identifier.
persoane[].identificator string | null The person's stable identifier (UUID), derived from name + county of birth + date of birth. Unlike id, it does not change on reimport. Use it to tell whether the administrator of two companies is the same person or two namesakes.
persoane[].nume string The name.
persoane[].judet_nastere string | null The county of birth, as published by the register. Together with identificator, it tells namesakes apart when displaying them.
persoane[].rol string | null The role held (director, shareholder…).
persoane[].localitate string | null The locality.
persoane[].judet string | null The county.
persoane[].sursa string | null The data source.

Response examples

GEThttps://oneapi.ro/api/business/v1/firme/6719278/persoane
{
    "data": {
        "nr_persoane": 5,
        "persoane": [
            {
                "id": 15553509,
                "identificator": "e5569fe9-133d-5746-8668-958e87a3f775",
                "nume": "ILIN EMIL MARIAN",
                "judet_nastere": "Teleorman",
                "rol": "administrator",
                "localitate": null,
                "judet": null,
                "sursa": "onrc:reprezentanti_legali"
            }
        ]
    }
}

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."
            ]
        }
    }
}