---
canonical_url: "https://docs.composio.dev/toolkits/elai"
markdown_url: "https://docs.composio.dev/toolkits/elai.md"
product: "platform"
version: null
last_updated: null
---

# Elai

Elai is an AI video generation platform for creating, personalizing, translating, and rendering presenter-led videos from text, templates, and uploaded media.

- **Category:** ai content generation
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 8
- **Triggers:** 0
- **Slug:** `ELAI`
- **Version:** 00000000_00

## Tools

### Copy Video

**Slug:** `ELAI_COPY_VIDEO`

Create a draft copy of an existing video or template; the new draft counts against Elai's creation quota.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `folder_id` | string | No | Destination Elai folder ID; omit to use the account default. |
| `create_template` | boolean | No | Create the copy as a reusable template instead of a regular draft video. |
| `source_video_id` | string | Yes | ID of the video or template to duplicate. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Story Video

**Slug:** `ELAI_CREATE_STORY_VIDEO`

Create a Story video from text, HTML, or a web-page URL and generate its visual slides so it is ready for rendering. The video counts against Elai's creation quota; a failed slide-generation step automatically deletes the draft.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `source` | string | Yes | Plain text, HTML markup, or an http(s) web-page URL to turn into a prepared Story video. |
| `folder_id` | string | No | Elai folder ID for the new video; omit to use the account default. |
| `source_type` | string ("text" | "html" | "url") | Yes | How to interpret source; url is routed to Elai's html mode. |
| `fix_with_gpt` | boolean | No | Use GPT to add missing text or images and shorten speech while generating slides; may consume additional paid entitlement. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Video

**Slug:** `ELAI_DELETE_VIDEO`

Permanently delete one Elai video or template. This cannot be undone, requires the exact known ID, and requires explicit confirmation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | Exact ID of the video or template to permanently delete. |
| `confirm_permanent_delete` | boolean | Yes | Set to true only after confirming permanent deletion of this exact video ID. This value is not sent to Elai. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Estimate Speech Duration

**Slug:** `ELAI_ESTIMATE_SPEECH_DURATION`

Estimate how many seconds narration text will take with a selected Elai voice before modifying or rendering a video.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `text` | string | Yes | Narration text whose approximate spoken duration should be calculated. |
| `language` | string | Yes | Elai language name supported by the selected voice, such as English. |
| `provider` | string ("elevenlabs" | "azure" | "google") | Yes | Voice provider. Supported values are elevenlabs, azure, and google. |
| `voice_id` | string | Yes | Known Elai voice ID or an avatar's default_voice value without the provider prefix. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Video

**Slug:** `ELAI_GET_VIDEO`

Get a video's status, render URL, metadata, and optionally its full slide configuration.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | Elai video or template ID, usually obtained from List Videos or a creation tool. |
| `include_slides` | boolean | No | Include the complete slides and canvas configuration; leave false for compact status polling. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Avatars

**Slug:** `ELAI_LIST_AVATARS`

Find available avatars and variants as compact records, optionally limited to Realtime-compatible avatars.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum compact avatar records to return (1-100). |
| `gender` | string ("male" | "female") | No | Return only avatars with this gender. |
| `offset` | integer | No | Zero-based offset into the locally filtered catalog. |
| `search` | string | No | Case-insensitive text to match against avatar or variant name and code locally. |
| `realtime_compatible` | boolean | No | Ask Elai for only Realtime-compatible avatars; useful for discovery even though Realtime lifecycle tools are excluded. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Videos

**Slug:** `ELAI_LIST_VIDEOS`

List videos and templates as compact summaries, with filters and a continuation cursor for additional pages.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | array | No | Sort fields in priority order; plus is ascending and minus is descending. |
| `tags` | array | No | Return only videos matching these Elai tags. |
| `limit` | integer | No | Maximum video summaries to return on this page (1-100). |
| `cursor` | string | No | Opaque continuation cursor returned by a previous call; when present, reuse it without changing filters. |
| `deleted` | boolean | No | Filter by deletion state: true returns only deleted videos, false returns only active videos, and omission returns both. |
| `statuses` | array | No | Return only videos in any of these lifecycle states. |
| `video_type` | string ("template" | "story") | No | Return templates or Story videos; omit to return regular videos. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Render Video

**Slug:** `ELAI_RENDER_VIDEO`

Start asynchronous rendering of a prepared video, consuming paid rendering minutes. Requires confirm_paid_render=true. Use Get Video afterward to check status and obtain the final URL; this action does not poll automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `video_id` | string | Yes | Prepared video ID to render. |
| `confirm_paid_render` | boolean | Yes | Set to true only after confirming that rendering should consume the account's paid minutes. This confirmation is validated locally and is not sent to Elai. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
