Set a campaign's status

Activate, pause, complete or return a campaign to draft. Activation needs an audience and a template, and answers 409 naming what is missing; with no sender attached it attaches the workspace's connected email and LinkedIn senders and names them. Activating is not sending: the launcher works the queue behind the send gate.

PUThttps://app.trygtm.com/api/v1/campaigns/{campaign}/status
Scope
write

Path parameters

campaignstringrequired
The campaign, by id or exact name (case-insensitive).

Headers

Idempotency-Keystringoptional
A key unique to this write, up to 255 characters. A retry carrying the same key returns the first response instead of running again. Kept for 24 hours.

Body

statusstringrequired
The state to move it to.draftactivepausedcompleted

Request

curl -X PUT https://app.trygtm.com/api/v1/campaigns/Q4%20logistics%20leaders/status \
  -H "Authorization: Bearer $TRYGTM_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "active"
  }'

Response

{
  "data": {
    "detail": "“Q4 logistics leaders” is now active.",
    "campaign": {
      "id": "3b7f0c52-91aa-4e0d-8c11-5a2d6e4f7b90",
      "name": "Q4 logistics leaders",
      "status": "active",
      "goal": "book_meeting",
      "template_id": "c1d2e3f4-0a1b-4c2d-8e3f-4a5b6c7d8e9f",
      "template_name": "Logistics opener",
      "audiences": [
        {
          "id": "5e6f7a8b-1c2d-4e3f-9a0b-1c2d3e4f5a6b",
          "name": "Logistics VPs — US"
        }
      ],
      "daily_target": 40,
      "min_intent": 1,
      "wait_for_intent": false,
      "auto_source": true,
      "end_date": null,
      "created_at": "2026-09-01T12:00:00.000Z"
    }
  }
}

Was this page helpful?