List register events across all companies
Changes the register courts entered for any company, newest register day first. Each item
is the same company_event that GET /companies/{company_id}/events lists for one
company, with the company named in company. A company's first entry, its registration,
is not listed here: new companies are GET /formations.
Events, not entries. One register entry can carry several events: an entry that
removes one managing director and appoints another is two company.officer.* events
with the same register_entry_number.
Order. Newest register day first, fully specified and stable: effective_date
descending, then created_at descending, then id descending. Ties never reorder
between pages.
Window. The list covers the last 180 days of register days. An
effective_date[gte] older than that answers 400 validation_failed. Without any
effective_date[*] or created_at[*] bound, the list covers the last 30 days.
Completeness. Register days before 2026-09-10 are incomplete.
Polling. About 7 % of entries reach Registercheck one or more days after their
register day and sort into the middle of the list, so do not poll on effective_date
or page from the top with ending_before: both miss events. Poll on created_at, the
moment an event became available here, or available again:
GET /events?created_at[gte]=<T minus 10 minutes>&limit=100, paging withstarting_afteruntilhas_moreisfalse;- keep the latest version of each
id: anidyou already have is an update; - set
Tto the largestcreated_atyou received.
Republication. When the register rewrites an entry (its type, day, entry number or the
entry before it changes), its event is served again under the same id with the new values
and a new created_at. An event that no longer stands for a change (it now restates an
earlier entry, or its day left the window) is no longer served, and GET /events/{event_id} answers 404 for it.
Delivery is at-least-once: the 10-minute overlap re-reads events you already have, which
is what deduplicating by id is for. An event whose company or person is restricted
after you listed it is no longer served; a cursor naming it answers
400 validation_failed, and the recipe above recovers from that.
Costs 10 credits per page.
Authorization
bearerAuth Your API key, sent as Authorization: Bearer rc_live_….
In: header
Query Parameters
Only events of these types. Repeat the parameter for several.
items <= 30Only company.officer.* events concerning officers in these roles. Repeat the parameter for several.
items <= 10First register day to include. Without any effective_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 register day to include.
^[0-9]{4}-[0-9]{2}-[0-9]{2}$dateOnly events 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 events 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 companies of these legal forms. Repeat the parameter for several (legal_form=gmbh&legal_form=ug).
items <= 40Only companies in these federal states, as ISO 3166-2 codes (DE-BY). Repeat the parameter for several.
items <= 16Only companies with these registered offices (Sitz). Exact match, ignoring case and
umlaut spelling (Muenchen matches München). Repeat the parameter for several.
items <= 50Only companies registered at this court: its code (D2601), its name
(Amtsgericht München) or its seat (München), as POST /monitors accepts it.
1 <= length <= 100Minimum registered capital in EUR, as a decimal (25000 or 25000.00). Companies without EUR capital are 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 company name, the registered office, the court, the register number or the entry's own text. Not matched against people's names.
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/events" \ -H "Authorization: Bearer $REGISTERCHECK_API_KEY"{ "object": "list", "has_more": true, "data": [ { "id": "2c4e6a8b-1d3f-4a5c-9e7b-0f1a2b3c4d5e", "object": "company_event", "company_id": "3f1c2a9e-5b7d-4c8a-9e21-6d4f0b8a1c55", "company": { "object": "company", "id": "3f1c2a9e-5b7d-4c8a-9e21-6d4f0b8a1c55", "name": "Beispiel Analytics GmbH" }, "type": "company.registered_office.changed", "effective_date": "2026-09-21", "register_entry_number": 7, "officer_role": null, "previous": "München", "current": "Augsburg", "officers": [], "created_at": "2026-09-21T10:14:02Z" }, { "id": "5b7d9f1a-3c5e-4b7d-8f9a-1b2c3d4e5f60", "object": "company_event", "company_id": "9d4c1a2b-7e6f-4a5b-8c3d-2e1f0a9b8c02", "company": { "object": "company", "id": "9d4c1a2b-7e6f-4a5b-8c3d-2e1f0a9b8c02", "name": "Beispiel Bau Holding GmbH" }, "type": "company.officer.appointed", "effective_date": "2026-09-21", "register_entry_number": 4, "officer_role": "managing_director", "previous": null, "current": null, "officers": [ { "type": "person", "name": { "full": "Erika Mustermann", "first": "Erika", "last": "Mustermann", "birth_name": null, "titles": [] }, "birth_date": "1980-05-21", "city": "Ulm", "country": null, "person": null, "match_confidence": null } ], "created_at": "2026-09-21T09:58:40Z" } ]}