Skip to main content
GET
/
api
/
campaigns
/
{id}
Get Campaign
curl --request GET \
  --url https://app.puffle.ai/api/campaigns/{id} \
  --header 'Authorization: Bearer <token>'
{
  "campaign": {
    "id": "<string>",
    "user_id": "<string>",
    "name": "<string>",
    "daily_limit": 4503599627370495,
    "stop_on_reply": true,
    "open_tracking": true,
    "signature": "<string>",
    "skip_other_campaigns": true,
    "operating_hours": {},
    "stats": {
      "total": 4503599627370495,
      "sent": 4503599627370495,
      "replied": 4503599627370495,
      "bounced": 4503599627370495,
      "completed": 4503599627370495,
      "timed_out": 4503599627370495,
      "connection_sent": 4503599627370495,
      "connected": 4503599627370495,
      "message_sent": 4503599627370495
    },
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "sender_accounts": [
      {
        "id": "<string>",
        "email_address": "<string>",
        "provider_account_id": "<string>",
        "display_name": "<string>",
        "status": "<string>",
        "first_name": "<string>",
        "last_name": "<string>",
        "daily_limit": 4503599627370495,
        "weekly_connection_limit": 4503599627370495,
        "weekly_message_limit": 4503599627370495,
        "is_premium": true
      }
    ]
  },
  "sequence_nodes": [
    {
      "id": "<string>",
      "campaign_id": "<string>",
      "position": 4503599627370495,
      "subject": "<string>",
      "body": "<string>",
      "signature": "<string>",
      "include_message": true,
      "is_reply": true,
      "delay_days": 4503599627370495,
      "delay_hours": 4503599627370495,
      "delay_minutes": 4503599627370495,
      "ai_node": {}
    }
  ],
  "prospects_by_status": {},
  "prospects_by_node": {}
}
CLI:
puffle campaign --id <id>

Overview

Returns one campaign owned by the caller, including lifecycle status, configured sequence, flattened sender accounts, stats, and lead aggregates for the campaign detail view. Use this after List Campaigns when you need the full campaign shape instead of the compact index row.

AI agent notes

Check status before deciding what actions are allowed. Draft campaigns can be edited; active and paused campaigns have narrower update behavior; completed campaigns are effectively historical. For lead rows, generated emails, sender attribution, or settings, prefer the specific child endpoints when you need a fresh focused view.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Campaign UUID

Response

Campaign detail with sequence and lead aggregates.

campaign
object
required

Canonical campaign entity.

sequence_nodes
object[]
required
prospects_by_status
object
required
prospects_by_node
object
required