---
title: "Create a campaign"
method: POST
path: "/v1/campaigns"
tags: ["Campaigns"]
---

# Create a campaign

`POST /v1/campaigns`

## Request

- Base URL: `https://api.toksta.com`
- URL: `https://api.toksta.com/v1/campaigns`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/toksta/apis/toksta-public-api/docs/v1/campaigns/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a campaign. **SaaS workspace entitlement required** — dedicated API keys receive `403`.

`name`, `content_keywords` (≥1), and `target_audience_criteria` (≥1) are required.

## Request body

- object
  - `name` string, required: Campaign name (required).
  - `content_keywords` string[], required: Content keywords (at least one required).
  - `target_audience_criteria` string[], required: Audience criteria (at least one required).
  - `product_id` string: Optional product UUID.
  - `product_name` string
  - `target_regions` string[]
  - `target_audience` string
  - `target_job_titles` string[]
  - `target_platforms` string[]
  - `target_companies` string[]
  - `creator_regions` string[]
  - `search_country` string: ISO country code. Defaults to `us`.
  - `linkedin_content_types` string[]
  - `min_linkedin_followers` number
  - `max_linkedin_followers` number
  - `min_youtube_subscribers` number
  - `max_youtube_subscribers` number
  - `min_youtube_monthly_views` number
  - `max_youtube_monthly_views` number

## Response `201`

Campaign created.

- object: Campaign created.
  - `success` true, required
  - `data` object, required: Operation payload. See the example for the exact field structure.
  - `meta` object, required
    - `request_id` string, required
    - `trace_id` string

## Other responses

- `400`: Bad request or validation error (`BAD_REQUEST` / `VALIDATION_ERROR`).
- `401`: Missing, invalid, or revoked API key.
- `402`: Insufficient credits for this operation.
- `403`: API access disabled or workspace entitlement required.
- `404`: Resource not found, or result expired past retention.
- `429`: Rate limit exceeded — back off per `Retry-After`.
- `500`: Unexpected server error.
- `501`: Endpoint is registered but not implemented yet.

---

[API](https://skmtc.dev/toksta/apis/toksta-public-api.md) - [All operations](https://skmtc.dev/toksta/apis/toksta-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/toksta/apis/toksta-public-api/revisions/a8cf8189fdd1?raw)
