oneapi
Sign in
Business v1 / Firme

Administrators

Only the people holding a director role (a subset of /persoane).

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

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

  • How we identify a person: by name + county of birth + date of birth, hashed into a fingerprint. The birth data is stored nowhere and never appears in the API; the fingerprint only separates people who share a name. Until 18 Sep 2026 identity was 'name + county', and the Trade Register leaves the county empty for 99.3% of representatives: every namesake in the country collapsed into one person, and companies with no real connection showed up as related (68% of the graph edges). Where the register has no date of birth (13% of mentions, mostly corporate liquidators), the person stays distinct at each company: we would rather lose a real link than invent one.
  • Only the people with an administrator role, filtered from the full set of people. For associates, liquidators and the other roles, use /firme/{cui}/persoane.

What it is for

  • Finding out who can sign on behalf of the company before sending a contract.
  • Verifying the signatory's identity on a document you received.
  • Screening people with representation rights at onboarding.

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