> For the complete documentation index, see [llms.txt](https://guide.plusai.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://guide.plusai.com/apis-for-presentations/api-reference/presentation-agent.md).

# Presentation Agent

Create and drive AI presentation agent sessions.

## Create and start an AI agent session

> Creates a new agent session, posts the initial prompt, and starts the\
> agent. Returns a polling URL to track progress.\
> \
> Optionally seeds the session with an existing PowerPoint file\
> (\`pptxFileId\`) and/or file attachments (\`attachments\[].fileId\`). File\
> IDs must reference files owned by the caller's organization (e.g.\
> uploaded via \`PUT /r/v0/files/upload\`).<br>

```json
{"openapi":"3.1.0","info":{"title":"PlusAI REST API","version":"v0"},"tags":[{"name":"Presentation Agent","description":"Create and drive AI presentation agent sessions."}],"servers":[{"url":"https://api.plusdocs.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key issued for your Plus organization, sent as a bearer token."}},"schemas":{"CreateAgentSessionRequest":{"type":"object","properties":{"prompt":{"type":"string","description":"The initial instruction for the agent."},"pptxFileId":{"type":"string","description":"ID of an existing PowerPoint file (uploaded via the files API) to\nseed the session with. Must reference a `.pptx`/PowerPoint file.\n"},"language":{"type":"string","description":"Target language. Defaults to `auto`.","default":"auto"},"attachments":{"type":"array","description":"Files to attach to the initial message.","items":{"type":"object","properties":{"fileId":{"type":"string"}},"required":["fileId"]}},"callbackUrl":{"type":"string","format":"uri","description":"HTTPS URL invoked when the session changes state. Must be a public\nHTTPS address (no localhost/private IPs).\n"},"model":{"type":"string","description":"The model to use.","enum":["claude-opus-4-8","claude-opus-4-7","claude-opus-4-6","claude-sonnet-4-6","claude-haiku-4-5","gpt-5.4","gpt-5.4-nano","gpt-5.4-mini","gpt-5.5"]}},"required":["prompt"]},"CreateAgentSessionResponse":{"type":"object","properties":{"sessionId":{"type":"string"},"pollingUrl":{"type":"string","format":"uri","description":"URL to poll for session state."}},"required":["sessionId","pollingUrl"]},"Error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]},"PaymentRequiredError":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}},"responses":{"BadRequest":{"description":"The request was malformed or missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalServerError":{"description":"An unexpected error occurred.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/r/v0/agent/sessions":{"post":{"operationId":"createAgentSession","tags":["Presentation Agent"],"summary":"Create and start an AI agent session","description":"Creates a new agent session, posts the initial prompt, and starts the\nagent. Returns a polling URL to track progress.\n\nOptionally seeds the session with an existing PowerPoint file\n(`pptxFileId`) and/or file attachments (`attachments[].fileId`). File\nIDs must reference files owned by the caller's organization (e.g.\nuploaded via `PUT /r/v0/files/upload`).\n","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentSessionRequest"}}}},"responses":{"201":{"description":"Session created and started.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAgentSessionResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"description":"Insufficient AI agent credits for the billing cycle.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentRequiredError"}}}},"500":{"$ref":"#/components/responses/InternalServerError"}}}}}}
```

## Get the current state of an agent session

> Returns the current status of an agent session. Poll this endpoint\
> until \`status\` reaches a terminal value. When the agent finishes,\
> \`pdfUrl\`, \`pptxUrl\`, and \`thumbnailUrl\` are populated with download URLs.<br>

```json
{"openapi":"3.1.0","info":{"title":"PlusAI REST API","version":"v0"},"tags":[{"name":"Presentation Agent","description":"Create and drive AI presentation agent sessions."}],"servers":[{"url":"https://api.plusdocs.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key issued for your Plus organization, sent as a bearer token."}},"schemas":{"AgentSession":{"type":"object","properties":{"sessionId":{"type":"string"},"status":{"type":"string","enum":["READY","IDLE","RUNNING","PENDING_TOOL_CALLS","DONE","INTERRUPTED","FAILED"]},"pdfUrl":{"type":["string","null"],"format":"uri","description":"Download URL for the generated PDF (populated when finished)."},"pptxUrl":{"type":["string","null"],"format":"uri","description":"Download URL for the generated PPTX (populated when finished)."},"thumbnailUrl":{"type":["string","null"],"format":"uri","description":"Download URL for a thumbnail image (populated when finished)."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["sessionId","status"]},"Error":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}},"responses":{"BadRequest":{"description":"The request was malformed or missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/r/v0/agent/sessions/{sessionId}":{"get":{"operationId":"getAgentSession","tags":["Presentation Agent"],"summary":"Get the current state of an agent session","description":"Returns the current status of an agent session. Poll this endpoint\nuntil `status` reaches a terminal value. When the agent finishes,\n`pdfUrl`, `pptxUrl`, and `thumbnailUrl` are populated with download URLs.\n","parameters":[{"name":"sessionId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The current session state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSession"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"description":"Session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.plusai.com/apis-for-presentations/api-reference/presentation-agent.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
