# Company officers

> List officers a register publishes, name, role, and appointment dates, with records sourced from the register's own officer table.

Canonical: https://corpoapi.com/endpoints/officers

## Integration

`GET /v1/companies/{jurisdiction}/{company_number}/officers`

Example request: `/v1/companies/se/5560295197/officers`

Response: The officers the register publishes, each with name, role, appointment dates and current status. Where a register has no officer table, the response is HTTP 409 with code officers_not_available, so the caller can branch.

Webhook: none. Officers return synchronously.

## API reference

`GET /v1/companies/se/5560295197/officers`

```json
{
  "type": "https://corpoapi.com/errors/officers_not_available",
  "title": "Officers not available",
  "status": 409,
  "code": "officers_not_available",
  "detail": "Officers are not published for se."
}
```

Example response. Source metadata omitted for clarity.

| Status | Code | When |
| --- | --- | --- |
| 409 | `officers_not_available` | The register for that jurisdiction does not publish an officer table. Not billed. |
| 404 | `company_not_found` | No company matches that number in that jurisdiction. Never billed. |
| 429 | `rate_limited` | A rate limit window is exceeded. Retry-After says how long to wait. |
| 402 | `free_tier_exhausted` | The free tier is used up and the company was not billed in the last 24 hours. |

Price: $0.01 per verified company.

## The people the register publishes

Officers returns the officers and other registered roles a register publishes, with role and appointment dates. We keep only what the register publishes: name, role, dates, and birth year and month as the register publishes them.

- Current and historical appointments
- Registry role and jurisdiction
- No personal data the register does not publish

## Free when you just looked up the company

Officers is free if the same company was billed in the previous 24 hours, and one verified company otherwise. Records come from the register's own officer table; where a register has none, the endpoint returns HTTP 409 officers_not_available so your code branches on the response.

- Free within 24 hours of a billed company lookup
- One verified company otherwise
- 409 officers_not_available when a register has no officer table

## FAQ

### How do you handle officer data across countries?

Officer records come from the register's own officer table. Where a register has no officer table, the call returns HTTP 409 officers_not_available and your code branches on the response.

### Is officer data personal data?

Yes. We keep only what the register itself publishes, which is name, role, appointment dates, and birth year and month as the register publishes them, and drop national IDs, full dates of birth and addresses at parse time.

### Can I search for a person?

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