curl --request GET \
--url https://app.loops.so/api/v1/campaigns \
--header 'Authorization: Bearer <token>'{
"success": true,
"pagination": {
"totalResults": 2,
"returnedResults": 2,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"campaignId": "cmp_01hxyz",
"emailMessageId": "em_01hxyz",
"name": "Spring announcement",
"subject": "Big spring updates",
"status": "Draft",
"createdAt": "2026-03-28T15:00:00.000Z",
"updatedAt": "2026-03-28T15:00:00.000Z"
}
]
}
Retrieve a paginated list of campaigns.
curl --request GET \
--url https://app.loops.so/api/v1/campaigns \
--header 'Authorization: Bearer <token>'{
"success": true,
"pagination": {
"totalResults": 2,
"returnedResults": 2,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"campaignId": "cmp_01hxyz",
"emailMessageId": "em_01hxyz",
"name": "Spring announcement",
"subject": "Big spring updates",
"status": "Draft",
"createdAt": "2026-03-28T15:00:00.000Z",
"updatedAt": "2026-03-28T15:00:00.000Z"
}
]
}
Documentation Index
Fetch the complete documentation index at: https://loops.so/docs/llms.txt
Use this file to discover all available pages before exploring further.
pagination.nextCursor value in each response.Show metadata
cursor
parameter), or null if there are no further pages.null if there are no further
pages.Hide campaign
Draft, Scheduled, Sending,
Sent).perPage is invalid, a 400 Bad Request is returned.
If the API key is invalid (or content API is not enabled for your team), a
401 Unauthorized is returned.
{
"success": true,
"pagination": {
"totalResults": 2,
"returnedResults": 2,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"campaignId": "cmp_01hxyz",
"emailMessageId": "em_01hxyz",
"name": "Spring announcement",
"subject": "Big spring updates",
"status": "Draft",
"createdAt": "2026-03-28T15:00:00.000Z",
"updatedAt": "2026-03-28T15:00:00.000Z"
}
]
}
Was this page helpful?