canonical: https://jentic.com/apis/elai.io/elai

# Elai API

Jentic publishes the only available OpenAPI specification for Elai API, keeping it validated and agent-ready. Elai.io is an AI-driven video creation platform that turns text, presentations, and prompts into avatar-led videos. The v1 API exposes 20 endpoints for creating, rendering, copying, translating, and personalising videos, generating slides from a story, enhancing video content with GPT, listing avatars and voices, running real-time video streams, and subscribing to webhooks for asynchronous render events.

## For AI agents

Generate, render, translate, and personalise AI avatar videos from text or presentations, and stream them in real time.

## Scope

Does not handle live video streaming distribution, audio-only podcast generation, or hosted CDN delivery - use for AI avatar video creation, rendering, translation, personalisation, and real-time streams only.

## Capabilities

- Create new AI avatar videos from text, presentations, or templates
- Render and re-render videos and produce personalised batches against a template
- Translate an existing video into another language while preserving the avatar performance
- Generate slide content for a video story and enhance scripts with GPT
- Open, control, and close real-time avatar streams for live applications
- List the available avatars and voices that can be used inside a video
- Subscribe to webhooks so backend systems are notified when a render completes

## Use cases

### Personalised sales-outreach videos at scale

A sales team wants to send each prospect a short video addressing them by name and referencing their company. The Elai API supports a personalised-batch render against a template, so a single template plus a CSV of prospects produces hundreds of unique videos. A webhook fires per render so the outreach tool knows when a given video is ready to send.

Example prompt: POST `/videos/renderTemplate/{videoId}` with the prospect list, then handle the webhook delivered to the subscribed endpoint to email each finished video to the right prospect.

### Multilingual training video production

A learning team produces a base course in English and needs Spanish, French, and Portuguese versions. The Elai translate-video endpoint takes an existing videoId and a target language, returning a new translated video without re-shooting. Combined with the avatars and voices listings, the team can pick a localised voice per language for a consistent feel.

Example prompt: Call POST `/videos/translate/{videoId}` for each target language, then poll GET `/videos/{videoId}` or wait for the webhook before publishing the translated versions.

### Slide-deck-to-video automation

A content team uploads a presentation and wants Elai to generate a complete video from it. POST `/videos/from-presentation` accepts the deck, POST `/story/generate-slides/{videoId}` expands the storyline, and POST `/gpt/{videoId}` polishes the script before rendering. The result is a turnkey deck-to-video pipeline that runs without manual scene editing for routine content.

Example prompt: POST `/videos/from-presentation` with the deck, then POST `/story/generate-slides/{videoId}` and POST `/videos/render/{videoId}` once the script is approved.

### Real-time avatar stream for a live event

An interactive product demo or live event drives a real-time AI avatar to respond to operator prompts. POST /streams opens a session, PUT `/streams/{streamId}` starts it, and DELETE `/streams/{streamId}` closes it cleanly. The streams resource decouples real-time use cases from the asynchronous render pipeline.

Example prompt: POST /streams to allocate the stream, PUT `/streams/{streamId}` when the operator goes live, and DELETE `/streams/{streamId}` after the event ends.

### Elai as an agent video tool through Jentic

An AI agent platform exposes 'make a short video' as a callable tool. Through Jentic, the agent searches by intent, receives the right Elai operation, and runs the render with the bearer token Jentic injects at execution time. The agent does not need to handle Elai's auth or pick between 20 endpoints by hand.

Example prompt: Search Jentic for 'create an AI avatar video from a script', load POST /videos plus POST `/videos/render/{videoId}`, and run them in sequence to deliver a finished video URL.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/videos` | Create a video |
| POST | `/videos/render/{videoId}` | Render a video |
| POST | `/videos/translate/{videoId}` | Translate a video |
| POST | `/videos/renderTemplate/{videoId}` | Render personalised batch from template |
| POST | `/videos/from-presentation` | Create a video from a presentation |
| POST | `/streams` | Create a real-time avatar stream |
| GET | `/avatars` | List avatars |
| POST | `/webhooks/subscribe` | Subscribe to a webhook |

## Key resources

- **Videos** — Create, list, retrieve, update, render, copy, translate, and delete avatar videos
- **Streams** — Open, start, and close real-time avatar streams
- **Story** — Generate slide content for a video story
- **GPT** — Enhance video scripts and content with GPT
- **Avatars** — List available AI avatars
- **Voices** — List available voices
- **Webhooks** — Subscribe to render and account webhook events

## Why Jentic

- **Setup:** Wiring Elai by hand means handling its bearer auth, setting the Authorization header on every call, and sequencing video creation, render, and translation steps yourself. Through Jentic you install once, import the Elai API from the API Directory, store the bearer token once, and your agent calls it.
- **Permission scoping:** Elai puts the video id in the URL path (`/videos/render/{videoId}`, `/videos/translate/{videoId}`), so a rule can pin your agent to one video for its render and translate work. You choose the operations it may call, so creating new videos or subscribing webhooks are not included unless you add them.
- **Credential handling:** Your Elai bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an AI avatar video' or 'translate a video', and Jentic returns the matching Elai operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Synthesia API** — Synthesia is a competing AI avatar video platform with a similar text-to-video flow.
- **HeyGen API** — HeyGen offers AI avatar video generation with strong real-time streaming features.
- **Mux API** — Mux handles video hosting, streaming, and analytics for the videos Elai produces.

## FAQ

### Why is there no official OpenAPI spec for Elai API?

Elai does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Elai API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Elai API use?

Elai uses HTTP bearer authentication. Pass your API key in the Authorization: Bearer header on every request. Jentic stores the key encrypted in its vault and injects it at execution time so the agent never sees the raw secret.

### Can I translate an existing video into another language?

Yes. POST `/videos/translate/{videoId}` takes an existing video and a target language and returns a new translated video, preserving the avatar performance.

### How do I render a personalised batch from a template?

Configure a template video in Elai, then call POST `/videos/renderTemplate/{videoId}` with the per-recipient variables. Each recipient gets a unique render and the webhook fires when each one finishes.

### What are the rate limits for the Elai API?

Rate limits are not declared in the OpenAPI spec and depend on your Elai subscription tier. Render-heavy workloads should subscribe to the webhook via POST `/webhooks/subscribe` rather than polling GET `/videos/{videoId}.`

### How do I create a video through Jentic?

Install the SDK with pip install jentic, search Jentic for 'create an AI avatar video', load the POST /videos schema, and execute with your script and avatar choice. Jentic injects the bearer token and returns the video ID for follow-up render and download calls.

### Can I limit what my agent is allowed to do with the Elai API?

Yes. Because you run Jentic One yourself, your own rules decide which Elai operations the agent may call and which bearer credential it uses. Elai puts the video id in the URL path for calls like POST `/videos/render/{videoId}` and POST `/videos/translate/{videoId}`, so you can pin the agent to render and translate a single video while leaving out operations such as creating new videos or subscribing webhooks. Nothing is available to the agent unless you explicitly allow it.
