registercheckby openlaw group
Understand the data

People

Natural persons, the roles they hold, and the limits of identity matching.

Person records

GET /persons/{id} returns a natural person and the companies where they hold or held a role.

{
  "person": {
    "id": "02c414dd-…",
    "full_name": "Mario Richter",
    "first_name": "Mario",
    "last_name": "Richter",
    "city": null,
    "birth_date": "1959-10-28",
    "profiles": [
      {
        "id": "e1e52844-…",
        "type": "representative",
        "company_id": "05978cff-…",
        "is_general_partner": false,
        "is_confirmed": false,
        "confidence_score": 0.8
      }
    ]
  }
}

profiles is the link to companies. Each entry gives a company_id and the type of role; resolve the company with GET /companies/{id}.

`confidence_score` is a match score, not a fact

A profile with is_confirmed: false is a probabilistic link between a named role holder and a company, not a verified one. confidence_score is that probability. Treat anything below 1.0 as a candidate, and surface the score if you display the link.

Matching is name-based, and names are not unique

A person here is "a named role holder", assembled from register entries. Where the register gives a city and a year of birth, matching is reliable. Where it gives only a name — which is common in older entries — it is not.

Design for this:

  • Do not treat a person id as an identity. Two Rolf Müller entries may be one human or two.
  • Check city and birth_year before merging a person into your own records.
  • Expect duplicates for common names, and expect a single human to appear under several ids across courts.

Roles at a company

GET /companies/{id}/officer-contacts returns the role holders of a company. representatives being null means no register extract has been parsed for that company, not that the company has no management.

Privacy

Register data about natural persons is personal data. Some people have exercised their right to object, and their records are suppressed.

GET /search/persons carries an is_visible flag on every result and never returns a suppressed person.

Re-check suppression before you re-publish

Suppression is applied after the fact, so a person you fetched last month may have been removed since. Re-validate anything you have cached through search before displaying it again, and delete records that no longer come back.

Personal data from this API is subject to the GDPR in your hands as well as ours. A lawful basis for processing it is yours to establish.

On this page