> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linquid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Campaign

> Create a new campaign with cost, budget, and conversion settings

## Request Body

<ParamField body="name" type="string" required>
  Campaign name (`1..200` chars)
</ParamField>

<ParamField body="description" type="string">
  Optional description
</ParamField>

<ParamField body="type" type="string" default="link">
  Campaign type (`link` or `pixel`)
</ParamField>

<ParamField body="status" type="string" default="active">
  `active`, `paused`, `archived`
</ParamField>

<ParamField body="goalType" type="string">
  Optional goal type label
</ParamField>

<ParamField body="goalValue" type="number">
  Optional numeric goal value
</ParamField>

<ParamField body="costModel" type="string">
  `cpc`, `cpm`, `cpa`, `revshare`
</ParamField>

<ParamField body="costOverride" type="number">
  Cost value used by selected cost model
</ParamField>

<ParamField body="costCurrency" type="string">
  3-letter currency code (must be supported)
</ParamField>

<ParamField body="dailyBudget" type="number">
  Optional daily budget
</ParamField>

<ParamField body="totalBudget" type="number">
  Optional total budget
</ParamField>

<ParamField body="conversionTracking" type="boolean" default="true">
  Enable conversion tracking defaults
</ParamField>

<ParamField body="tags" type="array">
  Optional campaign tags
</ParamField>

<ParamField body="metadata" type="object">
  Optional metadata map
</ParamField>

## Access and limits

* Permission: `campaigns:create`
* Plan campaign limit enforced per workspace

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.linquid.io/api/campaigns \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "Summer Sale",
      "type": "link",
      "costModel": "cpc",
      "costOverride": 0.5,
      "costCurrency": "USD",
      "conversionTracking": true
    }'
  ```
</RequestExample>

## Common Errors

* `400`: invalid currency or schema payload
* `403`: campaign limit exceeded for plan
