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 ajudet_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"
}
]
}
}
GEThttps://oneapi.ro/api/business/v1/firme/14399840/persoane
{
"data": {
"nr_persoane": 4,
"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/persoane
{
"data": {
"nr_persoane": 3,
"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/persoane
{
"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."
]
}
}
}