registercheckby openlaw group
Get started

Quickstart

From an API key to a company record in about two minutes.

1. Get a key

API keys are created in the app, not through the API.

Choose Create API key, give it a name that says where it will be used (billing-service-prod beats key 1), and create it.

Copy the key. It is shown once. If you lose it, revoke it and create another — there is no way to read an existing key back.

2. Call the API

Every request goes to https://api.registercheck.de/v1 and carries your key as a bearer token.

curl "https://api.registercheck.de/v1/search/companies?q=Enduro&limit=3" \
  -H "Authorization: Bearer $REGISTERCHECK_API_KEY"

Python’s standard library is blocked at our edge

Requests sent with the default urllib.request user agent are rejected by our CDN with a 403 and the body error code: 1010 — before they reach the API. Use requests, httpx, or set an explicit User-Agent header on your urllib requests.

3. Read the response

/search/companies returns candidates with a stable id. That id is what every other endpoint takes.

{
  "object": "search_result",
  "data": [
    {
      "object": "company_summary",
      "id": "c359aa06-1ac0-4dab-9c60-d5c69a06ff2c",
      "name": "Enduro Reise & Training GmbH",
      "status": "active",
      "legal_form_code": "gmbh",
      "register": {
        "court": { "code": "M1401", "name": "Amtsgericht Memmingen" },
        "type": "HRB",
        "number": "13557",
        "display": "Amtsgericht Memmingen HRB 13557",
        "country": "DE"
      },
      "city": "Memmingen",
      "incorporation_date": "2011-06-14"
    }
  ],
  "has_more": false,
  "next_page": null,
  "total_count": 4
}

Every list answers in this shape: the hits in data, and has_more with next_page to walk further. A register number is a string here and everywhere else — "13557", not 13557 — because a register number is an identifier, not a quantity.

4. Fetch the full record

curl "https://api.registercheck.de/v1/companies/c359aa06-1ac0-4dab-9c60-d5c69a06ff2c" \
  -H "Authorization: Bearer $REGISTERCHECK_API_KEY"

You get the register entry as it stands today: name, seat and address, stated purpose, share capital, legal form, register identity, and a counts block saying how many officers, documents and financial statements exist — so you know whether a sub-resource is worth a call before you spend a credit on it.

Officers, documents, statements, ownership and history are separate endpoints rather than one large object. Add ?expand=officers if you want the first page of officers inline at no extra charge.

Next

On this page