---
title: "List campaign pool customers (v3)"
method: GET
path: "/api/v1/business/campaign-pool-customers-v3"
tags: ["business"]
---

# List campaign pool customers (v3)

`GET /api/v1/business/campaign-pool-customers-v3`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/business/campaign-pool-customers-v3`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Page through the customers a new campaign on a business profile can pick, searched by name or job title and narrowed to audiences: each with its table attributes under the customer model's keys (a category, band, Product and Buyer type as id and label), its audiences, place, and why it cannot join when includeIneligible lists those too. customerIds pages only those customers instead, each without a reason. selectedAudienceIds also answers every customer in those audiences, across every page. Page with nextCursor at the same limit.

## Query parameters

- `limit` integer: Number of customers to return (1–100)
- `cursor` string: Opaque cursor returned as nextCursor by the previous page
- `businessProfileId` string, uuid, required: The business profile.
- `search` string: Words in a name or job title.
- `audienceIds` string[]: Narrow to these audiences.
- `selectedAudienceIds` string[]: Also answer every customer in these audiences as selectedCustomerIds.
- `customerIds` string[]: Page only these customers (a campaign's hand-picked ones); they name no cohort, so each is listed without a reason.
- `includeIneligible` boolean: Also list the customers the pick cannot take, after the rest.
- `includeStoreCustomers` boolean: Also admit the profile's store customers, as a Research campaign does.
- `filters` string[]: Field conditions, each `<field>:<operator>:<value>`. Text fields (location, employer, trigger) take contains, does_not_contain, is or starts_with and the words. Number fields (age, householdIncome, companySize, annualRevenue) take gt, gte, lt, lte or eq and a number, or between and `min..max`. Classification fields, each band under its fact's key as <key>.band (gender, age.band, language, market, areaType, education, lifeStage, householdIncome.band, occupation, seniority, companySize.band, buyerType, audience, product, channel, buyerRole, intentStage, job, triggerType), take is_any_of or is_none_of and comma-separated ids from business_customer_filter_options_get_v2 (buyerType takes consumer or organization), `none` for a customer with no value. createdAt takes on_or_after or on_or_before and an ISO date, or between and `from..to`, read in UTC.
- `filterMatch` 'all' | 'any': Whether a customer matches every condition (all, the default) or any one

## Headers

- `Point11-Organization` string, uuid

## Response `200`

Success.

- BusinessCampaignPoolCustomersListV3Response
  - `data` object[], required
    - `id` string, uuid, required
    - `customerKey` string, nullable, required
    - `label` string, required
    - `businessProfileId` string, uuid, required
    - `businessProfileKey` string, nullable, required
    - `profileName` string, nullable, required
    - `profileUrl` string, required
    - `profileBusinessSummary` string, nullable, required
    - `source` 'generated' | 'manual' | 'connected', required
    - `poolStatus` 'active' | 'retired', required
    - `retiredAt` string, date-time, nullable, required
    - `forecastSeeded` boolean, required
    - `audiences` string[], required
    - `systemAudiences` string[], required
    - `userAudiences` string[], required
    - `userAudienceIds` string[], required
    - `sources` string[], required
    - `jobTitle` string, nullable, required
    - `gender` object, nullable, required: Gender
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `age` number, nullable, required: Age
    - `age.band` object, nullable, required: Age band
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `language` object, nullable, required: Language
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `location` string, nullable, required: Location
    - `market` object, nullable, required: Market
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `areaType` object, nullable, required: Area type
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `education` object, nullable, required: Education
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `lifeStage` object, nullable, required: Life stage
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `householdIncome` number, nullable, required: Household income
    - `householdIncome.band` object, nullable, required: Income band
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `occupation` object, nullable, required: Occupation
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `seniority` object, nullable, required: Seniority
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `employer` string, nullable, required: Employer
    - `companySize` number, nullable, required: Company size
    - `companySize.band` object, nullable, required: Size band
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `annualRevenue` number, nullable, required: Annual revenue
    - `buyerType` object, nullable, required: Buyer type
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `audience` object, nullable, required: Audience
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `product` object, nullable, required: Product
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `channel` object, nullable, required: Channel
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `buyerRole` object, nullable, required: Buyer role
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `intentStage` object, nullable, required: Intent stage
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `job` object, nullable, required: Job to be done
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `triggerType` object, nullable, required: Trigger type
      - `id` string, nullable, required
      - `label` string, nullable, required
    - `trigger` string, nullable, required: Trigger
    - `createdAt` string, date-time, required
    - `generationRunId` string, uuid, nullable, required
    - `latestDiscoveryOutcome` DiscoveryItemLatestDiscoveryOutcome, nullable, required
      - `result` 'won' | 'lost', required
      - `brand` string, required
      - `color` string, nullable
      - `source` object, nullable
        - `url` string, nullable, required
        - `label` string, required
        - `faviconUrl` string, nullable, required
        - `faviconTone` 'dark' | 'light' | 'mixed' | 'unknown', nullable
        - `faviconTransparent` boolean, nullable
        - `faviconNeedsLightBackplate` boolean, nullable
        - `faviconNeedsDarkBackplate` boolean, nullable
        - `color` string, nullable
    - `audienceMemberships` object[], required
      - `id` string, uuid, required
      - `name` string, required
      - `createdBy` 'system' | 'user', required
    - `place` string, nullable, required: "City, ST".
    - `ineligibleReason` 'deleted' | 'archived' | 'other_profile' | 'forecast_customer' | 'store_customer' | 'not_store_customer' | 'other_store' | 'not_forecast_customer' | 'connected_not_ready' | 'outside_audience' | 'unavailable', nullable, required: Why the pick cannot take the customer; null when it can.
  - `nextCursor` string, nullable, required
  - `totalCount` integer, required
  - `ineligibleCount` integer, required: Customers the search keeps that the pick cannot take, listed or not.
  - `selectedCustomerIds` string[], required
  - `audienceTypes` string[], required: The audience types of the customers this list draws from, each read as a Buyer type (b2c is B2C; b2b, prosumer and mixed are B2B); a column only another Buyer type carries is not a column.

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
