Skip to main content

GET /campaigns

List your campaigns with optional status filter and search.

Authentication

JWT Bearer token (dashboard auth)

Query Parameters

ParameterTypeDescription
pagenumberPage number (default: 1)
statusstringFilter by status: draft, scheduled, running, paused, sent
searchstringSearch by campaign name or subject

Response

{
  "success": true,
  "data": {
    "campaigns": [
      {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "name": "March Newsletter",
        "status": "sent",
        "from_email": "news@yourdomain.com",
        "subject": "What's new in March",
        "contact_book_name": "Newsletter Subscribers",
        "total_contacts": 1500,
        "sent_count": 1500,
        "delivered_count": 1480,
        "opened_count": 620,
        "clicked_count": 180,
        "created_at": "2026-03-08T12:00:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 5,
      "totalPages": 1
    }
  }
}

Example

curl "https://app.usesendi.com/api/campaigns?status=running&page=1" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"