# Directors and officers

> Directors and officers with roles and appointment dates, taken from the register.

Canonical: https://corpoapi.com/solutions/director-search

## Current and historical appointments

Given a company, the officers endpoint returns the people the register records as running it, with their role and their appointment and resignation dates. The list is current and historical, so you can see who is in post now and who was before.

The register is the only source. Nothing here is scraped from a website, and there is no person-search endpoint: officers come back for a company you already hold, which keeps the data inside the scope the register published it in.

## What is returned

One call returns one list:

```bash
curl "https://api.corpoapi.com/v1/companies/gb/{company_number}/officers"
```

Each officer carries a name, the role the register assigned, the jurisdiction, and the appointment dates the register holds. We keep only what the register publishes: name, role, dates, and birth year and month as the register publishes them. National identifiers, full dates of birth and residential addresses are dropped when the data is parsed, so personal data stays inside its published scope.

## What it costs

Officers is one verified company unless the same company was billed in the previous 24 hours, in which case it is free. That rule exists so a flow that fetches a company and then its officers is not billed twice for one company.

## The people behind the company

Given a company, officers returns the officers and other registered roles the register publishes, current and historical, exactly as the register records them.

- Registry roles and appointment dates
- Current and historical appointments
- Company-scoped, never person search

## Officer records straight from the register

Officers come from the register's own officer table, with role and appointment dates. Where a register has no officer table, the call returns a clear 409 so your code branches instead of handling an empty list.

- Officers with registry roles and dates
- 409 officers_not_available when a register has no officer table
- Register-sourced only, never person search

## FAQ

### Can I look up a person by name?

No. Officers are returned for a company you already have. There are no person-search endpoints, which keeps the data within its published scope.

### Where does officer data come from?

From the register itself. Each jurisdiction reports its officer availability on the coverage page, and where there is no officer table the call returns HTTP 409 officers_not_available.

### Is officer data personal data?

Yes, so we minimise it. We keep the name, role, dates and the register's birth year and month, and drop national IDs, full dates of birth and addresses at parse time.
