oneapi
Sign in
Business v1 / Persoane

People with many companies

The people linked to a large number of companies, in descending order. It is not an accusation: professional directors and insolvency practitioners legitimately appear here.

GET
https://oneapi.ro/api/business/v1/persoane/multi-firme

Query parameters

NameTypeDescriptionAccepted values
minoptional integer | null Minimum number of companies per person; defaults to 10, lowest accepted is 2. 1

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.
  • 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.
  • People linked to a large number of companies — "serial" administrators, points of interest for network analysis. Note that deduplicated namesakes can artificially inflate the count.

What it is for

  • Identifying serial administrators, useful starting points for investigations.
  • A risk signal for compliance teams.
  • Feeding a network-analysis dashboard with the densest nodes.

Response structure

All fields below live inside data.

FieldTypeDescription
prag_minim integer The minimum threshold applied when filtering.
persoane[].id integer The internal identifier.
persoane[].nume string The name.
persoane[].nr_firme integer The number of companies.
persoane[].identificator string 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[].judet_nastere string The county of birth, as published by the register. Together with identificator, it tells namesakes apart when displaying them.

Response examples

GEThttps://oneapi.ro/api/business/v1/persoane/multi-firme?min=5
{
    "data": {
        "prag_minim": 5,
        "persoane": [
            {
                "id": 14400593,
                "identificator": "1a316a50-157a-5cc5-a545-86f333631344",
                "nume": "BERNEANU NICOLETA - SOFIA",
                "judet_nastere": "Bucureşti",
                "nr_firme": 1878
            }
        ]
    }
}

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
422validareAn undeclared parameter or a value that fails validation (min). The offending field is in detalii.
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": "An undeclared parameter or a value that fails validation (min). The offending field is in detalii.",
        "detalii": {
            "min": [
                "The value sent does not satisfy the parameter rule."
            ]
        }
    }
}