campaign/get
Tool: read
List campaigns with optional status filter and pagination.
Returns a paginated list of campaigns ordered by name (descending). Archived campaigns are excluded by default unless pageQuery.status=archived or pageQuery.includeArchived=true.
The only filters are
statusandincludeArchived— there is no text search here. Unlike sender/get, this operation has nosearch(and noname) argument: to find a campaign by name, page through and match client-side. Andstatusis scheduler state, not sending history —Runningmeans the campaign is currently set to send, which says nothing about how much it has sent, so the campaigns with real send and reply history are frequentlyPausedorCompleted. For a performance question, list without astatusfilter and pick by each item'ssentCount/replyCountrather than pre-filtering onRunning. Sweeping every campaign — compliance checks, "has this contact ever been mailed?" — needspageQuery.includeArchived: true; archived campaigns are hidden by default and their past sends still count.
Set your own page size.
pageQuery.limit(flat aliaslimit) takes 1–30 and defaults to 10;pageQuery.pagewalks the pages. Each item carries the campaign's HTMLbody, which is what makes wide pages expensive — pairfullBodies: truewith a smalllimit(see the Response note below).
Argument names are literal keys, dots included — pass
"pageQuery.status", not a nestedpageQueryobject.
Arguments
| name | type | req | notes |
|---|---|---|---|
| pageQuery.page | integer | – | Page number, 1-indexed (default 1) |
| pageQuery.limit | integer | – | limit default 10, max 30; see schemas/pagination |
| pageQuery.startingAfter | integer | – | Cursor for next page (int64) |
| pageQuery.status | string | – | Exact status filter (case-insensitive), unvalidated — an unrecognized value returns an empty 200, not an error (call-contract). Observed: Draft, Running, Paused, Completed, Archived |
| pageQuery.includeArchived | boolean | – | Include archived campaigns (default false) |
| fullBodies | boolean | – | return every body in full instead of a preview — see schemas/pagination |
Flat
page/limit/startingAfter/includeArchived/statusare accepted as aliases for thepageQuery.*names above.
Response
200 — Paginated list; object: {items: Campaign[], pagination}; each item: see schemas/campaign. Pagination: see schemas/pagination. Deltas: none.
Each item includes the campaign's HTML
body. Over 1,500 characters it arrives as a truncated plain-text preview; passfullBodies: truefor the full HTML, and never write a preview back — see schemas/pagination.
Errors: 400, 401, 406, 422, 429, 500 — shared schema: schemas/errors.
Invoke
Call read with name: "campaign/get".