Skip to main content
GET
/
v1
/
campaigns
List campaigns
curl --request GET \
  --url https://app.loops.so/api/v1/campaigns \
  --header 'Authorization: Bearer <token>'
{
  "pagination": {
    "totalResults": 2,
    "returnedResults": 2,
    "perPage": 20,
    "totalPages": 1,
    "nextCursor": null,
    "nextPage": null
  },
  "data": [
    {
      "id": "cmp8n3q1w7x2m9k4p6r0t5y8zab2cd",
      "emailMessageId": "cmn5zia4i0017tzli8ric8giv",
      "name": "Spring announcement",
      "subject": "Big spring updates",
      "status": "Draft",
      "createdAt": "2026-03-28T15:00:00.000Z",
      "updatedAt": "2026-03-28T15:00:00.000Z"
    }
  ]
}

Request

Query parameters

perPage
string
default:20
How many results to return in each request. Must be between 10 and 50.
cursor
string
A cursor to return a specific page of results. Cursors can be found from the pagination.nextCursor value in each response.

Response

Success

pagination
object
data
array
required

Error

If 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.
message
string
required
An error message describing what went wrong.
{
  "pagination": {
    "totalResults": 2,
    "returnedResults": 2,
    "perPage": 20,
    "totalPages": 1,
    "nextCursor": null,
    "nextPage": null
  },
  "data": [
    {
      "id": "cmp8n3q1w7x2m9k4p6r0t5y8zab2cd",
      "emailMessageId": "cmn5zia4i0017tzli8ric8giv",
      "name": "Spring announcement",
      "subject": "Big spring updates",
      "status": "Draft",
      "createdAt": "2026-03-28T15:00:00.000Z",
      "updatedAt": "2026-03-28T15:00:00.000Z"
    }
  ]
}
Last modified on June 12, 2026