Jurisdictions
How to use any jurisdiction with the Kausate API, and where to find what is specific to one
Kausate reaches official business registers country by country. The way you call them is the same everywhere — this page — and what differs is on each jurisdiction's own page: which operations are available there, which identifiers it accepts, which documents you can order, and whether it needs your own registry account.
How to read a jurisdiction page
Each page lists operations with a platform-wide status:
| Status | What it means |
|---|---|
| Live | Callable now. |
| Live — needs your credentials | Callable once you have connected your own registry account. See below. |
| Limited access | Available, but switched on per organisation. Ask us to enable it. |
| Coming soon | Not available here yet. Calling it returns an error, so do not build against it until it is live. |
| On request | We can fulfil it, but not through a self-service API call. |
An operation that is not listed is not available there. Pages are generated from what the platform can actually do, so absence is deliberate rather than an omission.
Status is platform-wide; whether your organisation may call something also
depends on your entitlements.
GET /v2/platform/jurisdictions
returns the same statuses plus an enabled flag scoped to your API key.
The operations
The same nine operations exist across the platform, and a jurisdiction page lists only the ones that jurisdiction has. What each one does never varies by country, so it is said here rather than on every jurisdiction page:
| Operation | What it does |
|---|---|
| Autocomplete | Type-ahead company name lookup. |
| Company search | Find a company by name or identifier. |
| Company report | Registered details for one company. |
| Shareholder graph | Ownership structure, traversed through corporate shareholders. |
| Beneficial owners | Ultimate beneficial owners for one company. |
| Financials | Filed figures as structured data. |
| List documents | What this company has on file. |
| Retrieve a document | Fetch a filing as a PDF. |
| Prefill | Fill a form from a company identifier. |
Finding and identifying a company
Three ways in, depending on what you already hold:
- A
kausateId—co_de_4JFFrsbQ99t1nmRw2JgzmG. Search returns it and it never changes. Report, ownership, financials and document operations take only this, so search first, then order. - A name or a registration number — send them to
search as
companyNameandcompanyNumberalongside thejurisdictionCode. Both work in every jurisdiction, which is what makes one code path able to cover many countries. You never say which kind of number you hold: it is matched against the schemes that jurisdiction uses. - An
advancedQuery— when you need to be exact. Nearly every jurisdiction accepts one, but the fields are its own: Austria takesfnr,gisaCodeandzvrNumber, Italy takesrea,partitaIvaandcciaa, Germany takes a court, a register type and a register number.
Advanced fields rarely carry across a border, and which combinations a register
accepts, rejects or silently ignores is specific to it — so read How to
search on the jurisdiction page before building a query. Registration numbers
are not interchangeable either, and some countries have several that look alike
but identify different things; where that is a trap, the page says so under
Local notes. The same schemes label what comes back in a company's
identifiers, and each page lists them under Company identifiers.
Ordering data
Every data operation comes in two forms, and the choice is yours per call:
- Asynchronous — you get an order back immediately, then poll it or receive a webhook when it completes.
- Synchronous — the call blocks and returns the finished result.
Registers are live systems and some are slow, so asynchronous is the default for anything that may take a while. Ordering the same thing twice in a day does not charge you twice.
The mechanics — endpoints, polling, webhooks, timeouts and daily deduplication — are covered once in Async vs sync. Jurisdiction pages do not repeat them.
Ordering documents
Documents are ordered in one of three ways, and each jurisdiction page's Documents you can order table tells you which applies to each one:
- By shortcut — a jurisdiction-agnostic name such as
register_extractorannual_accounts. The same shortcut works in every country that has that document, so one code path covers many jurisdictions. Order it directly. - By product code — for a document with no cross-jurisdiction equivalent,
such as
DEHRCD. Pass the code in the same field a shortcut goes in, so switching between the two costs nothing in your code. - By document ID — for filings whose availability differs per company, such as individual historical filings. Call list documents for the company first, then order the ID it returns.
Connecting your own registry credentials
We reach most registers with our own access, and your Kausate API key is all you need. A few are legally restricted — access is granted to a named entity rather than sold — so there you connect your own registry account and we authenticate as you. A jurisdiction page says under Access whether this applies and which fields that register expects. The flow below is the same for every one of them.
Store the credentials
Send them to Create Integration, naming the datasource and the fields from the jurisdiction page:
curl -X POST "https://api.kausate.com/v2/integrations" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"datasourceSlug": "de-transparenzregister",
"secretValues": {
"email": "registered-entity@example.com",
"password": "the-account-password"
}
}'The response confirms what was stored, with timestamps, and never echoes the values back:
{
"datasourceSlug": "de-transparenzregister",
"datasourceName": "Transparenzregister",
"createdAt": "2026-06-06T10:00:00Z",
"updatedAt": "2026-06-06T10:00:00Z"
}Credential values are write-only — used to make calls, never returned by any endpoint. Manage them with List, Update to rotate a password, and Delete.
Keep multiple customers separate
If you act for several end customers, each supplies their own account. Pass a
customerId when storing, and the same value later selects which set to use:
curl -X POST "https://api.kausate.com/v2/integrations?customerId=acme-bank" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"datasourceSlug": "de-transparenzregister",
"secretValues": { "email": "kyb@acme-bank.example", "password": "..." }
}'customerId must be URL-safe (letters, numbers, dashes, underscores) and at
most 150 characters. Omit it to store one set at the organisation level, used
for every call.
Call with those credentials
Send the customer's identifier in the X-Customer-Id header — it selects the
matching credential set and scopes the order to that customer:
curl -X POST "https://api.kausate.com/v2/companies/ubo" \
-H "X-API-Key: $API_KEY" \
-H "X-Customer-Id: acme-bank" \
-H "Content-Type: application/json" \
-d '{ "kausateId": "co_de_4JFFrsbQ99t1nmRw2JgzmG" }'Pass the same header when polling the order back, and omit it to use the organisation-level credentials. Calling a credentialed source with nothing configured returns a clear "credentials not configured" error rather than empty data.
When something goes wrong
Errors use one shape and one vocabulary everywhere — the same status codes and
the same dotted code values regardless of which register was behind the call.
They are documented once, in Errors, including what happens
when an asynchronous order fails after it was accepted.
All jurisdictions
al6 operations · 3 documents
ca-ab7 operations · 1 document
au6 operations · 1 document
at9 operations · 9 documents
bh6 operations · 2 documents
be9 operations · 4 documents
ba5 operations
br3 operations
ca-bc4 operations · 3 documents
bg8 operations · 4 documents
us-ca3 operations
ca6 operations
cl3 operations
cn4 operations · 1 document
co5 operations
us-co6 operations · 1 document
hr5 operations · 2 documents
cy6 operations · 1 document
cz8 operations · 3 documents
us-de2 operations
dk9 operations · 4 documents
do4 operations
ec6 operations
ee9 operations · 4 documents
fo8 operations · 2 documents
fi6 operations · 6 documents
us-fl3 operations
fr8 operations · 5 documents
ge6 operations · 2 documents
us-ga4 operations · 1 document
de9 operations · 17 documents
gr7 operations · 2 documents
gl9 operations · 4 documents
gg2 operations
hk7 operations · 4 documents
hu7 operations · 1 document
is7 operations · 2 documents
in4 operations
id2 operations
ie8 operations · 1 document
im2 operations
il4 operations
it7 operations · 5 documents
je4 operations · 2 documents
jo5 operations
zz9 operations · 1 document
kz1 operation
xk3 operations
lv9 operations · 2 documents
li3 operations
lt5 operations
lu7 operations · 4 documents
ca-mb3 operations
md4 operations
mc4 operations
mm4 operations
nl9 operations · 3 documents
us-nv3 operations · 1 document
us-nj2 operations
us-ny5 operations · 1 document
nz6 operations · 3 documents
ca-nl3 operations
ng3 operations
us-nc4 operations · 1 document
mk2 operations
ca-nt4 operations · 1 document
no8 operations · 4 documents
ca-ns4 operations
ca-nu3 operations
us-oh4 operations · 1 document
ca-on4 operations · 2 documents
pk1 operation
us-pa3 operations
pl9 operations · 5 documents
pt5 operations
ca-pe5 operations · 1 document
ca-qc6 operations
ro4 operations
ru7 operations · 4 documents
ca-sk4 operations · 2 documents
sg2 operations
sk9 operations · 4 documents
si6 operations · 5 documents
kr8 operations · 1 document
es4 operations
se8 operations · 5 documents
ch7 operations · 2 documents
tw4 operations
us-tx4 operations
th2 operations
tr4 operations
ua5 operations · 1 document
gb9 operations · 6 documents
us8 operations · 2 documents
vn2 operations
us-wa5 operations · 1 document
us-wy4 operations · 1 document
ca-yt4 operations · 1 document
Last updated on