---
title: "Generate targeting"
method: POST
path: "/campaigns/{campaignId}/targeting/generate"
tags: ["Targeting"]
---

# Generate targeting

`POST /campaigns/{campaignId}/targeting/generate`

## Request

- Base URL: `https://www.fandom.ai/api/v1`
- URL: `https://www.fandom.ai/api/v1/campaigns/{campaignId}/targeting/generate`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/docs/campaigns/:campaignId/targeting/generate/post.ts> (a function with typed inputs; its response is checked against the schema)

Starts generating in the background. With no `audienceIds`, generates every audience that has none yet; naming an audience regenerates it. Audiences need data stores. Poll Get targeting until `ready`.

Scope: `campaigns:write`.

Send an `Idempotency-Key` header to make retries safe.

## Path parameters

- `campaignId` string, required

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `audienceIds` string[]: Audience slots on the campaign (the `id` in Get targeting).

## Response `200`

Success

- object
  - `campaignId` string, required
  - `campaignType` string, nullable, required
  - `audiences` object[], required
    - `id` string, required: The audience's slot on the campaign.
    - `name` string, required
    - `audienceId` string, nullable, required
    - `status` 'not_generated' | 'generating' | 'ready' | 'error', required: Generation takes 30–90 seconds.
    - `error` string, nullable, required
    - `updatedAt` string, nullable, required
    - `items` object[], required
      - `section` string, required
      - `label` string, required: The section's name in the app.
      - `text` string, required
      - `matchType` string, nullable, required: Keywords only: BROAD, PHRASE or EXACT.
      - `source` string, required: `generated`, `manual`, `rfp`, `imported`…
  - `started` string[], required
  - `skipped` object[], required
    - `id` string, required
    - `reason` string, required

## Other responses

- `400`: The request is missing something or has a bad value. The message says what.
- `401`: No API key, or the key is wrong or revoked.
- `403`: The key doesn't have the scope, or isn't allowed this campaign or account.
- `404`: Nothing with that id in this workspace.
- `409`: The current state doesn't allow this (for example, it's already done or still generating).
- `429`: More than 120 requests in a minute. Wait and retry.

## Changes

- **2026-10-07** `dfe5b1c3d84f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/changes/campaigns/:campaignId/targeting/generate/post.md)

---

[API](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api.md) - [All operations](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/llms.txt) - [OpenAPI document](https://skmtc.dev/skilledstars/apis/super-fans-enterprise-api/revisions/6c1a68a75970?raw)
