Company records in Germany
Your agent looks up companies in Germany through German Company Data. The data comes from OpenRegister (api.openregister.de).
German Company Data
Look up German company identity and registration details, including court, legal form, status, address and directors where available.
- Source
- OpenRegister (api.openregister.de)
- Price per call
- €0.20 · x402 $0.216
- Returns
- Name and number, Status, Address, Officers
- Last recorded test
- 29 Oct 2026, 83% of its tests passed on their latest run
- Method
- Computed by fixed rules and lookups; no AI model writes the answer.
What your agent sends
| Field | Type | Required | What it is |
|---|---|---|---|
court | string | No | Registergericht (German commercial court). Required when providing 'hrb_number'. Example: "Amtsgericht Landsberg a. Lech". |
company_id | string | No | OpenRegister canonical id, e.g. "DE-HRB-F1103-267645". Preferred when known — skips name resolution and consumes one fewer API call. |
hrb_number | string | No | Handelsregister number (e.g. "HRB 2001"). When provided, 'court' is also required — HRB/HRA numbers are per-court and not globally unique. |
company_name | string | No | Company name for fuzzy search via /v1/autocomplete/company. |
Example answer
No published example.
Fields that come back
| Field | Type | Appears |
|---|---|---|
lei | string or null | Sometimes (present only for some inputs) |
court | string or null | Always (present in every successful answer) |
status | one of active, terminated, unknown | Always (present in every successful answer) |
capital | object or null | Usually (present for most inputs) |
directors | array | Usually (present for most inputs) |
is_active | boolean or null | Always (present in every successful answer) |
company_id | string | Always (present in every successful answer) |
legal_form | string or null | Usually (present for most inputs) |
company_name | string or null | Always (present in every successful answer) |
country_code | string | Always (present in every successful answer) |
register_type | string or null | Always (present in every successful answer) |
terminated_at | string or null | Sometimes (present only for some inputs) |
industry_codes | array | Usually (present for most inputs) |
incorporated_at | string or null | Usually (present for most inputs) |
registered_address | object or null | Usually (present for most inputs) |
registration_number | string or null | Always (present in every successful answer) |
business_description | string or null | Usually (present for most inputs) |
How to call it
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "german-company-data",
"inputs": {
"company_name": "SAP SE"
},
"max_price_cents": 20
}' {
"tool": "strale_execute",
"arguments": {
"slug": "german-company-data",
"inputs": {
"company_name": "SAP SE"
},
"max_price_cents": 20
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "german-company-data",
inputs: {
"company_name": "SAP SE"
},
max_price_cents: 20,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="german-company-data",
inputs={
"company_name": "SAP SE",
},
max_price_cents=20,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/german-company-data?company_name=SAP+SE' Limitations
Provider credits and rate limits affect availability
OpenRegister allows 500 credits per rolling 30 days on the configured plan; a name lookup normally uses 11 credits and a `company_id` lookup 10. HTTP 402 indicates exhausted credits and HTTP 429 a short-term rate limit; the tool can be paused until usable credits are restored.
What to do instead: Use `company_id` when known and reuse results within the permitted refresh window to avoid repeated lookups.
UBO data not covered
Beneficial ownership from the German Transparenzregister is not included.
What to do instead: Request beneficial-ownership information directly from the Transparenzregister with authorised access.
Stored registry data can be up to four weeks old
Company records are refreshed at least every four weeks, with daily updates for financials and new incorporations. The tool does not request a live Handelsregister refresh.
What to do instead: For same-day filings, check Handelsregister directly; `provenance.fetched_at` records retrieval time rather than the original filing time.
HRB/HRA numbers require court (Registergericht)
HRB and HRA numbers are unique only within their registration court, so the same number can identify different companies. Both `hrb_number` and `court` are required for a number lookup.
What to do instead: Prefer 'company_id' (OpenRegister canonical, e.g. "DE-HRB-F1103-267645") when known — it skips the autocomplete step and consumes one fewer Free-tier credit.
Guides for Germany
Bundled checks for Germany
- Company check €1.50
- Full check €2.50
- Invoice-issuer check €2.50
Screen the company or its people
Results are matches for a person to review, not a verdict.
- Sanctions Check €0.20
- PEP Check €0.05
- Adverse Media Check €0.20