List campaigns
Lists the gallery's bulk marketing campaigns with cursor pagination. Filter by `q` (name/subject substring) or `status`.
Lists the gallery's bulk marketing campaigns with cursor pagination. Filter by q (name/subject substring) or status.
Authorization
bearerAuth campaigns:readA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: campaigns:read
Query Parameters
Page size. Defaults to 20; the maximum is 100.
1 <= value <= 10020Opaque cursor from the previous page's next_cursor. Omit for the first page.
Free-text search over the resource's searchable fields.
length <= 200Filter to the given status; the schema's enum lists the values.
Value in
- "draft"
- "scheduled"
- "sending"
- "sent"
- "paused"
- "canceled"
Sort by one of: created, updated, scheduled (default created).
Value in
- "created"
- "updated"
- "scheduled"
Sort direction (default desc).
Value in
- "asc"
- "desc"
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "data": [ { "id": "string", "name": "string", "status": "draft", "subject": "string", "preview_text": "string", "from_name": "string", "from_email": "string", "reply_to": "string", "sending_domain_ref": "string", "audience_list_id": "string", "design_json": null, "html": "string", "text_body": "string", "ab_config": null, "scheduled_at": "string", "sent_at": "string", "metadata": { "property1": "string", "property2": "string" }, "created_at": "string", "updated_at": "string" } ], "next_cursor": "string"}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}Get a campaign GET
Returns a single campaign.
Resend a campaign to non-clickers POST
Duplicates a sent campaign as a new draft aimed at everyone who received it but never clicked (a fresh static list, unsubscribes excluded). The draft is reviewed and scheduled like any campaign — nothing sends without a human in the loop.