Server definition
- Hash
- sha256:338fce7507a094b23caed49e40bca8ba0882340837f3734a3ac927bb9f0c0b4c
- What it is
- What a remote MCP server returned when asked what it offers: 12 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Schema self-description: the unified id scheme, which filters exist, which\n countries support which capability, and each country's own field catalog. Read-only.\n\n Parameters:\n - country (optional, default \"all\"): \"AT\" | \"DE\" | \"all\" - whose field catalogs to\n include.\n\n Returns {id_scheme, capabilities, countries, countries_unavailable}. ``id_scheme``\n documents the unified company_id (\"AT:123456a\", \"DE:D2601_HRB135076\"; bare national\n ids are accepted, responses always return the prefixed form). ``capabilities`` is\n the per-country capability matrix including each country's supported unified\n filters - a filter absent for a country is applied to the others and reported in a\n notice, never silently dropped. ``countries`` carries each backend's own\n describe_fields payload (code tables, null rules, tool tiers). Call once up front\n when unsure which filter or tool to use; it returns no company data itself.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "all",
"title": "Country",
"type": "string"
}
},
"title": "describe_fieldsArguments",
"type": "object"
},
"name": "describe_fields",
"outputSchema": {
"additionalProperties": true,
"title": "describe_fieldsDictOutput",
"type": "object"
}
},
{
"description": "Export a matched company set as downloadable CSV files (lead lists). Read-only\n over company data; each call writes new short-lived export files (auto-deleted\n after ~1 day).\n\n Parameters:\n - filters (optional): EXACTLY the same unified filters as search_companies.\n - sort (optional): same as search_companies (applies where the country supports\n the field).\n - max_rows (optional, default 1000, max 10000): per-country row ceiling.\n - country (optional, default \"all\"): \"AT\" | \"DE\" | \"all\".\n\n Returns {countries: {<code>: {download_url, rows, columns, ...}}, notices}. ONE\n CSV per country (semicolon-separated, UTF-8 BOM, Excel-ready): each register\n exports its own column set - DE files have no financial columns yet (blank would\n wrongly read as zero). Download links are signed and valid ~60 minutes. A filter a\n country does not support excludes that country with a notice, like\n search_companies. For browsing/ranking on screen use search_companies instead.\n ",
"inputSchema": {
"$defs": {
"NearFilter": {
"description": "Radius anchor: EXACTLY ONE of ``place`` (town name) or ``postal_code``.\nAT postal codes are 4 digits, DE 5 digits - in a cross-country query the postal-code\nanchor therefore pins the anchor country, but matches still come from every queried\ncountry within the radius.",
"properties": {
"place": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Place"
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postal Code"
},
"radius_km": {
"default": 25,
"title": "Radius Km",
"type": "number"
}
},
"title": "NearFilter",
"type": "object"
},
"Sort": {
"description": "Sort request; fields are validated per country (see capabilities.SORT_FIELDS).",
"properties": {
"descending": {
"default": true,
"title": "Descending",
"type": "boolean"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Field"
}
},
"title": "Sort",
"type": "object"
},
"UnifiedSearchFilters": {
"description": "Every field optional, AND-combined. A filter a country does not support excludes\nthat country from a country=\"all\" fan-out (with an explicit notice); on an explicit\nsingle-country query it is rejected with the capability notice instead.",
"properties": {
"bilanzsumme_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bilanzsumme Max"
},
"bilanzsumme_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bilanzsumme Min"
},
"bundesland": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bundesland"
},
"capital_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Capital Max"
},
"capital_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Capital Min"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"company_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Company Ids"
},
"employees_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Employees Max"
},
"employees_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Employees Min"
},
"equity_ratio_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Ratio Max"
},
"equity_ratio_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Ratio Min"
},
"event_signal": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Signal"
},
"event_since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Since"
},
"event_until": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Until"
},
"fnrs": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Fnrs"
},
"founded_year_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Founded Year Max"
},
"founded_year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Founded Year Min"
},
"gegenstand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Gegenstand"
},
"geschaeftszweig": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Geschaeftszweig"
},
"gf_age_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Gf Age Min"
},
"growth_profile": {
"anyOf": [
{
"enum": [
"shrinking",
"stable",
"growing",
"fast_growing"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Growth Profile"
},
"has_guv": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Has Guv"
},
"has_guv_latest": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Has Guv Latest"
},
"last_filing_year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Filing Year Min"
},
"legal_form": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Legal Form"
},
"manager_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Manager Name"
},
"nace_class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Class"
},
"nace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Division"
},
"nace_group": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Group"
},
"nace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Section"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"near": {
"anyOf": [
{
"$ref": "#/$defs/NearFilter"
},
{
"type": "null"
}
],
"default": null
},
"oenace_class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Class"
},
"oenace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Division"
},
"oenace_group": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Group"
},
"oenace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Section"
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postal Code"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"registergericht": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Registergericht"
},
"revenue_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Revenue Max"
},
"revenue_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Revenue Min"
},
"size_gkl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Size Gkl"
},
"stammkapital_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Stammkapital Max"
},
"stammkapital_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Stammkapital Min"
},
"status": {
"default": "all",
"enum": [
"active",
"inactive",
"all"
],
"title": "Status",
"type": "string"
},
"wz_confidence_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Wz Confidence Min"
},
"wz_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Wz Section"
}
},
"title": "UnifiedSearchFilters",
"type": "object"
}
},
"properties": {
"country": {
"default": "all",
"title": "Country",
"type": "string"
},
"filters": {
"anyOf": [
{
"$ref": "#/$defs/UnifiedSearchFilters"
},
{
"type": "null"
}
],
"default": null
},
"max_rows": {
"default": 1000,
"title": "Max Rows",
"type": "integer"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "export_companies_csvArguments",
"type": "object"
},
"name": "export_companies_csv",
"outputSchema": {
"additionalProperties": true,
"title": "export_companies_csvDictOutput",
"type": "object"
}
},
{
"description": "Companies most similar to a given one - optionally ACROSS THE BORDER. Read-only.\n\n Parameters:\n - company_id (required): \"AT:{fnr}\" or \"DE:{court}_{type}{number}\" (bare national\n ids accepted), from a search card.\n - n (optional, default 10): how many peers per country.\n - cross_border (optional, default false): when true, additionally returns\n ``peers_abroad`` - the companies in the OTHER country whose registered purpose\n is semantically closest to the reference company's activity text.\n\n Returns {company_id, country, peers_home, home_envelope, peers_abroad?, notes}.\n ``peers_home`` uses the home register's own peer logic (AT: same size class,\n same industry preferred, nearest by Bilanzsumme; DE: semantic-first by registered\n purpose). ``peers_abroad`` is a MEANING-based match, not a size or financial\n benchmark - the honest cross-border comparison given the countries' different\n data depth (see notes). Empty peers_home means the id is unknown or the company\n lacks the data its register ranks by. For a strict filtered list use\n search_companies; for aggregates use the country server's cohort tools.\n ",
"inputSchema": {
"properties": {
"company_id": {
"title": "Company Id",
"type": "string"
},
"cross_border": {
"default": false,
"title": "Cross Border",
"type": "boolean"
},
"n": {
"default": 10,
"title": "N",
"type": "integer"
}
},
"required": [
"company_id"
],
"title": "find_peersArguments",
"type": "object"
},
"name": "find_peers",
"outputSchema": {
"additionalProperties": true,
"title": "find_peersDictOutput",
"type": "object"
}
},
{
"description": "Full profile for ONE company, routed by its unified id. Read-only.\n\n Parameters:\n - company_id (required): \"AT:{fnr}\" (e.g. \"AT:123456a\") or\n \"DE:{court}_{type}{number}\" (e.g. \"DE:D2601_HRB135076\"); bare national ids are\n accepted too. Take it from a search card's ``company_id``.\n - max_signatories (optional, DE only): cap on the served officer list (DE default\n 15, 0 = all); ignored for AT.\n\n Returns the country backend's full profile plus ``country`` and the prefixed\n ``company_id``. AT: identity, location, per-year Bilanz + GuV, ratios, growth,\n filings, management, events. DE: identity, seat, Stammkapital, Gegenstand, WZ/NACE\n classification, managing directors (birth year only) - German financial statements\n are not covered yet, so never report them as zero or missing. Unknown id ->\n {error: not_found}. Use search_companies first when you only have a name.\n ",
"inputSchema": {
"properties": {
"company_id": {
"title": "Company Id",
"type": "string"
},
"max_signatories": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Signatories"
}
},
"required": [
"company_id"
],
"title": "get_company_detailsArguments",
"type": "object"
},
"name": "get_company_details",
"outputSchema": {
"additionalProperties": true,
"title": "get_company_detailsDictOutput",
"type": "object"
}
},
{
"description": "Dataset coverage and the capability matrix, per country. Read-only.\n CALL THIS FIRST before concluding that something does not exist in a country.\n\n Parameters:\n - country (optional, default \"all\"): \"AT\" | \"DE\" | \"all\" - which countries to include.\n\n Returns {countries: {<code>: <that backend's coverage payload>}, capabilities,\n countries_unavailable}. Each country section is the country backend's own coverage\n dashboard (AT: parsed-financials counts by format/status; DE: per-Bundesland counts\n + fill rates - the DE backfill is still running, so a low count means \"not crawled\n yet\", not \"does not exist\"). ``capabilities`` is the machine-readable matrix of what\n each country supports (financials, documents, events windows, filters); a country\n that cannot be reached appears under ``countries_unavailable`` with the error\n instead of failing the whole call. For valid filter values use describe_fields;\n for per-company data use search_companies.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "all",
"title": "Country",
"type": "string"
}
},
"title": "get_coverageArguments",
"type": "object"
},
"name": "get_coverage",
"outputSchema": {
"additionalProperties": true,
"title": "get_coverageDictOutput",
"type": "object"
}
},
{
"description": "On-demand official register PDF for ONE German company. Read-only.\n\n Parameters:\n - company_id (required): \"DE:{court}_{type}{number}\" (e.g. \"DE:D2601_HRB135076\"); a bare\n German id works too. Austria is not supported here (its document flow is different).\n - kind (optional): \"AD\" = Aktueller Abdruck (current register extract, default),\n \"CD\" = Chronologischer Abdruck.\n\n Fetches the official PDF from handelsregister.de on demand (first call ~10 s, then cached)\n and returns a short-lived download link: {company_id, kind, url, bytes, cached, available,\n source, expires_at, expires_in_seconds}. When the register holds nothing for that kind,\n ``available`` is false with a ``note`` (never a dead link). A non-DE id returns an error.\n ",
"inputSchema": {
"properties": {
"company_id": {
"title": "Company Id",
"type": "string"
},
"kind": {
"default": "AD",
"title": "Kind",
"type": "string"
}
},
"required": [
"company_id"
],
"title": "get_documentArguments",
"type": "object"
},
"name": "get_document",
"outputSchema": {
"additionalProperties": true,
"title": "get_documentDictOutput",
"type": "object"
}
},
{
"description": "Aggregate counts of register changes by type and region, per country. Read-only.\n\n Parameters (all optional): since / until (default last 30 days); bundesland;\n nace_section; nace_division (AT); legal_form (AT); country (\"AT\" | \"DE\" | \"all\").\n\n Returns {countries, per_country, windows, notices}, each country's block being its\n own {total, by_type, by_bundesland}. Only AT exposes event statistics today; DE is\n reported in notices as not yet available (never as zero). For the individual\n changes use list_events.\n ",
"inputSchema": {
"properties": {
"bundesland": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bundesland"
},
"country": {
"default": "all",
"title": "Country",
"type": "string"
},
"legal_form": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Legal Form"
},
"nace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Division"
},
"nace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Section"
},
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Since"
},
"until": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Until"
}
},
"title": "get_event_statsArguments",
"type": "object"
},
"name": "get_event_stats",
"outputSchema": {
"additionalProperties": true,
"title": "get_event_statsDictOutput",
"type": "object"
}
},
{
"description": "Your own API-key usage across both registers: call count and weighted\n compute-units, per tool. Read-only.\n\n Parameters:\n - window (optional, default \"today\"): \"today\" | \"yesterday\" | \"month_to_date\" |\n \"last_30_days\" | \"all\".\n\n Returns only the calling key's own usage (totals + per-tool breakdown) for that\n window - never another user's data and never the email behind the key. One meter\n spans AT and DE, since the facade is the single billing point. Use it to check your\n consumption against the plan's rate limits.\n ",
"inputSchema": {
"properties": {
"window": {
"default": "today",
"title": "Window",
"type": "string"
}
},
"title": "get_my_usageArguments",
"type": "object"
},
"name": "get_my_usage",
"outputSchema": {
"additionalProperties": true,
"title": "get_my_usageDictOutput",
"type": "object"
}
},
{
"description": "Cross-company, cross-country feed of register CHANGES, newest first - the\n market-watch / deal-sourcing surface. Read-only.\n\n Parameters (all optional, AND-combined):\n - types: any of the SUPERSET enum - founding, new_registration, deletion,\n deletion_announced, name_change, seat_change, legal_form_change, capital_change,\n management_change, management_join, management_leave, gegenstand_change, merger,\n split, conversion, contribution, consolidation, division,\n shareholder_capital_change. Each country's feed carries a SUBSET; a type not in\n a country's feed is skipped for that country (reported in notices), and a\n country with none of the requested types is excluded. Note new_registration (DE,\n a discovery date) and founding (AT, a register event) are distinct - see\n describe_fields.\n - since / until: ISO dates. Default window: last 30 days.\n - bundesland: full state name.\n - nace_section (A-U, both countries); nace_division (AT only); legal_form (AT only).\n - company_ids: prefixed watchlist; AT filters the whole list, DE filters ONE id at\n a time (pass a single DE id, or query DE separately).\n - country: \"AT\" | \"DE\" | \"all\" (default). page (1), page_size (25).\n\n Returns {countries, events, per_country, windows, notices}. ``events`` are merged\n newest-first, each with ``country`` and a prefixed ``company_id``; AT events add\n before/after values only for the detailed types. ``windows`` states each country's\n data availability (AT: detailed >= 2026-07-01, coarse >= ~2020; DE: >= 2026-07-30)\n so an empty stretch is never mistaken for missing data. For aggregate counts use\n get_event_stats; for one company's history use get_company_details.\n ",
"inputSchema": {
"properties": {
"bundesland": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bundesland"
},
"company_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Company Ids"
},
"country": {
"default": "all",
"title": "Country",
"type": "string"
},
"legal_form": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Legal Form"
},
"nace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Division"
},
"nace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Section"
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 25,
"title": "Page Size",
"type": "integer"
},
"since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Since"
},
"types": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Types"
},
"until": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Until"
}
},
"title": "list_eventsArguments",
"type": "object"
},
"name": "list_events",
"outputSchema": {
"additionalProperties": true,
"title": "list_eventsDictOutput",
"type": "object"
}
},
{
"description": "Liveness probe: confirms the unified register server is up. Read-only.\n\n Parameters:\n - check_backends (optional, default false): when true, additionally performs a\n cheap connection handshake against every configured country backend and reports\n per-country reachability (\"ok\" / \"unreachable\").\n\n Returns {status, server, countries, provenance} - countries maps each configured\n country code to its backend product name and, with check_backends, its live\n reachability. Use get_coverage for data completeness; this tool only says whether\n the service is up.\n ",
"inputSchema": {
"properties": {
"check_backends": {
"default": false,
"title": "Check Backends",
"type": "boolean"
}
},
"title": "pingArguments",
"type": "object"
},
"name": "ping",
"outputSchema": {
"additionalProperties": true,
"title": "pingDictOutput",
"type": "object"
}
},
{
"description": "Find companies across the Austrian Firmenbuch and the German Handelsregister -\n START HERE for any company lookup. Read-only.\n\n Parameters:\n - filters (optional): every field optional, AND-combined. Shared core (both\n countries): name (substring), query (MEANING-based hybrid search over the\n registered purpose - both countries), status (active|inactive|all, default all),\n legal_form, bundesland, city, postal_code (prefix; AT PLZ 4-digit, DE 5-digit),\n near {place | postal_code, radius_km} (radius search, matches from EVERY queried\n country within the radius - works across the border), nace_section (A-U; OENACE\n == WZ == NACE Rev. 2, so one industry code filters both countries), gegenstand\n (literal substring over the registered activity text), manager_name (person\n search), company_ids (prefixed watchlist, e.g. [\"AT:123456a\",\n \"DE:D2601_HRB135076\"], max 100). AT-only today (see describe_fields\n capabilities): nace_division/group, size_gkl, bilanzsumme/revenue/equity_ratio/\n employees ranges, growth_profile, has_guv(_latest), last_filing_year_min,\n founded_year_min/max, gf_age_min, event_signal/since/until. DE-only:\n registergericht, capital_min/max (Stammkapital). Country aliases\n (geschaeftszweig, oenace_*, wz_section, fnrs, stammkapital_*) are accepted.\n - sort (optional): {field, descending}. AT fields: bilanzsumme (default), revenue,\n equity_ratio, employees, last_filing_year, revenue_growth_1y/3y/5y, distance.\n DE fields: name, register_nummer, capital. A country that cannot sort by the\n requested field returns its default order (reported in notices).\n - page (default 1), page_size (default 25).\n - after (optional): KEYSET paging for bulk extraction - single country only\n (cursors are per register). Pass \"\" to start, then the country's next_after\n from per_country.\n - exact_count (optional, default false): force exact totals (costs a full scan).\n - country (optional, default \"all\"): \"AT\" | \"DE\" | \"all\".\n\n Returns {countries, total: {AT, DE, combined}, results, per_country, notices}.\n ``results`` are compact cards, each with ``country`` and the prefixed\n ``company_id``; with country=\"all\" the list is AT block then DE block - each\n country keeps its own ranking (no fake interleave). ``per_country`` carries each\n register's own envelope (exact totals or lower bounds, applied_filters,\n relaxations on zero hits, query_mode, next_after). A filter one country does not\n support excludes that country and says so in ``notices`` - it is never silently\n dropped; an unreachable backend appears in ``countries_unavailable`` instead of\n failing the call. Never report a German company's financials as zero - DE\n financial data is not covered yet (see get_coverage).\n\n For one company's full profile use get_company_details; for a downloadable list\n use export_companies_csv; for dataset completeness use get_coverage.\n ",
"inputSchema": {
"$defs": {
"NearFilter": {
"description": "Radius anchor: EXACTLY ONE of ``place`` (town name) or ``postal_code``.\nAT postal codes are 4 digits, DE 5 digits - in a cross-country query the postal-code\nanchor therefore pins the anchor country, but matches still come from every queried\ncountry within the radius.",
"properties": {
"place": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Place"
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postal Code"
},
"radius_km": {
"default": 25,
"title": "Radius Km",
"type": "number"
}
},
"title": "NearFilter",
"type": "object"
},
"Sort": {
"description": "Sort request; fields are validated per country (see capabilities.SORT_FIELDS).",
"properties": {
"descending": {
"default": true,
"title": "Descending",
"type": "boolean"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Field"
}
},
"title": "Sort",
"type": "object"
},
"UnifiedSearchFilters": {
"description": "Every field optional, AND-combined. A filter a country does not support excludes\nthat country from a country=\"all\" fan-out (with an explicit notice); on an explicit\nsingle-country query it is rejected with the capability notice instead.",
"properties": {
"bilanzsumme_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bilanzsumme Max"
},
"bilanzsumme_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bilanzsumme Min"
},
"bundesland": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Bundesland"
},
"capital_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Capital Max"
},
"capital_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Capital Min"
},
"city": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "City"
},
"company_ids": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Company Ids"
},
"employees_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Employees Max"
},
"employees_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Employees Min"
},
"equity_ratio_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Ratio Max"
},
"equity_ratio_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Ratio Min"
},
"event_signal": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Signal"
},
"event_since": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Since"
},
"event_until": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Event Until"
},
"fnrs": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Fnrs"
},
"founded_year_max": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Founded Year Max"
},
"founded_year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Founded Year Min"
},
"gegenstand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Gegenstand"
},
"geschaeftszweig": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Geschaeftszweig"
},
"gf_age_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Gf Age Min"
},
"growth_profile": {
"anyOf": [
{
"enum": [
"shrinking",
"stable",
"growing",
"fast_growing"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Growth Profile"
},
"has_guv": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Has Guv"
},
"has_guv_latest": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Has Guv Latest"
},
"last_filing_year_min": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Filing Year Min"
},
"legal_form": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Legal Form"
},
"manager_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Manager Name"
},
"nace_class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Class"
},
"nace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Division"
},
"nace_group": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Group"
},
"nace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Nace Section"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Name"
},
"near": {
"anyOf": [
{
"$ref": "#/$defs/NearFilter"
},
{
"type": "null"
}
],
"default": null
},
"oenace_class": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Class"
},
"oenace_division": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Division"
},
"oenace_group": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Group"
},
"oenace_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Oenace Section"
},
"postal_code": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Postal Code"
},
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Query"
},
"registergericht": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Registergericht"
},
"revenue_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Revenue Max"
},
"revenue_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Revenue Min"
},
"size_gkl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Size Gkl"
},
"stammkapital_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Stammkapital Max"
},
"stammkapital_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Stammkapital Min"
},
"status": {
"default": "all",
"enum": [
"active",
"inactive",
"all"
],
"title": "Status",
"type": "string"
},
"wz_confidence_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Wz Confidence Min"
},
"wz_section": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Wz Section"
}
},
"title": "UnifiedSearchFilters",
"type": "object"
}
},
"properties": {
"after": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "After"
},
"country": {
"default": "all",
"title": "Country",
"type": "string"
},
"exact_count": {
"default": false,
"title": "Exact Count",
"type": "boolean"
},
"filters": {
"anyOf": [
{
"$ref": "#/$defs/UnifiedSearchFilters"
},
{
"type": "null"
}
],
"default": null
},
"page": {
"default": 1,
"title": "Page",
"type": "integer"
},
"page_size": {
"default": 25,
"title": "Page Size",
"type": "integer"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null
}
},
"title": "search_companiesArguments",
"type": "object"
},
"name": "search_companies",
"outputSchema": {
"additionalProperties": true,
"title": "search_companiesDictOutput",
"type": "object"
}
},
{
"description": "Find every company a person runs or represents - across BOTH registers in one\n call (cross-border person search). Read-only.\n\n Parameters:\n - name (required): person name substring, case-insensitive, e.g. \"Mustermann\".\n - country (optional, default \"all\"): \"AT\" | \"DE\" | \"all\".\n - page_size (optional, default 25): results per country.\n - status (optional, default \"all\"): \"active\" | \"inactive\" | \"all\".\n\n Returns the merged search_companies envelope ({countries, results, per_country,\n notices}) plus ``person_query``; every result card carries ``country``,\n ``company_id`` and the matched manager. AT matches the primary managing director,\n DE matches all managing directors AND registered signatories. IMPORTANT: matching\n is by name and the registers publish birth YEAR only - a shared name across\n companies or countries does not prove the same person (the notice says so; use\n birth years and context to corroborate). For general company search use\n search_companies with other filters; manager_name can be combined there too.\n ",
"inputSchema": {
"properties": {
"country": {
"default": "all",
"title": "Country",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
},
"page_size": {
"default": 25,
"title": "Page Size",
"type": "integer"
},
"status": {
"default": "all",
"title": "Status",
"type": "string"
}
},
"required": [
"name"
],
"title": "search_personArguments",
"type": "object"
},
"name": "search_person",
"outputSchema": {
"additionalProperties": true,
"title": "search_personDictOutput",
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:338fce7507a094b23caed49e40bca8ba0882340837f3734a3ac927bb9f0c0b4c | sha256sum