Docs
Get API key

Campaigns

List campaigns

GET/campaigns

Every campaign, with how many people are in each state.

Try itSend a real request with your API key

Your key stays in this page and goes only to Salesteam.

Answer

200 OK Campaigns.

  • dataarray of CampaignRequired
    Each item
    • idstringRequired

      Campaign ID.

    • namestringRequired
    • statusstringRequired

      draft: not launched. active: running. paused: stopped by the owner. completed: finished. One of draft, active, paused, completed.

    • archivedbooleanRequired

      Archived in Salesteam: hidden from the Campaigns list. Resuming brings it back.

    • listIdstring or nullRequired

      The lead list this campaign takes people from.

    • stepsintegerRequired

      How many steps the sequence has.

    • audienceintegerRequired

      People in the campaign’s list.

    • leadsobjectRequired
      Inside it
      • totalintegerRequired
      • activeintegerRequired
      • waitingForAcceptanceintegerRequired
      • pausedintegerRequired
      • finishedintegerRequired
      • repliedintegerRequired
    • createdAtstring · date-timeRequired
    • updatedAtstring · date-timeRequired
  • nextCursorstring or nullRequired

    Pass as cursor for the next page; null on the last page.

Errors

  • 401 Unauthorizedunauthorized
  • 429 Too many requestsrate_limited
  • 500 Server errorserver_error

Every error has the same shape. See Errors.

GET /campaigns
curl "https://app.salesteam.dev/api/v1/campaigns" \
  -H "Authorization: Bearer $SALESTEAM_API_KEY"
200 answer
{
  "data": [
    {
      "id": "cmp_7Qm2xT9a",
      "name": "Founders Q4",
      "status": "draft",
      "archived": true,
      "listId": "list_7Qm2xT9a",
      "steps": 1,
      "audience": 1,
      "leads": {
        "total": 25,
        "active": 1,
        "waitingForAcceptance": 1,
        "paused": 1,
        "finished": 1,
        "replied": 1
      },
      "createdAt": "2026-11-12T09:00:00.000Z",
      "updatedAt": "2026-11-12T09:00:00.000Z"
    }
  ],
  "nextCursor": null
}