API Documentation
1. Validate Token
API to validate token. Pass the API token to check if it is configured properly.
Authorization
Each request should send Authorization token as Bearer token, this token can be generated from dashboard.
2. Informative Article Generation
Generates an informative article focused on SEO and user intent satisfaction.
Parameter | Required | Type | Description |
---|---|---|---|
project | Optional | String | Project ID where you want this content to be linked to |
title | Required | String | The title of the article. Required if keyword is not present. |
keyword | Required | String | The keyword or topic of the article. Required if title is not present. |
language | Optional | String | Default is English ('en'): The language in which the article should be written. |
country | Optional | String | Default is United States ('US'): The specific country context for the article. |
focus | Optional | String | Additional focus or context for the article. |
add_internal_links | Optional | Boolean | Default is false: Whether to add internal links to the article. |
project_website | Conditional | String | The website URL for internal linking. **Required if add_internal_links is true. |
add_external_links | Optional | Boolean | Default is false: Whether to add external links to the article. |
* Important: At least either the title or the keyword must be provided.
* Bulk Creation: The API allows generating one content per API call. You can send multiple calls to generate multiple contents simultaneously.
3. Video Generation
Generates a video based on a script or keyword with various customization options.
Parameter | Required | Type | Description |
---|---|---|---|
mode | Required | String | Video generation mode. Allowed values: 'single_voice', 'scenes', 'avatar'. |
quality_tier | Optional | String | Quality level. Allowed values: 'basic', 'premium'. Default is 'premium'. Custom styles are only available in premium tier. |
video_script | Required | String | The script for the video. Line breaks must be indicated with \n. For `scenes` mode, must follow specific format with [characters], [scene:] and [end] blocks (see multi-character example) |
language | Optional | String | The language in which the video should be generated. Default is 'en'. Must be a 2-character code. |
country | Optional | String | The target country for the video content. Default is 'US'. Must be a 2-character code. |
aspect_ratio | Required | String | The aspect ratio for the video. Allowed values:'16:9' (landscape), '9:16' (portrait). Default is '16:9'. |
animation_type | Required | String | Animation type. Allowed values: 'moving_image' (ken burns effect), 'ai_video' (AI-generated animation). 'ai_video' is not compatible with 'scenes' mode. |
voice_id | Conditional | String | The ID of the voice to be used for narration. Required in `single_voice` mode and `avatar` mode. Not used in `scenes` mode (use `voices` instead). |
voice_style | Optional | String | The style of the voice. Allowed values: 'narrative', 'expressive', 'dynamic'. Default is 'expressive'. |
voice_speed | Optional | String | The speed of the voice narration. Allowed values: 'standard', 'fast', 'very_fast'. Default is 'standard'. |
voices | Conditional | Array of Objects | Voice mapping for characters. Required in `scenes` mode. Each object must contain: { 'character': 'CHARACTER_NAME', 'voice_id': 'VOICE_ID' }. Maximum 8 characters allowed. All characters mentioned in the script must have voice mappings. |
media_type | Conditional | String | The type of media to generate. Allowed values: 'ai_image', 'google_image', 'custom_image'. Required except for `avatar` mode with 'full_screen' layout. In `scenes` mode, must be 'ai_image'. |
style | Conditional | String | The visual style for AI-generated images. Required when `media_type` is 'ai_image'. Default is 'photorealistic'. Allowed values: 'photorealistic', 'flat_design', 'comic', 'minimal', 'anime', '3d', 'cyber', 'classic_bw', 'dark', 'watercolor', 'bw_sketch', 'retro_80s', 'pop', 'pixel', 'papercut', 'doodle', 'sticker', 'fairytale', 'low_poly', 'fantasy', 'impressionist', 'surreal', 'minecraft', 'street_art', 'lego', 'barbie', 'retro_cartoon', 'psychedelic', 'gothic', 'art_nouveau', 'origami', 'metallic', 'glitch_art', 'wool_craft', 'stop_motion', 'clay_model', '80s_sitcom'. |
style_id | Conditional | String | The ID of a custom style. Required when `style` is 'custom' and `media_type` is 'ai_image'. Only available in 'premium' tier. |
images_per_minute | Optional | Integer | Number of images generated per minute of video. Accepts values between 8 and 40. Default is 8. Not applicable when `media_type` is 'custom_image'. For `scenes` mode, this is calculated automatically based on script length. |
custom_images_urls | Conditional | Array of strings | List of image URLs. Required when `media_type` is 'custom_image'. For 'ai_video' animation type, the exact number of images required depends on script length (1 image per 8 words). |
avatar_id | Conditional | String | The ID of the avatar. Required when `mode` is 'avatar'. Note: Not all avatars are compatible with all layouts. Check the available avatars in your account and their compatibility with different layouts. |
avatar_layout | Conditional | String | Avatar layout. Required when `mode` is 'avatar'. Allowed values: 'full_screen' (only avatar visible), 'combined' (avatar with media). |
avatar_layout_style | Conditional | String | Avatar layout style. Required when `avatar_layout` is 'combined'. Allowed values: 'split_screen' (only compatible with 9:16 aspect ratio), 'overlay' (only compatible with 9:16 aspect ratio), 'overlay_corner' (compatible with 9:16 or 16:9 aspect ratios), 'presentation' (only compatible with 16:9 aspect ratio). |
avatar_layout_options | Conditional | Object | Additional layout options. Required for 'presentation' layout style. The object must contain: { 'perspective': boolean (default: false), 'background_id': integer (1-10) }. |
add_subtitles | Optional | Boolean | Indicates whether to add subtitles to the video. Default is false. |
caption_font | Conditional | String | The font to use for captions. Required if `add_subtitles` is true. Default is 'Roboto'. Use 'custom' to specify a custom font with `caption_font_url`. |
caption_font_url | Conditional | String | URL of the custom font. Required when `caption_font` is 'custom' and `add_subtitles` is true. |
caption_alignment | Conditional | String | The alignment of captions. Required if `add_subtitles` is true. Allowed values: 'top', 'top_middle', 'middle', 'bottom_middle', 'bottom'. Default is 'bottom'. |
subtitle_highlight_color | Conditional | String | The color used for highlighting words in subtitles. Required if you want word highlighting. Allowed values: 'purple', 'blue', 'orange', 'yellow', 'red', 'deepskyblue', 'green', 'teal', 'pink', 'cyan', 'magenta', 'lime', 'navy', 'maroon', 'olive', 'silver', 'gold', 'indigo', 'coral', 'turquoise', 'darkgreen', 'darkorange', 'crimson', 'skyblue', 'violet', 'khaki', 'salmon', 'plum', 'orchid', 'sienna'. |
subtitle_stroke_width | Optional | Number | The stroke width of the subtitle text. Allowed values: 0 (Hidden), 1 (Light), 2 (Standard), 3 (Heavy). Default is 0. |
subtitle_highlight_mode | Conditional | String | The mode of highlighting in subtitles. Required if `subtitle_highlight_color` is provided. Allowed values: 'background' (highlight behind text), 'text' (colored text). Default is 'background' when color is provided. |
add_background_music | Optional | Boolean | Indicates whether to add background music to the video. Default is false. |
background_music_id | Conditional | String | The ID of the background music track. Required if `add_background_music` is true. |
* Bulk Creation: The API allows generating one content per API call. You can send multiple calls to generate multiple contents simultaneously.
4. Get My Projects
Fetches a list of projects you have created. Below are the query parameters to filter data.
Parameter | Required | Type | Description |
---|---|---|---|
page | Optional | Number | Page number to fetch |
limit | Optional | Number | Number of items per page. |
search | Required | String | Search term by project name or domain |
5. Project Details
Fetches details of a single project. Replace projectId in the URL with the actual project ID.
Parameter | Required | Type | Description |
---|---|---|---|
projectId | Required | String | ID of the project to fetch details for. Should be passed as a URL parameter. |
6. Get My Contents
Fetches a list of contents you have added to generate. Below are the query parameters to filter data.
Parameter | Required | Type | Description |
---|---|---|---|
page | Optional | Number | Page number to fetch |
limit | Optional | Number | Number of items per page. |
search | Required | String | Search term by title or content ID |
status | Optional | String | Filter by content status. Statuses are: creating/failed/completed |
type | Optional | String | Filter by content type. Type is: article |
7. Content Details
Fetches details of a single content. Replace contentId in the URL with the actual content ID.
Parameter | Required | Type | Description |
---|---|---|---|
contentId | Required | String | ID of the content to fetch details for. Should be passed as a URL parameter. |
8. Get My Videos
Fetches a list of videos you have created. Below are the query parameters to filter data.
Parameter | Required | Type | Description |
---|---|---|---|
page | Optional | Number | Page number to fetch |
limit | Optional | Number | Number of videos per page |
search | Optional | String | Search term for video relevant fields |
9. Video Details
Fetches details of a single video. Replace videoId in the URL with the actual video ID.
Parameter | Required | Type | Description |
---|---|---|---|
videoId | Required | String | ID of the video to fetch details for. Should be passed as a URL parameter. |
10. Credit Consumption
To use Vuela's API, you must have credits in your account. Our credit system ensures fair usage and helps maintain the quality of our services.
Please note: In the event of an API error or if Vuela is unable to generate content, no credits will be charged to your account. We only deduct credits for successful operations that deliver content.