---
title: "List buying committee cells"
method: GET
path: "/buying-committee-cells"
tags: ["Buying Committee"]
---

# List buying committee cells

`GET /buying-committee-cells`

## Request

- Base URL: `https://api.commonroom.io/api/v2`
- URL: `https://api.commonroom.io/api/v2/buying-committee-cells`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/commonroom/apis/common-room-api-v2/docs/buying-committee-cells/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve the materialized buying committee cells for one organization.
The full committee is returned in a single response — this endpoint is
not paginated. Cells are returned in the same seniority-row and
department-column order as the product. Every cell includes its full
bounded list of available ranked contacts.

A buying committee must already be configured in the workspace. The
token must grant `organizations:read`, `contacts:read`, and
`prospector:read` (or the encompassing `read` scope).

Candidates are a ranked sample using up to five engagement-ranked and
five recently touched candidates per cell, not every eligible person. Prospector
emails are intentionally withheld and returned as null, matching the
buying committee view in the product. Cells without available candidates have an
empty `contacts` array.

`meta.nextCursor` is always null. Pagination parameters, sorting,
filters other than `organizationId`, and retrieving a cell by ID
are not supported.

Example request:

```sh
curl --get 'https://api.commonroom.io/api/v2/buying-committee-cells' \
  --header "Authorization: Bearer $COMMON_ROOM_API_TOKEN" \
  --data-urlencode 'organizationId=o_123' \
  --data-urlencode 'cols=recordCount'
```

## Query parameters

- `organizationId` string, required
- `cols` string

## Response `200`

OK

- BuyingCommitteeCellList
  - `success` true, required
  - `data` ApiBuyingCommitteeCell[], required
    - `id` string, required
    - `department` object, required
      - `id` integer, required: Internal numeric identifier. Prefer `key` for a stable machine-readable value.
      - `key` string, required: Stable machine-readable department key, e.g. `Sales`
      - `name` string, required: Display name, e.g. `Sales`
    - `seniority` object, required
      - `id` integer, required: Internal numeric identifier. Prefer `key` for a stable machine-readable value.
      - `key` string, required: Stable machine-readable seniority key, e.g. `CLevel`
      - `name` string, required: Display name, e.g. `C-Level`
    - `contacts` ApiBuyingCommitteePerson[], required: All available ranked contacts from the bounded cell sample; always returned
      - `id` string, required: Contact or Prospector contact ID
      - `source` 'contact' | 'prospector', required
      - `name` string, nullable, required
      - `title` string, nullable, required
      - `email` string, nullable, required: Always null when `source` is `prospector`; Prospector professional emails are intentionally withheld by this API, matching the buying committee view in the product.
      - `url` string, uri, nullable, required: Common Room profile for this contact. Null when `source` is `prospector`, which has no Common Room profile.
      - `linkedInUrl` string, uri, nullable, required: LinkedIn profile for this person. Null when `source` is `contact`.
      - `temperature` 'engaged' | 'warm' | 'cold', required: Engagement classification based on the workspace's buying committee signal settings and time windows. `engaged` means the person has a qualifying engaged signal within the configured engaged window. `warm` means there is no current engaged signal, but a qualifying warm signal or an older engaged signal within its configured warm extension. `cold` means neither condition is met. Signal groups and time windows are configurable, so these labels do not imply fixed activity types or durations across workspaces.
      - `lastEngagedAt` string, date-time, nullable, required: Activity timestamp used for the candidate's engaged or warm classification: the most recent engaged activity for engaged candidates, or warm activity for warm candidates. Null for cold candidates.
      - `lastTouchedAt` string, date-time, nullable, required
  - `meta` object, required
    - `nextCursor` string, nullable, required: Always `null` for this endpoint — the full committee is returned in one response
    - `recordCount` integer: Returned only when `cols=recordCount` is requested

## Other responses

- `400`: Invalid organization ID, unsupported query parameter, or column selection
- `403`: Token is missing a required organization, contact, or Prospector read scope
- `404`: Organization not found in this workspace, or buying committee is not configured
- `429`: Rate Limited

---

[API](https://skmtc.dev/commonroom/apis/common-room-api-v2.md) - [All operations](https://skmtc.dev/commonroom/apis/common-room-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/commonroom/apis/common-room-api-v2/revisions/865d4d43dadf?raw)
