List events
Changes the register courts entered for any company, newest register day first. Each item
is an event, the same body GET /companies/{company_id}/events lists for one company,
with the company named in subject. Across all companies, a company's first entry, its
registration, is not listed: 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.role.* events
with the same source, the register_entry.
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:
it misses 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 withcursoruntilnext_cursorisnull;- 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.
Scope. Every company's events by default; one company's whole history with
subject_id; what one of your monitors matched with monitor_id.
Costs 10 credits per page; free with monitor_id.
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 this company's events: its whole register history, not just the 180-day window.
GET /companies/{company_id}/events is the same list. Cannot be combined with the
filters that describe companies (legal_form, state, registered_office,
register_court, capital[*], name). An unknown company answers 404; a merged
one 301 to the surviving company's history.
^cmp_[0-7][0-9a-hjkmnp-tv-z]{25}$Only the events one of your monitors matched, including the ones only a monitor
reports (a holder on a filed shareholder list, published annual accounts). Free.
Ordered by effective_date descending, then by the moment the monitor matched the
event, descending, then by id. Combines with type, effective_date[*],
created_at[*], limit and cursor only. Another workspace's monitor, or
an unknown one, answers 404.
^mon_[0-7][0-9a-hjkmnp-tv-z]{25}$Only company.role.* events about roles of these types. 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 to 100.
1 <= value <= 10020The next_cursor of the previous page; leave it out for the first page. Opaque: pass it
back as it came. A cursor from another list, or from the same list with other filters,
answers 400 validation_failed naming cursor.
1 <= length <= 2000Response Body
application/json
application/problem+json
application/problem+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": "page", "data": [ { "object": "event", "id": "evt_1c9sn8p79z99e9wyrf38nkrkay", "type": "company.registered_office.changed", "subject": { "object": "company", "id": "cmp_1z3gn9wpvx9j59w8bd9w5rm72n", "name": "Beispiel Analytics GmbH" }, "data": { "previous": "München", "current": "Augsburg" }, "source": { "object": "register_entry", "id": "rge_5eky11h94ab0x8v3mycttnj4ja", "number": 7, "published_on": null, "text": "Augsburg" }, "effective_date": "2026-09-21", "created_at": "2026-09-21T10:14:02Z" }, { "object": "event", "id": "evt_2vfpfhmf2y9dyrz6gv5gymwqv0", "type": "company.role.added", "subject": { "object": "company", "id": "cmp_4x9gd2pzkf99drrf9e3w59q302", "name": "Beispiel Bau Holding GmbH" }, "data": { "holder": { "object": "person", "id": null, "name": "Erika Mustermann" }, "role_type": "managing_director" }, "source": { "object": "register_entry", "id": "rge_5rdf656qw1btfsfqeksnp4jt64", "number": 4, "published_on": null, "text": null }, "effective_date": "2026-09-21", "created_at": "2026-09-21T09:58:40Z" } ], "next_cursor": "eyJ2IjoxLCJrIjoibGlzdEV2ZW50czozYzFlOWEwYjdkMmY0ZTYxIiwiYSI6IjViN2Q5ZjFhLTNjNWUtNGI3ZC04ZjlhLTFiMmMzZDRlNWY2MCJ9"}