List campaigns with filtering, sorting, and cursor pagination
List campaigns with filtering, sorting, and cursor-based pagination.
Scopes: campaigns.read
Rate Limiting: This endpoint is rate limited to 400 requests per minute.
Filtering & sorting: Supported query parameters: nameContains, status, channel, type, parentCampaignID, createdAtFrom/createdAtTo, updatedAtFrom/updatedAtTo, sort, direction, limit, after, before, view, include. Only these documented parameters are accepted; any unknown parameter returns 400.
- sort accepts createdAt, updatedAt, or name; direction (asc/desc) is only valid together with sort.
Response shape: Items are always CampaignDTO. With view=summary the heavy sections content and abTest are omitted from every item unless requested with include; all other fields are unchanged. include has no effect without view=summary.
Pagination: This endpoint uses cursor-based pagination.
- Use the paging.cursors.after value from the response to get the next page
- Use the paging.cursors.before value to get the previous page
- The paging.hasMore field indicates if more results are available
- Maximum page size is 250 items. Default: 100
- Do not send after and before together, and keep filters and sorting unchanged while paginating with a cursor
Request
- Base URLhttps://api.omnisend.com/api
- URLhttps://api.omnisend.com/api/campaigns
- Auth
- OAuth 2Client credentialsToken URL: https://app.omnisend.com/oauth2/token scopes: campaigns.read
- or API key in header Authorization
Query parameters
Number of items per page. Range: 1-250. Default: 100
Opaque cursor for the next page
Opaque cursor for the previous page
Sort field. Default: createdAt
Sort direction. Default: desc
Filter by status (repeatable for OR logic)
Filter by name (partial match, max 200 characters)
Filter by message channel (repeatable for OR logic)
Filter by campaign type. Use booster to list only boosters, abTest to list only A/B test parents.
Filter to boosters of the given parent campaign ID. Implies type=booster.
Filter campaigns created after this timestamp (ISO 8601, e.g. 2026-01-01T00:00:00Z)
Filter campaigns created before this timestamp (ISO 8601, e.g. 2026-01-01T00:00:00Z)
Filter campaigns updated after this timestamp (ISO 8601, e.g. 2026-01-01T00:00:00Z)
Filter campaigns updated before this timestamp (ISO 8601, e.g. 2026-01-01T00:00:00Z)
Response shape. summary omits the heavy content and abTest sections from every item. Omit for the full representation.
Heavy sections to keep in summary view (repeatable or comma-separated): content (full email/SMS/push content), abTest (A/B variants, settings and result). Only meaningful together with view=summary.
Headers
API version that specifies the response format and behaviour
Response
List of campaigns with pagination
Example response
{
"campaigns": [
{
"abTest": {
"result": {
"selectedAt": "2026-01-15T10:30:00Z",
"winnerVariantID": "000000000000000000000011"
},
"settings": {
"decisionTime": {
"amount": 4,
"unit": "h"
},
"testSizePercent": 30,
"winningMetric": "openRate"
},
"variants": {
"a": {
"content": {
"email": {
"contentID": "000000000000000000000001",
"preheader": "Check it out",
"replyToEmail": "support@example.com",
"senderEmail": "hello@example.com",
"senderName": "My Store",
"subject": "Welcome!"
}
},
"id": "000000000000000000000010"
},
"b": {
"content": {
"email": {
"contentID": "000000000000000000000001",
"preheader": "Check it out",
"replyToEmail": "support@example.com",
"senderEmail": "hello@example.com",
"senderName": "My Store",
"subject": "Welcome!"
}
},
"id": "000000000000000000000010"
}
}
},
"boosterSettings": {
"campaignID": "000000000000000000000001",
"delay": {
"amount": 48,
"unit": "h"
},
"sendTo": "nonOpeners"
},
"brandID": "000000000000000000000001",
"content": {
"email": {
"contentID": "000000000000000000000001",
"preheader": "Discover what we have in store for you",
"replyToEmail": "support@example.com",
"senderEmail": "hello@example.com",
"senderName": "My Store",
"subject": "Welcome to Omnisend!"
},
"sms": {
"compliance": {
"stopKeywordText": "Reply STOP to opt out",
"unsubscribeLinkText": "Unsubscribe [[unsubscribe_link]]"
},
"imageID": "000000000000000000000001",
"isLinkShorteningEnabled": true,
"message": "Hi! Check out our new deals",
"senderName": "My Store"
}
},
"createdAt": "2026-01-15T10:30:00Z",
"endedAt": "2026-01-15T10:30:00Z",
"id": "000000000000000000000001",
"language": "en_US",
"name": "Welcome Email Campaign",
"sendingSettings": {
"optimizeFor": "opens",
"respectQuietHours": true,
"scheduledAt": "2026-03-01T10:00:00Z",
"strategy": "immediate"
},
"startedAt": "2026-01-15T10:30:00Z",
"updatedAt": "2026-01-15T10:30:00Z",
"url": "https://app.omnisend.com/campaign/email/000000000000000000000001/settings"
}
],
"paging": {
"cursors": {
"after": "eyJpZCI6ImNhbXAtNDU2In0",
"before": "eyJpZCI6ImNhbXAtMTIzIn0"
},
"hasMore": true,
"limit": 50
}
}Changes
No recorded changes to this operation across all 1 revision of this API.