Skip to content
API reference/Campaigns

Launch a campaign

Launch or reopen a visible promotion's listener campaign. Mechanic and station identity are server-derived. Reopening replaces the entry window and the supplied prize/keyword copy.

POST/api/v1/campaigns

Authentication

Send your workspace key as xi-api-key or Authorization: Bearer.

campaigns:writewrite

Parameters

Named placeholders belong in the path. Other arguments use a JSON body.

slugRequired
string
opensAtRequired
integerRange: 0 to 4102444800000
closesAtRequired
integerRange: any to 4102444800000
keywordOptional
string
prizeOptional
string
blurbOptional
string

Response

JSON response with status 200.

Requests and errors →
Illustrative arguments
{
  "slug": "YOUR_VALUE",
  "opensAt": 0,
  "closesAt": 1,
  "keyword": "YOUR_VALUE",
  "prize": "YOUR_VALUE",
  "blurb": "YOUR_VALUE"
}
Input schema
{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[a-z0-9][a-z0-9-]*$"
    },
    "opensAt": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4102444800000
    },
    "closesAt": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 4102444800000
    },
    "keyword": {
      "type": "string",
      "maxLength": 24
    },
    "prize": {
      "type": "string",
      "maxLength": 200
    },
    "blurb": {
      "type": "string",
      "maxLength": 1000
    }
  },
  "required": [
    "slug",
    "opensAt",
    "closesAt"
  ],
  "additionalProperties": false
}
Response schema
{
  "type": "object",
  "properties": {
    "token": {
      "type": "string"
    },
    "ok": {
      "type": "boolean",
      "const": true
    },
    "stored": {
      "type": "boolean"
    }
  },
  "required": [
    "token",
    "ok",
    "stored"
  ],
  "additionalProperties": false
}