curl --request GET \
--url https://app.loops.so/api/v1/themes \
--header 'Authorization: Bearer <token>'{
"success": true,
"pagination": {
"totalResults": 1,
"returnedResults": 1,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"themeId": "thm_01hxyz",
"name": "Marketing default",
"styles": {
"backgroundColor": "#ffffff",
"textBaseColor": "#111111",
"textBaseFontSize": 16
},
"isDefault": true,
"createdAt": "2026-03-28T15:00:00.000Z",
"updatedAt": "2026-03-28T15:00:00.000Z"
}
]
}
Retrieve a paginated list of email themes.
curl --request GET \
--url https://app.loops.so/api/v1/themes \
--header 'Authorization: Bearer <token>'{
"success": true,
"pagination": {
"totalResults": 1,
"returnedResults": 1,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"themeId": "thm_01hxyz",
"name": "Marketing default",
"styles": {
"backgroundColor": "#ffffff",
"textBaseColor": "#111111",
"textBaseFontSize": 16
},
"isDefault": true,
"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 theme
<Style /> tag attributes.400 Bad Request is returned if perPage is invalid.
If the API key is invalid (or content API is not enabled for your team), a
401 Unauthorized is returned.
{
"success": true,
"pagination": {
"totalResults": 1,
"returnedResults": 1,
"perPage": 20,
"totalPages": 1,
"nextCursor": null,
"nextPage": null
},
"data": [
{
"themeId": "thm_01hxyz",
"name": "Marketing default",
"styles": {
"backgroundColor": "#ffffff",
"textBaseColor": "#111111",
"textBaseFontSize": 16
},
"isDefault": true,
"createdAt": "2026-03-28T15:00:00.000Z",
"updatedAt": "2026-03-28T15:00:00.000Z"
}
]
}
Was this page helpful?