List the officers (directors, secretaries) of a company
get_officersRetrieve current and historical company officers from official government registries worldwide, including directors, secretaries, and signatories. Supports cross-company tracing via officer IDs, filtering by active status, and deduplication by person.
Instructions
Return the officers of a company — current directors, secretaries, members, partners, board members, procurists / authorised signatories, liquidators, and (by default, where upstream exposes them) historical resignations.
Each officer has a unified shape (jurisdiction, officer_id, name, role, appointed_on, resigned_on, is_active) plus a jurisdiction_data object carrying the raw upstream fields verbatim. Role labels are passed through in the registry's native language (e.g. Styremedlem, Předseda představenstva, Président, PREZES ZARZĄDU) — translate client-side as needed. Birth-date precision varies by jurisdiction (some registries publish YYYY-MM-DD, some only month + year, some nothing).
officer_id, when present, can be passed to get_officer_appointments to retrieve every other company this person has been appointed to — cross-company tracing is one of the most powerful uses of this tool. Not every jurisdiction issues stable person IDs; corporate officers are usually keyed by the corporate's own company_id, natural persons may be keyed by a synthetic index. Some registries mask officer names under GDPR / privacy rules — that masking is upstream, not server-side.
Flags: include_resigned (default true) toggles historical entries on jurisdictions that expose both; group_by_person deduplicates the same person across consecutive appointments on jurisdictions that support it; fresh: true bypasses the cache. Flags are ignored on registries that don't support them. Jurisdictions that don't publish officer data (or that gate it behind paid extracts) return 501.
Per-country caveats (role-label vocabulary, birth-date precision, resignation coverage, GDPR masking, 501 gating, delta-vs-snapshot semantics) are available on demand — call list_jurisdictions({jurisdiction:"<code>"}) for the full schema, or list_jurisdictions({supports_tool:"get_officers"}) for the country-support matrix. All registries are official government sources.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| jurisdiction | Yes | ISO 3166-1 alpha-2 country code (uppercase). All registries are official government sources. Currently supported: AU, BE, CA, CA-BC, CA-NT, CH, CY, CZ, DE, ES, FI, FR, GB, HK, IE, IM, IS, IT, KR, KY, LI, MC, MX, MY, NL, NO, NZ, PL, RU, TW. Per-country capability, ID format, examples, status mapping, and caveats: call `list_jurisdictions({jurisdiction:'<code>'})`. To find which countries support a specific tool: `list_jurisdictions({supports_tool:'<tool>'})`. | |
| company_id | Yes | ||
| include_resigned | No | Include officers who have resigned. Default true. Set to false to get only currently serving officers. | |
| group_by_person | No | CZ only. When true, dedupe the same person across multiple appointments (e.g. board member → chair → vice-chair) into a single entry. Identity key is (name + datumNarozeni for natural persons, or pravnickaOsoba.ico for corporate). Each grouped entry's jurisdiction_data._appointments[] lists all roles with their dates. Default false (returns one entry per appointment, matching GB behaviour). | |
| fresh | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| queried_at | Yes | ISO-8601 + Europe/London timezone stamp for when the registry was queried. | |
| officers | No | ||
| items | No | ||
| data | No | Adapter returns a bare array; textResult() wraps under `data`. | |
| total_count | No | ||
| next_cursor | No |