Skip to main content
GET
/
api
/
campaigns
/
ai-chat-sessions
List campaign AI chat sessions
curl --request GET \
  --url https://app.puffle.ai/api/campaigns/ai-chat-sessions \
  --header 'Authorization: Bearer <token>'
{
  "sessions": [
    {
      "id": "d1d1d1d1-1111-1111-1111-111111111111",
      "user_id": "11111111-1111-1111-1111-111111111111",
      "campaign_id": "8c2b2d4e-e29b-41d4-a716-446655440000",
      "node_id": "bbbb1111-1111-1111-1111-111111111111",
      "title": "Intro email to VPs of Sales",
      "messages": [
        {
          "role": "user",
          "content": "Write an intro email for enterprise VPs of Sales"
        },
        {
          "role": "assistant",
          "content": "Got it — who's the sender and what's the angle?"
        }
      ],
      "draft_subject": "Quick question about {{company}}",
      "draft_body": "Hi {{first_name}}, ...",
      "skeleton": {
        "hook": "pattern-interrupt question",
        "value_prop": "15 min to outbound ROI"
      },
      "skeleton_history": [],
      "draft_history": [],
      "framework_version": 1,
      "generated_examples": null,
      "task_status": null,
      "created_at": "2026-04-22T10:00:00Z",
      "updated_at": "2026-04-22T10:05:00Z"
    }
  ]
}

Overview

Return every AI chat session owned by the caller for a given campaign, ordered by created_at ascending. Each campaign typically has one session per email/AI sequence node. Safe to call frequently; no side effects.
This operation shares the URL path /api/campaigns/ai-chat-sessions with other verbs. See the sibling page for related operations on the same resource.

Authorizations

Authorization
string
header
required

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

Query Parameters

campaign_id
string<uuid>
required

Campaign UUID to filter sessions by. Required.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Response

Array of sessions. Empty array is valid.

sessions
object[]
required