---
title: "List a company's people"
method: GET
path: "/api/v1/ackdb/entities/{entityId}/contacts"
tags: ["ackDB"]
---

# List a company's people

`GET /api/v1/ackdb/entities/{entityId}/contacts`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/ackdb/entities/{entityId}/contacts`
- Auth: HTTP bearer

One row per affiliation edge, each carrying the `personId` of the human behind it — the company-side mirror of `GET /persons/{personId}/contacts`.

**`status`** picks which affiliations count (#430):

- `active` (default) — people who work there now. This is what "who works at Acme" means, and it is what `/profile`, `/full` and the AI agent read.
- `former` — ended affiliations only, each stamped with `endedAt`.
- `any` — both, current people first (then newest `lastSeenAt`). Use this to show departures alongside current staff — the champion who left in March is often the whole story.

`any` never includes `disabled` edges: that status is the soft delete behind `DELETE /entities/{entityId}/contacts/{contactId}`, so a removed contact stays removed.

## Path parameters

- `entityId` string, required

## Query parameters

- `status` 'active' | 'former' | 'any'
- `is_external` boolean

## Response `200`

`{ data: Contact[] }` — each with `personId`, `status`, and `endedAt` when former.

- object
  - `data` unknown, required

## Other responses

- `400`: Unrecognised `status` value.
- `404`: Entity not found.

---

[API](https://skmtc.dev/floqer/apis/floqer-public-api.md) - [All operations](https://skmtc.dev/floqer/apis/floqer-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/floqer/apis/floqer-public-api/revisions/fce50dc07b20?raw)
