---
title: "Generate Topics"
method: POST
path: "/topics/generate"
tags: ["Project"]
---

# Generate Topics

`POST /topics/generate`

## Request

- Base URL: `https://api.peec.ai/customer/v1`
- URL: `https://api.peec.ai/customer/v1/topics/generate`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`
  - HTTP bearer

Compose candidate topics for the project from its brand profile. Nothing is saved — review the returned names and create the ones you want with `POST /topics`. Composition already accounts for the project's existing topics, so it proposes only what fills a gap and can return an empty list when the set is already well covered. Rate limited per project; the `x-ratelimit-*` response headers report the remaining budget.

## Request body

- object
  - `project_id` string: Required if using a company api key
  - `topic_count` integer: How many topics to compose. Defaults to the number the project's plan allows.

## Response `200`

Success

- object: Success
  - `data` object[], required
    - `name` string, required

## Other responses

- `400`: Response for status 400
- `409`: Response for status 409
- `422`: Response for status 422
- `429`: Response for status 429

## Changes

- **2026-11-03** `9fdffdff48a5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/peec/apis/peec-ai-customer-api/changes/topics/generate/post.md)

---

[API](https://skmtc.dev/peec/apis/peec-ai-customer-api.md) - [All operations](https://skmtc.dev/peec/apis/peec-ai-customer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/peec/apis/peec-ai-customer-api/revisions/9d774600c8eb?raw)
