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": "cln0y4p6r003yl70i1j2k3l4m",
      "name": "Spring announcement",
      "status": "Draft",
      "createdAt": "2026-03-28T15:00:00.000Z",
      "updatedAt": "2026-03-28T15:00:00.000Z",
      "emailMessageId": "cmn5zia4i0017tzli8ric8giv",
      "campaignGroupId": "clq3b7s9u007yl70u9v0w1x2y",
      "mailingListId": null,
      "audienceSegmentId": "clr4c8t0v008yl70x3y4z5a6b",
      "audienceFilter": null,
      "scheduling": {
        "method": "schedule",
        "timestamp": "2026-04-01T09: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": "cln0y4p6r003yl70i1j2k3l4m",
      "name": "Spring announcement",
      "status": "Draft",
      "createdAt": "2026-03-28T15:00:00.000Z",
      "updatedAt": "2026-03-28T15:00:00.000Z",
      "emailMessageId": "cmn5zia4i0017tzli8ric8giv",
      "campaignGroupId": "clq3b7s9u007yl70u9v0w1x2y",
      "mailingListId": null,
      "audienceSegmentId": "clr4c8t0v008yl70x3y4z5a6b",
      "audienceFilter": null,
      "scheduling": {
        "method": "schedule",
        "timestamp": "2026-04-01T09:00:00.000Z"
      }
    }
  ]
}
Last modified on June 29, 2026