Skip to main content
POST
/
api
/
campaigns
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
  }'

Request Body

name
string
required
Campaign name (1..200 chars)
description
string
Optional description
type
string
default:"link"
Campaign type (link or pixel)
status
string
default:"active"
active, paused, archived
goalType
string
Optional goal type label
goalValue
number
Optional numeric goal value
costModel
string
cpc, cpm, cpa, revshare
costOverride
number
Cost value used by selected cost model
costCurrency
string
3-letter currency code (must be supported)
dailyBudget
number
Optional daily budget
totalBudget
number
Optional total budget
conversionTracking
boolean
default:"true"
Enable conversion tracking defaults
tags
array
Optional campaign tags
metadata
object
Optional metadata map

Access and limits

  • Permission: campaigns:create
  • Plan campaign limit enforced per workspace
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
  }'

Common Errors

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