---
title: "Get Buying Group Contacts"
method: POST
path: "/v3/contacts/buying-group"
tags: ["Buying Group"]
---

# Get Buying Group Contacts

`POST /v3/contacts/buying-group`

Identify the buying group within a set of target companies. Supply companies by `domain` or Lusha company `id` - the model scores and labels each returned contact with a persona role.

**Personas:**
- `decision_maker` — has budget or sign-off authority
- `potential_champion` — likely internal advocate for the purchase
- `end_user` — likely day-to-day user of the product

Pass `personas` to filter to specific roles, or omit it to get all three. Use `contactsLimit` to cap how many contacts are returned per company (default 60).

Results are lightweight previews grouped by company. Each contact includes a `has` field listing available data points, a `canReveal` field showing what can be unlocked via Enrich, a `roles` array with the assigned persona(s), and a `score` (0-1) reflecting relevance to the assigned role.

Use Enrich Contacts with the returned contact `id` to reveal emails and phones.

> **Billing:** Charged per contact returned via the `buyingGroupContact` action.

## Request body

- V3BuyingGroupRequest
  - `companies` V3BuyingGroupCompanyItem[], required
    - `clientReferenceId` string — Optional caller-supplied token, echoed back on the matching result.
    - `domain` string
    - `id` string — Lusha company ID.
  - `personas` string[] — Filter results to specific persona roles. Omit to return all three.
  - `contactsLimit` integer — Maximum number of contacts returned per company.
  - `pagination` object — Optional. If omitted, defaults to page 0, size 100.
    - `page` integer
    - `size` integer

## Response `200`

Successful response

- V3BuyingGroupResponse
  - `requestId` string, uuid
  - `results` V3BuyingGroupCompanyResult[]
    - `clientReferenceId` string
    - `companyId` string
    - `contacts` V3BuyingGroupContact[]
      - `id` string
      - `firstName` string
      - `lastName` string
      - `jobTitle` object
        - `title` string
        - `departments` string[]
        - `seniority` string
      - `company` object
        - `id` string
        - `name` string
        - `domain` string
      - `location` object
        - `country` string
        - `state` string
        - `city` string
      - `socialLinks` object
        - `linkedin` string
      - `has` string[]
      - `canReveal` V3CanRevealItem[]
        - `field` 'emails' | 'phones'
        - `credits` integer — Credit cost (0 when already revealed for this account)
      - `roles` string[] — Persona role(s) the model assigned to this contact.
      - `score` number — Relevance score for the assigned role(s).
      - `error` V3ItemError — Per-item error in a batch response
        - `code` 'NOT_FOUND' | 'COMPLIANCE_RESTRICTED' | 'ENRICH_FAILED' | 'NO_SCORE'
        - `message` string
    - `error` V3ItemError — Per-item error in a batch response
      - `code` 'NOT_FOUND' | 'COMPLIANCE_RESTRICTED' | 'ENRICH_FAILED' | 'NO_SCORE'
      - `message` string
  - `pagination` V3PaginationResponse
    - `page` integer
    - `size` integer
    - `total` integer
  - `billing` V3Billing — Credit usage summary for a V3 API request
    - `creditsCharged` integer — Total credits charged for this request
    - `resultsReturned` integer — Number of successful results returned

## Other responses

- `400` — Bad request - invalid input data
- `401` — Unauthorized - invalid or missing API key
- `402` — Payment required - insufficient credits
- `403` — Forbidden - account inactive, V3 access not enabled, or plan does not include this feature
- `429` — Too many requests - rate limit exceeded

---

[API](https://skmtc.net/lusha/apis/lusha-api-documentation.md) · [All operations](https://skmtc.net/lusha/apis/lusha-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lusha/lusha-api-documentation/revisions/d37bb08edd61/schema)
