registercheckby openlaw group

Changelog

What changed in /v1, newest first. Breaking changes link to the migration guide.

/v1 changes in place. A breaking change is marked breaking, and the migration guide has every one of them, old next to new. An old name that keeps working for a while says so on every response with Deprecation and Sunset headers.

October 2026: one model

Breaking. /v1 uses one word for each thing the register holds, the same in every path, field, id and page of these docs. The glossary lists the words; the migration guide lists every change.

  • Ids say what they name: cmp_… for a company, per_… for a person, and so on for every kind. A raw UUID is still accepted until 31 December 2026. An id of the wrong kind answers 400 validation_failed instead of 404.
  • The workspace id on GET /account is a wsp_… id derived one way from the app's id (org_personal_…), which it was before: it no longer matches anything the app shows. No request takes a workspace id.
  • One page envelope for every list and search: {object: "page", data, next_cursor}, paged with cursor. starting_after, ending_before, page, has_more and next_page are gone.
  • One reference shape for a company or person: party, {object, id, name}.
  • Roles: /companies/{company_id}/roles and /persons/{person_id}/roles replace /companies/{id}/officers and /persons/{id}/positions, with one role object. Every list that narrows by role takes role_type; the role's own field is type.
  • Holdings of a person: /persons/{person_id}/holdings, the person's shareholdings.
  • Ownership tree: /companies/{company_id}/ownership-tree replaces depth on /shareholders. A shareholding names its holder (was owner), and a page of shareholders carries extract (was availability).
  • Events: /events with object: "event", a subject, data shaped by the event type, and the register entry it was read from as source. Its previous path, /company-events, keeps answering until 31 December 2026.
  • Monitoring: /destinations (was /notification-endpoints, with address for the address), /deliveries, /event-types and /event-groups (was /monitor-event-types). /alerts is gone: read what a monitor matched at /events?monitor_id= (free), and what was sent at /deliveries. A webhook body is a delivery holding its events. A destination has a cadence: instant, or a daily, weekly or monthly digest at 07:00 Europe/Berlin, and can be a Slack channel.
  • Role events: company.officer.appointed, .changed and .removed are company.role.added, company.role.changed and company.role.removed.
  • Lists: /lists with list and list_item (was /collections).
  • Search answers summary objects with a type (company or person); city moved to address.city, so a summary is a strict subset of its full record.
  • The filter's role criteria are named roles (were officers), and a condition's role type is role_type (was role). name matches a person's first, last or full name as well as a company holder's name, and first_name and last_name match one of a person's names.
  • Errors: a field that fails validation is always 400 validation_failed with errors[]; invalid_request is left for a body that cannot be parsed. Renamed paths answer 410 endpoint_retired naming the replacement.
  • Credits: Registercheck-Credits-Charged is on every response to a call made with a key. Prices did not change.
  • name is the search term on GET /formations and GET /events too; q keeps working on /formations until 31 December 2026.
  • The reference is grouped by the first segment of the path, and lists only what is served. What is planned and not served is on the roadmap.

October 2026: before the one-model release

  • Search takes name. GET /search/companies, /search/persons and /search/suggestions read the search term from name. q keeps working until 31 December 2026.
  • GET /events lists register events across all companies, and GET /events/{event_id} reads one. The previous path, /company-events, keeps working until 31 December 2026.
  • One status rule. The company record, search results, suggestions and the filter derive status the same way, always lowercase: active, liquidation, terminated or unknown.
  • Event types renamed (breaking for monitors that name them): company.shareholder.changed is company.shareholding.changed, and company.shareholders.changed is company.shareholder_list.changed. The old names answer 400 naming the new one.
  • Insolvency and other register entries are monitorable, in the groups insolvency, conversion and other_entries.

2 October 2026

  • legal_form replaces legal_form_code on GET /formations.

1 October 2026

  • The /v1 naming revision: the formations feed (/formations) replaces /search/new-registrations.

17 September 2026

  • The /v1 reference replaces the reference of the earlier API.

On this page