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.