List campaigns
List email and SMS campaigns with status, subject, send date and results.
MCP tool privy_read → list_campaigns
read
Returns the rows of the Campaigns table: title, channel, status, subject and send date, plus Delivered, Opened, Clicked and Unsubscribed. Opened is a count and the other two rates are percentages of delivered contacts. Privy tracks an open with an invisible image, so a contact whose client blocks images is not counted as opened.
Parameters
| Name | Type | Description |
|---|---|---|
| status string | string | draft, scheduled, preparing, awaiting_winner, sending, sent, partially_sent, unsent or canceled |
| channel string | string | email or sms |
| page integer | integer | Page number, starting at 1 |
| per_page integer | integer | Items per page |
tools/call
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "privy_read",
"arguments": {
"operation": "list_campaigns",
"arguments": {}
}
}
} Example response
{
"content": [
{
"type": "text",
"text": "{ ... same JSON as structuredContent ... }"
}
],
"structuredContent": {
"data": [
{
"id": "cmp_41c8",
"title": "October sale announcement",
"channel": "email",
"status": "sent",
"subject": "Our October sale starts now",
"send_date": "2026-10-20T10:00:00-04:00",
"delivered": 4820,
"opened": 1930,
"clicked_percent": 2.4,
"unsubscribed_percent": 0.3
},
{
"id": "cmp_3a07",
"title": "Fall lookbook",
"channel": "email",
"status": "sent",
"subject": "The fall lookbook is here",
"send_date": "2026-10-06T10:00:00-04:00",
"delivered": 4710,
"opened": 2105,
"clicked_percent": 3.1,
"unsubscribed_percent": 0.2
},
{
"id": "cmp_5b92",
"title": "October sale resend",
"channel": "email",
"status": "draft",
"subject": "In case you missed it: our October sale",
"send_date": null,
"delivered": 0,
"opened": 0,
"clicked_percent": 0,
"unsubscribed_percent": 0
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total_count": 3,
"total_pages": 1
}
},
"isError": false
}