---
title: "Create Campaign"
method: POST
path: "/api/v1/facebook/actions/create-campaign"
tags: ["Facebook Actions", "Facebook Actions"]
---

# Create Campaign

`POST /api/v1/facebook/actions/create-campaign`

## Request

- Base URL: `https://teraads.co` (the document declares no server; this is the origin it was published from)
- URL: `https://teraads.co/api/v1/facebook/actions/create-campaign`
- Auth: none declared

Validate a campaign (dry-run) and enqueue it for human approval.

This endpoint NEVER creates a live campaign. It dry-run validates through the
exact ``_execute_create`` code path the approver will later run, then enqueues
the validated action into ``approval_queue`` (status ``pending``). Approval
happens via the existing ``POST /action-queue/{queue_id}/approve`` and creates
the campaign PAUSED on Meta.

## Query parameters

- `brand_id` string, required

## Request body

- CreateCampaignRequest: Guided campaign-creation request. Fields map onto the ``parameters`` sub-dict that ExecutionEngine.execute_action unpacks for ``action_type == "create"`` (see execution_engine.py:1024 and campaign_executor.py:_execute_create).
  - `template` string, required
  - `interest_name` string, required
  - `daily_budget` number
  - `product_id` string, nullable
  - `primary_text` string, nullable
  - `headline` string, nullable
  - `age_min` integer
  - `age_max` integer
  - `genders` integer[]
  - `geo_countries` string[]
  - `campaign_name` string, nullable
  - `reason` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/teraads/apis/tera-ads-api.md) · [All operations](https://skmtc.dev/teraads/apis/tera-ads-api/llms.txt) · [OpenAPI document](https://skmtc.dev/teraads/apis/tera-ads-api/revisions/fb2526b5cf3c?raw)
