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"
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/administratori
{
"data": {
"nr_persoane": 3,
"persoane": [
{
"id": 16179051,
"identificator": "5b490f02-42d5-5b4e-9eba-078280578980",
"nume": "OLIVIER PETRUS JACOBUS PRETORIUS",
"judet_nastere": null,
"rol": "administrator",
"localitate": null,
"judet": null,
"sursa": "onrc:reprezentanti_legali"
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/2054341/administratori
{
"data": {
"nr_persoane": 1,
"persoane": [
{
"id": 14191425,
"identificator": "28f58969-c336-575b-9b09-e398e45a5a70",
"nume": "ALGESO ADMIN S.R.L.",
"judet_nastere": null,
"rol": "administrator",
"localitate": "Roman",
"judet": "Neamţ",
"sursa": "onrc:reprezentanti_legali"
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/24890577/administratori
{
"data": {
"nr_persoane": 1,
"persoane": [
{
"id": 15639793,
"identificator": "d7139e42-9aac-5faa-9e15-ae2155e89da8",
"nume": "IZSÓ CSABA",
"judet_nastere": "Harghita",
"rol": "administrator",
"localitate": null,
"judet": null,
"sursa": "onrc:reprezentanti_legali"
}
]
}
}
Error codes
| Code | Slug | When it occurs |
|---|---|---|
| 401 | neautentificat | Token missing, invalid, expired or revoked. |
| 403 | feature_indisponibil | The current plan does not include the feature the route depends on. |
| 404 | negasit | The company with tax ID [{cui}] was not found. |
| 422 | validare | The route takes no parameters apart from lang: any other parameter returns 422 instead of being ignored. |
| 429 | cota_depasita | The 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."
]
}
}
}