Call APIEndpoints
List Presentations
Retrieve a paginated list of generated presentations from the Pluslide API.
Endpoint
GET /v1/presentation
Authorization: Bearer YOUR_API_KEYQuery Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
projectId | string | No | - | Filter presentations by project ID |
status | string | No | - | Filter by status: 1 (active), 2 (processing), 9 (failed) |
page | number | No | 1 | Page number for pagination |
perPage | number | No | 10 | Number of items per page (max 100) |
Response
Response Structure
{
"items": "Array<Presentation>",
"total": "number",
"page": "number",
"perPage": "number"
}Presentation Object
| Field | Type | Description |
|---|---|---|
id | number | The presentation task ID |
name | string | Filename of the generated presentation |
status | string | Status code: 1 (active), 2 (processing), 9 (failed) |
updatedAt | string | Last update date and time in ISO format |
size | number | Size of the file in bytes (null if processing) |
pages | number | Number of slides in the presentation |
title | string | Presentation title (from attributes) |
author | string | Author name (from attributes) |
subject | string | Presentation subject (from attributes) |
company | string | Company name (from attributes) |
url | string | Download URL for the generated presentation (null if processing) |
Examples
Basic Request
GET /v1/presentationRequest with Filters
GET /v1/presentation?projectId=proj_123456&page=2&perPage=20Successful Response
{
"items": [
{
"id": 123,
"name": "annual_report_2025.pptx",
"status": "1",
"updatedAt": "2025-05-04T11:30:00Z",
"size": 2458621,
"pages": 15,
"title": "Annual Report 2025",
"author": "Finance Team",
"subject": "Financial Performance",
"company": "Acme Corporation",
"url": "https://storage.example.com/presentations/annual_report_2025.pptx"
},
{
"id": 124,
"name": "sales_presentation_q2.pptx",
"status": "1",
"updatedAt": "2025-05-03T09:15:00Z",
"size": 1845327,
"pages": 12,
"title": "Q2 Sales Presentation",
"author": "Sales Team",
"subject": "Quarterly Results",
"company": "Acme Corporation",
"url": "https://storage.example.com/presentations/sales_presentation_q2.pptx"
}
],
"total": 50,
"page": 1,
"perPage": 10
}Code Examples
cURL
curl -X GET "https://api.pluslide.com/v1/presentation?page=1&perPage=20" \
-H "Authorization: Bearer YOUR_API_KEY"JavaScript
const params = new URLSearchParams({
projectId: 'proj_123456',
page: '1',
perPage: '20',
});
const response = await fetch(
`https://api.pluslide.com/v1/presentation?${params}`,
{
headers: {
Authorization: `Bearer ${API_KEY}`,
},
},
);
const { items, total, page, perPage } = await response.json();
console.log(`Found ${total} presentations`);Pagination
Use the page and perPage parameters to navigate through results:
async function getAllPresentations() {
const presentations = [];
let page = 1;
const perPage = 100;
while (true) {
const response = await fetch(
`https://api.pluslide.com/v1/presentation?page=${page}&perPage=${perPage}`,
{ headers: { Authorization: `Bearer ${API_KEY}` } },
);
const data = await response.json();
presentations.push(...data.items);
if (data.items.length < perPage) break;
page++;
}
return presentations;
}Error Responses
| Status | Code | Description |
|---|---|---|
401 | UNAUTHORIZED | Invalid or missing API key |
429 | RATE_LIMIT_EXCEEDED | Too many requests |
