Themes API
The Themes API returns the presentation themes (brand templates)
configured for the caller's company. Themes are referenced by
AutoGenerator (template_id) and Template Converter (templateName).
Looking for the themes filtered specifically to AutoGenerator? Use
GET /api/v1/autogenerator/templates. For Template Converter, useGET /api/v1/template-converter/templates.Full schemas and try-it-out forms live in the interactive API Reference.
Authentication
All endpoints require a Bearer token:
Authorization: Bearer YOUR_API_KEY
See Getting Started → Authentication.
Response envelope
Every endpoint returns the canonical envelope: { "success": true, "data": { ... } }
on success or the standard
error envelope on error.
Endpoint summary
| Method | Path | Description | Sync/Async |
|---|---|---|---|
GET | /api/v1/themes | List themes (brand templates) | Sync |
The endpoint is in the auto_generator rate-limit category. See
Developer Guide → Usage quotas and rate limits.
GET /api/v1/themes — List themes
Returns the presentation themes available to the caller's company.
Supports opt-in cursor pagination — omit limit/cursor to receive
the full list unchanged. See
Developer Guide → Pagination.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | no | Case-insensitive name filter. |
feature | string | no | Filter by feature scope. |
enabledFeature | string | no | Optional feature flag filter. |
sort | string | no | Sort expression (for example name:asc). |
source | string | no | Source filter. |
limit | integer | no | Items per page (1–200, default 50). Enables pagination. |
cursor | string | no | Opaque cursor from the previous response's next_cursor. |
Example
- cURL
- Python
- Node.js
curl "https://api.prezent.ai/api/v1/themes?sort=name:asc" \
-H "Authorization: Bearer $PREZENT_API_KEY"
import os
import requests
url = "https://api.prezent.ai/api/v1/themes"
headers = {
"Authorization": f"Bearer {os.environ['PREZENT_API_KEY']}",
}
params = {
"sort": "name:asc",
}
response = requests.get(url, headers=headers, params=params)
response.raise_for_status()
body = response.json()
print(body)
const axios = require('axios');
const listThemes = async () => {
const { data } = await axios.get(
'https://api.prezent.ai/api/v1/themes',
{
params: { sort: 'name:asc' },
headers: {
Authorization: `Bearer ${process.env.PREZENT_API_KEY}`,
},
}
);
console.log(data);
return data;
};
listThemes();
Success response (200)
{
"success": true,
"data": {
"items": [
{
"id": "tmpl_corp_2024",
"name": "Corporate 2024",
"code": "CORP24",
"source": "brand"
}
],
"next_cursor": null
}
}
next_cursor is null on the last page (or when pagination was not
requested). Pass it back as the cursor query parameter to fetch the
next page.
Errors
Common error codes:
400—INVALID_INPUT.401—INVALID_API_KEY,EXPIRED_API_KEY,UNAUTHORIZED.404—ENDPOINT_NOT_FOUND.429—RATE_LIMIT_EXCEEDED,TOO_MANY_REQUESTS.500/503/504— standard server-side codes.
See the full catalog in Developer Guide → Error codes.