List new formations
Companies whose first register entry is a new registration (a Neugründung): not a registered-office
move, a conversion or a merger. One formation per company; its id is the company's id.
Order. Newest Registertag first, fully specified and stable:
registration_date descending, then the order we found them in, then id descending
(compared as the lowercase UUID string). Ties never reorder between pages.
Window. The list covers the last 180 days of Registertage. An
registration_date[gte] older than that answers 400 validation_failed. Retrieving
one formation (GET /formations/{formation_id}) works outside the window.
Completeness. Registertage before 2026-09-09 are incomplete until they are back-filled.
Polling. A formation becomes visible after it is discovered: its first register entry
is written about two minutes later and the list refreshes within a minute, so a formation
may appear up to about 3 minutes after we find the company. About a quarter are found days
after their Registertag and sort into the middle of the list. Do not poll on
registration_date or page from the top with ending_before: both miss rows. Poll on
created_at instead, the moment a formation became available here:
GET /formations?created_at[gte]=<T minus 10 minutes>&limit=100, paging withstarting_afteruntilhas_moreisfalse;- deduplicate by
id; - set
Tto the largestcreated_atyou received.
Delivery is at-least-once and eventually consistent: the 10-minute overlap re-reads rows
you already have, which is what deduplicating by id is for.
Costs 10 credits per page.
Authorization
bearerAuth Your API key, sent as Authorization: Bearer rc_live_….
In: header
Query Parameters
First Registertag to include. Without any registration_date or created_at bound, the
list covers the last 30 days; with any of them it covers the whole 180-day window. Older than 180 days answers 400 validation_failed.
^[0-9]{4}-[0-9]{2}-[0-9]{2}$dateLast Registertag to include.
^[0-9]{4}-[0-9]{2}-[0-9]{2}$dateOnly formations that became available through this API at or after this instant. Poll on this.
^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?Z$date-timeOnly formations that became available through this API at or before this instant.
^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?Z$date-timeOnly these legal forms. Repeat the parameter for several (legal_form=gmbh&legal_form=ug). GET /legal-forms lists them all.
items <= 40Only these federal states, as ISO 3166-2 codes (DE-BY). Repeat the parameter for several.
items <= 16Only these registered offices (Sitz). Exact match, ignoring case and umlaut spelling
(Muenchen matches München). Repeat the parameter for several.
items <= 50Minimum registered capital in EUR, as a decimal (25000 or 25000.00). A formation without EUR capital is excluded when either capital bound is set.
^(0|[1-9][0-9]{0,11})(\.[0-9]{1,2})?$Maximum registered capital in EUR, as a decimal.
^(0|[1-9][0-9]{0,11})(\.[0-9]{1,2})?$Words that must all appear, ignoring case and umlaut spelling, in the name, the registered office, the court, the register number or the business purpose.
2 <= length <= 100Page size.
1 <= value <= 10020Return the page after the object with this id. Cannot be combined with ending_before.
uuidReturn the page before the object with this id. Cannot be combined with starting_after.
uuidResponse Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X GET "https://api.registercheck.de/v1/formations" \ -H "Authorization: Bearer $REGISTERCHECK_API_KEY"{ "object": "list", "has_more": true, "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "object": "formation", "registration_date": "2026-09-30", "created_at": "2026-09-30T13:52:00Z", "company": { "object": "company", "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "name": "string" }, "name": "string", "legal_form": "gmbh", "register": { "court": { "code": "D2601", "name": "Amtsgericht München" }, "type": "HRA", "number": "292661", "formatted": "Amtsgericht München HRB 292661", "country": "DE" }, "state": "DE-BW", "registered_office": "Heidenheim an der Brenz", "address": { "street": "string", "postal_code": "string", "city": "string", "care_of": "string", "formatted": "string", "country": "DE" }, "capital": { "amount": "25000.00", "currency": "EUR" }, "purpose": "string", "metadata": { "crm_id": "0015g00000XyZ", "team": "kyc" } } ]}