REST API
Build presentations into your product.
Send a brief with your source material to the API. Track the generation run, then retrieve a deck you can edit and share.
Quickstart
Call generate
Authenticate with an API key, POST a brief with your content, and receive a run ID. Poll the run — or register a webhook — to get the finished presentation URL.
- Accepts raw text, data, and links
- Up to 200,000 characters per brief
- Webhooks for async delivery
- Full CRUD over projects
curl -X POST \
https://www.encelade.ai/api/public/v1/generation/runs \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"brief": "Q1 performance review: revenue growth by region and key product launches. Data: https://your-data-source.com/q1. EMEA grew 34% YoY...",
"audience": "Leadership team",
"pageCount": "auto"
}'How it works
From source material to shareable link.
- 01
Create an API key
Generate a scoped key in your dashboard. Send it as an x-api-key header or a Bearer token on every request.
- 02
POST your data
Call /generation/runs with a brief: what to make, plus your notes, data, and links. You get back a run ID.
- 03
Poll or webhook
Poll /generation/runs/{id} until status is done, or register a webhook to be notified — then use the returned link.
Webhooks beat polling
For server-to-server use, register a webhook instead of polling. Encelade calls it when generation completes or fails, so you don't hold a request open or burn rate limit on status checks.
Questions
REST API
& Encelade.
How do I generate a presentation from an API?
POST a brief to /api/public/v1/generation/runs with an API key. The response includes a run ID you poll until the presentation is ready.
What inputs does the API accept?
One brief of up to 200,000 characters: raw text, pasted data such as CSV rows, and links, mixed freely. There are no file uploads.
Is generation synchronous?
No. Generation returns a run ID immediately; you either poll /generation/runs/{id} or register a webhook to learn when the deck is ready.