---
title: "Apply customer packs"
method: POST
path: "/api/v1/business/customer-packs/apply"
tags: ["business"]
---

# Apply customer packs

`POST /api/v1/business/customer-packs/apply`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/business/customer-packs/apply`
- 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`)

Make the first count of a ready-made audience's people (a pack key from business_customer_packs_list; each pack holds 400) customers of one business profile, in the audience of the pack's name, with no model call and no charge. Point11 wrote these people in advance; each gets an audience of the pack's buyer type drawn from the profile's own at its weights, and no other category of the profile. Applying again adds only those missing (one a member deleted or archived is passed over for the next), so a retry is safe. Returns the audience to target, its customers from the pack in order, and how many this call added. A profile with no audience of the pack's buyer type, or no customer mix yet, answers 409.

## Headers

- `Point11-Organization` string, uuid
- `Idempotency-Key` string, uuid, required

## Request body

- BusinessCustomerPacksApplyRequest
  - `businessProfileId` string, uuid, required: The business profile whose customers they become
  - `packKey` string, required: The pack's key, from business_customer_packs_list
  - `count` integer, required: How many of the pack's people, from its first

## Response `200`

Success.

- BusinessCustomerPacksApplyResponse
  - `audienceId` string, uuid, required: The audience of the pack's name
  - `audienceName` string, required
  - `customerIds` string[], required: The pack's customers on this profile, in the pack's order
  - `added` integer, required: How many of them this call added

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `402`: Billing refused the write: the code names the reason and `details.reason` carries it.
- `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/5241805fe425?raw)
