NewRun Encelade in your own cloud, with your own LLMLearn more

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
View on GitHub
POST /api/public/v1/generation/runs
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.

  1. 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.

  2. 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.

  3. 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.

Make your first
presentation request.

Get an API key