---
title: "Company officers: directors and secretaries, or an LLP's designated members and members"
method: GET
path: "/live/officers/{number}"
tags: ["Live"]
---

# Company officers: directors and secretaries, or an LLP's designated members and members

`GET /live/officers/{number}`

## Request

- Base URL: `https://api.companystack.co.uk`
- URL: `https://api.companystack.co.uk/live/officers/{number}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Real-time list of current and resigned officers: directors and secretaries of a company, designated members and members of an LLP, general and limited partners of a limited partnership when Companies House lists them, and other officers. total_results, active_count, resigned_count and inactive_count are Companies House's counts for the whole list (appointments, not people), less any appointment withheld at the request of the person named on this page; complete is true when this page holds every appointment on the register, and returned is the number of items in the answer. When the list is longer than the page and a withheld appointment could be beyond it, the counts are this page's own and complete is false. Each item carries officer_id (the person, for GET /officers/{officer_id}/appointments), appointment_id (this appointment) and, for a corporate officer, identification as Companies House gives it.

## Path parameters

- `number` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Officers list with Companies House's counts: { company_number, total_results, active_count, resigned_count, inactive_count, complete, returned, items: [{ officer_id, appointment_id, name, officer_role, appointed_on, resigned_on, nationality, occupation, country_of_residence, date_of_birth: { month, year }, identification, address }] }

## Other responses

- `401`: API key missing, malformed or revoked
- `403`: The key's plan does not include this endpoint (`code: plan_upgrade_required`, with `upgrade_url`), the key may not call it, or the key is beyond the plan's key limit after a downgrade (`code: key_limit_exceeded`: the newest keys are paused until keys are deleted or the plan upgraded)
- `429`: Per-minute or per-day limit reached (`code: rate_limited`, `window: minute|day`). Wait `Retry-After` seconds; when both windows are full the day is reported. A refused request does not count against either limit. A bulk lookup (`POST /company/bulk`) counts each company number in it as one request, so one that is more than you have left is refused whole, and the body adds `requested` and `fits`.

---

[API](https://skmtc.dev/companystack/apis/companystack-api.md) · [All operations](https://skmtc.dev/companystack/apis/companystack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companystack/apis/companystack-api/revisions/8f3234237d2d?raw)
