Skip to main content
GET
/
api
/
senders
List Senders
curl --request GET \
  --url https://app.puffle.ai/api/senders \
  --header 'Authorization: Bearer <token>'
{
  "accounts": [
    {
      "id": "aaaa1111-1111-1111-1111-111111111111",
      "user_id": "u1111111-1111-1111-1111-111111111111",
      "type": "email",
      "display_name": "Sarah at Acme",
      "status": "active",
      "created_at": "2026-04-20T10:00:00Z",
      "updated_at": "2026-04-21T09:00:00Z",
      "provider_account_id": null,
      "profile_url": null,
      "is_premium": null,
      "has_sales_navigator": null,
      "weekly_connection_limit": null,
      "weekly_message_limit": null,
      "email_address": "sarah@acme.com",
      "domain_id": "dddd1111-1111-1111-1111-111111111111",
      "agentmail_inbox_id": "inbox_abc123",
      "instantly_account_id": null,
      "warmup_status": "active",
      "first_name": "Sarah",
      "last_name": "Chen",
      "signature": "Best,\nSarah",
      "daily_limit": 50,
      "instantly_tag_id": null,
      "instantly_warmup_tag_id": null,
      "email_domains": {
        "id": "dddd1111-1111-1111-1111-111111111111",
        "domain": "acme.com",
        "status": "verified"
      }
    },
    {
      "id": "bbbb1111-1111-1111-1111-111111111111",
      "user_id": "u1111111-1111-1111-1111-111111111111",
      "type": "linkedin",
      "display_name": "Sarah Chen",
      "status": "connected",
      "created_at": "2026-04-18T15:12:00Z",
      "updated_at": "2026-04-21T09:00:00Z",
      "provider_account_id": "linkedin_acc_abc123",
      "profile_url": "https://linkedin.com/in/sarahchen",
      "is_premium": true,
      "has_sales_navigator": true,
      "weekly_connection_limit": 100,
      "weekly_message_limit": 150,
      "email_address": null,
      "domain_id": null,
      "agentmail_inbox_id": null,
      "instantly_account_id": null,
      "warmup_status": null,
      "first_name": "Sarah",
      "last_name": "Chen",
      "signature": null,
      "daily_limit": null,
      "instantly_tag_id": null,
      "instantly_warmup_tag_id": null
    }
  ]
}
CLI:
puffle sender
puffle sender --type <type> --surface <surface> --include-stats

Overview

Return the caller’s cross-channel sender inventory. Email inboxes and LinkedIn accounts both appear here as sender accounts; use type=email or type=linkedin to narrow the list before creating a campaign.

AI agent notes

Call this during campaign setup to verify the caller has a usable sender for the intended channel. Use type=email or type=linkedin to narrow the result, and use surface=campaigns for campaign sender selection. An empty accounts array is not an API error; it means the user needs to connect a sender. OAuth and provider connection flows require the human to complete the browser handoff. Reddit sender rows are for Reddit automation and do not power campaigns.

Authorizations

Authorization
string
header
required

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

Query Parameters

type
enum<string>

Filter to a single channel. Use type=linkedin before creating a LinkedIn campaign and type=email before an email campaign. Campaign creation fails (400) if no account of the matching type exists.

Available options:
linkedin,
email,
reddit
surface
enum<string>

Use surface=campaigns when populating campaign sender selection. Non-admin callers only receive active email senders on this surface; admin callers also receive warming email senders.

Available options:
campaigns
include_stats
boolean

When true, include rolling weekly usage, effective limits, and email daily send stats from account_daily_stats.

Response

Flat list of senders. Empty array when the user has no senders (or none match the filter) - this is not an error.

accounts
object[]
required

Ordered newest-first by created_at.