HelloVideoAI API (1.0.0)

Download OpenAPI specification:Download

Auth

Register a new user

Request Body schema: application/json

User object that needs to be added to the store

Any of
id
string

Required when invite is present

name
required
string
email
required
string

Required when invite is not present

password
required
string >= 6 characters
password_confirmation
required
string
company
required
string <= 55 characters

Required when invite is not present

invite
boolean

Indicates if this is an invitation-based registration

Responses

Request samples

Content type
application/json
{
  • "id": "encrypted_id",
  • "name": "John Doe",
  • "email": "[email protected]",
  • "password": "password123",
  • "password_confirmation": "password123",
  • "company": "My Company",
  • "invite": false
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User registered successfully",
  • "data": {
    }
}

Logs user into the system

Request Body schema: application/json

User login credentials

email
required
string
password
required
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Login successful",
  • "data": {
    }
}

Logout user

Logs out the current user

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Logout successful",
  • "data": {
    }
}

Forgot password

Send password reset email

Request Body schema: application/json

Email to send reset link to

email
required
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Password reset code is sent to your email",
  • "data": {
    }
}

Verify password reset code

Verify the code sent to email for password reset

Request Body schema: application/json

Code to verify

email
required
string
secretCode
required
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Password reset code verified.",
  • "data": {
    }
}

Reset password

Reset the user password

Request Body schema: application/json

Reset password data

email
required
string
secretCode
required
string
password
required
string >= 6 characters
password_confirmation
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "[email protected]",
  • "secretCode": "123456",
  • "password": "newpassword",
  • "password_confirmation": "newpassword"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Password Updated.",
  • "data": {
    }
}

Get current user info

Returns the authenticated user's information

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User",
  • "data": {
    }
}

Brands

Get all brands

List all brands for the authenticated user's team

Authorizations:
sanctum
query Parameters
limit
integer
Default: 1000

Number of items per page

search
string

Search term for brand name

Responses

Response samples

Content type
application/json
{}

Create a new brand

Create a new brand for the authenticated user's team

Authorizations:
sanctum
Request Body schema: application/json

Brand data

name
required
string <= 255 characters
description
string
feed_url
required
string <= 255 characters
logo_path
string
logo_path_url
string
main_color
required
string^#([A-Fa-f0-9]{6})$
sub_heading_color
required
string^#([A-Fa-f0-9]{6})$
description_color
required
string^#([A-Fa-f0-9]{6})$
field_mapping
Array of objects
remote_url
string
token
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get a brand by ID

Get a single brand by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Brand ID

Responses

Response samples

Content type
application/json
{}

Update a brand

Update a brand by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Brand ID

Request Body schema: application/json

Brand data to update

name
required
string <= 255 characters
description
string
feed_url
required
string <= 255 characters
logo_path
string
logo_path_url
string
main_color
required
string^#([A-Fa-f0-9]{6})$
sub_heading_color
required
string^#([A-Fa-f0-9]{6})$
description_color
required
string^#([A-Fa-f0-9]{6})$
field_mapping
Array of objects
remote_url
string
token
string

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Delete a brand

Delete a brand by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Brand ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Brand deleted successfully",
  • "data": {
    }
}

Update brand status

Acknowledge or update the status of a brand

Authorizations:
sanctum
Request Body schema: application/json

Status update data

id
required
integer
acknowledged
required
boolean

Responses

Request samples

Content type
application/json
{
  • "id": 1,
  • "acknowledged": true
}

Response samples

Content type
application/json
{}

Projects

Get all projects

List all projects for the authenticated user's team

Authorizations:
sanctum
query Parameters
brand_id
required
integer

Brand ID

limit
integer
Default: 10

Number of items per page

search
string

Search term for project name

page
integer
Default: 1

Page number

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Projects",
  • "data": {
    }
}

Create a new project

Create a new project for the authenticated user's team

Authorizations:
sanctum
Request Body schema: application/json

Project data

name
string <= 255 characters

Project name

product_ids
Array of integers

Array of product IDs to associate with the project

brand_id
required
integer

Brand ID

Responses

Request samples

Content type
application/json
{
  • "name": "My Project",
  • "product_ids": [
    ],
  • "brand_id": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project created",
  • "data": {
    }
}

Get a project by ID

Get a single project by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Update a project

Update a project by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Request Body schema: application/json

Project data to update

name
string <= 255 characters

Project name

product_ids
Array of integers

Array of product IDs to associate with the project

brand_id
required
integer

Brand ID

Responses

Request samples

Content type
application/json
{
  • "name": "My Project",
  • "product_ids": [
    ],
  • "brand_id": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project updated",
  • "data": {
    }
}

Delete a project

Delete a project by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project deleted",
  • "data": null
}

Get videos for a project

Get all videos associated with a specific project

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

query Parameters
search
string

Search term for video name

limit
integer
Default: 50

Number of items per page

page
integer
Default: 1

Page number

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project videos",
  • "data": {
    }
}

Delete all videos for a project

Delete all videos associated with a specific project

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "All videos deleted for the project",
  • "data": null
}

Reset a project

Reset a project to its initial state

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Project reset successfull",
  • "data": null
}

Products

Get all products for a brand

List all products for a given brand ID

Authorizations:
sanctum
path Parameters
id
required
integer

Brand ID

query Parameters
rowsPerPage
integer
Default: 10

Number of items per page

search
string

Search term for product name

page
integer
Default: 1

Page number

sortBy
string

Sort field (name, videos)

descending
string
Enum: "true" "false"

Sort direction (true for descending, false for ascending)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Generate products for a brand

Generate products for a given brand ID (from feed)

Authorizations:
sanctum
path Parameters
id
required
integer

Brand ID

Request Body schema: application/json

Product generation data (field mapping, etc.)

field_mapping
object

Responses

Request samples

Content type
application/json
{
  • "field_mapping": { }
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Product feed generated successfully",
  • "data": [ ]
}

Delete products

Delete products for the authenticated user's team

Authorizations:
sanctum
Request Body schema: application/json

Product IDs to delete

ids
required
Array of integers

Array of product IDs to delete

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Product deleted",
  • "data": null
}

Videos

Get all videos for a product

Get all available videos for a specific product

Authorizations:
sanctum
path Parameters
product_id
required
integer

Product ID

query Parameters
limit
integer
Example: limit=10

Count of items on the page

page
integer
Example: page=1

Page number

search
string
Example: search=video name

Search string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Delete a video

Delete a specific video by its ID

Authorizations:
sanctum
path Parameters
id
required
string

Video ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Delete multiple videos

Delete multiple videos by their IDs

Authorizations:
sanctum
Request Body schema: application/json

Video IDs to delete

ids
required
Array of strings

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ]
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Generate a single video

Generate a video file based on the provided parameters

Authorizations:
sanctum
Request Body schema: application/json

Video generation parameters

name
string
template_id
required
integer
project_product_id
required
integer
video_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "Product Video",
  • "template_id": 1,
  • "project_product_id": 1,
  • "video_id": "video-uuid-123"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Video generated",
  • "data": {
    }
}

Generate videos for a project

Generate videos for all products in a project

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "List of videos generated",
  • "data": null
}

Upload video to YouTube

Upload video(s) to YouTube

Authorizations:
sanctum
Request Body schema: application/json

YouTube upload parameters

project_id
integer
video_ids
Array of strings

Responses

Request samples

Content type
application/json
{
  • "project_id": 1,
  • "video_ids": [
    ]
}

Response samples

Content type
application/json
{}

Templates

Get all templates

List all templates for the authenticated user's team

Authorizations:
sanctum
query Parameters
default
integer
Default: 0

Get default templates (1) or team templates (0)

limit
integer
Default: 10

Number of items per page

search
string

Search term for template name

page
integer
Default: 1

Page number

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Templates",
  • "data": {
    }
}

Create a new template

Create a new template for video generation

Authorizations:
sanctum
Request Body schema: application/json

Template data

project_id
integer

Project ID

saved
required
integer
Enum: 0 1

Whether to save the template (1 for saved, 0 for not saved)

destination_id
required
integer

Destination ID

description
string <= 1000 characters

Template description

brand_id
integer

Brand ID

font_id
integer

Font ID (required if voiceover_text is Subtitle or Both)

audio_id
required
integer

Audio ID

language_id
required
integer

Language ID

image_path
string <= 255 characters

Image path

font_color
string^#([A-Fa-f0-9]{6})$

Font color (hex format)

font_background_color
string^#([A-Fa-f0-9]{6})$

Font background color (hex format)

background_color
string^#([A-Fa-f0-9]{6})$

Background color (hex format, required if background_type is color)

background_type
required
string
Enum: "color" "blur"

Background type

orientation
string
Enum: "landscape" "portrait"

Video orientation

tone_of_voice
required
string
Enum: "neutral" "friendly" "formal"

Voice tone

with_call_to_action
boolean

Whether to include call to action

public
boolean

Whether the template is public

voiceover_text
required
string <= 255 characters

Voiceover text type

is_female_voice
integer
Enum: 0 1

Voice gender (1 for female, 0 for male, required if voiceover_text is Voiceover or Both)

name
string <= 255 characters

Template name (required if saved is 1)

Responses

Request samples

Content type
application/json
{
  • "project_id": 1,
  • "saved": 1,
  • "destination_id": 1,
  • "description": "Template description",
  • "brand_id": 1,
  • "font_id": 1,
  • "audio_id": 1,
  • "language_id": 1,
  • "font_color": "#000000",
  • "font_background_color": "#ffffff",
  • "background_color": "#ffffff",
  • "background_type": "color",
  • "orientation": "landscape",
  • "tone_of_voice": "neutral",
  • "with_call_to_action": false,
  • "public": false,
  • "voiceover_text": "Voiceover",
  • "is_female_voice": 1,
  • "name": "My Template"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Template created",
  • "data": {
    }
}

Get a template by ID

Get a single template by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Template ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Update a template

Update a template by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Template ID

Request Body schema: application/json

Template data to update

project_id
integer

Project ID

saved
required
integer
Enum: 0 1

Whether to save the template (1 for saved, 0 for not saved)

destination_id
required
integer

Destination ID

description
string <= 1000 characters

Template description

brand_id
integer

Brand ID

font_id
integer

Font ID (required if voiceover_text is Subtitle or Both)

audio_id
required
integer

Audio ID

language_id
required
integer

Language ID

image_path
string <= 255 characters

Image path

font_color
string^#([A-Fa-f0-9]{6})$

Font color (hex format)

font_background_color
string^#([A-Fa-f0-9]{6})$

Font background color (hex format)

background_color
string^#([A-Fa-f0-9]{6})$

Background color (hex format, required if background_type is color)

background_type
required
string
Enum: "color" "blur"

Background type

orientation
string
Enum: "landscape" "portrait"

Video orientation

tone_of_voice
required
string
Enum: "neutral" "friendly" "formal"

Voice tone

with_call_to_action
boolean

Whether to include call to action

public
boolean

Whether the template is public

voiceover_text
required
string <= 255 characters

Voiceover text type

is_female_voice
integer
Enum: 0 1

Voice gender (1 for female, 0 for male, required if voiceover_text is Voiceover or Both)

name
string <= 255 characters

Template name (required if saved is 1)

Responses

Request samples

Content type
application/json
{
  • "project_id": 1,
  • "saved": 1,
  • "destination_id": 1,
  • "description": "Template description",
  • "brand_id": 1,
  • "font_id": 1,
  • "audio_id": 1,
  • "language_id": 1,
  • "font_color": "#000000",
  • "font_background_color": "#ffffff",
  • "background_color": "#ffffff",
  • "background_type": "color",
  • "orientation": "landscape",
  • "tone_of_voice": "neutral",
  • "with_call_to_action": false,
  • "public": false,
  • "voiceover_text": "Voiceover",
  • "is_female_voice": 1,
  • "name": "My Template"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Template updated",
  • "data": {
    }
}

Delete a template

Delete a template by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Template ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Audios

Get all audios

List all available audios for the authenticated user

Authorizations:
sanctum
query Parameters
limit
integer
Default: 10

Number of items per page

search
string

Search term for audio name

page
integer
Default: 1

Page number

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Upload audio

Upload a new audio file

Authorizations:
sanctum
Request Body schema: multipart/form-data

Audio file to upload

audio
required
string <binary>

Audio file (MP3 format, max 4MB)

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Audio added",
  • "data": {}
}

Delete an audio

Delete an audio file by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Audio ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Scripts

Generate scripts

Generate scripts for slides

Authorizations:
sanctum
Request Body schema: application/json

Script generation parameters

name
required
string <= 255 characters

Product name

description
string <= 100000 characters

Product description

tone_of_voice
required
string <= 255 characters

Voice tone for the script

language_id
integer

Language ID

images
required
Array of strings [ 1 .. 20 ] items

Array of image URLs

project_product_id
required
integer

Project product ID

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Generate scripts by project

Generate scripts for all products in a project by project ID

Authorizations:
sanctum
path Parameters
id
required
integer

Project ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "scripts generation started",
  • "data": {
    }
}

Actions

Parse feed URL

Parse a feed URL for products and extract available fields

Authorizations:
sanctum
query Parameters
url
required
string

Feed URL to parse

Responses

Response samples

Content type
application/json
{
  • "status": "Success",
  • "data": {
    }
}

Sync feed

Sync the product feed using token

query Parameters
token
required
string

Base64 encoded token

teamIdToken
string

Base64 encoded team ID token

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Disconnect plugin

Disconnect the WordPress plugin

query Parameters
token
required
string

Base64 encoded token

teamIdToken
string

Base64 encoded team ID token

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Subscription

Set subscription

Set or update the user's subscription

Authorizations:
sanctum
Request Body schema: application/json

Subscription data

sub
required
string

Subscription price ID

paymentMethod
required
string

Payment method ID

Responses

Request samples

Content type
application/json
{
  • "sub": "price_123",
  • "paymentMethod": "pm_123"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Get payment intent

Get payment intent for subscription setup

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Get subscription prices

Get available subscription prices

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Team

Verify invitation

Verify a team invitation link

query Parameters
expires
required
string

Expiration timestamp

id
required
string

Encrypted user ID

signature
required
string

URL signature

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Link is verified",
  • "data": {
    }
}

Get all team members

List all team members for the authenticated user's team

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Team members",
  • "data": [
    ]
}

Update a team member

Update a team member's role by ID

Authorizations:
sanctum
path Parameters
id
required
integer

Team member ID

Request Body schema: application/json

Team member role to update

role
required
string
Enum: "Admin" "Editor" "Viewer"

New role for the team member

Responses

Request samples

Content type
application/json
{
  • "role": "Editor"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Role updated",
  • "data": {
    }
}

Delete a team member

Delete a team member by ID

Authorizations:
sanctum
path Parameters
id
required
integer

Team member ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Deleted successfully",
  • "data": {
    }
}

Invite team members

Invite new members to the team

Authorizations:
sanctum
Request Body schema: application/json

Invitation data

emails
required
Array of strings <email>

Array of email addresses to invite

role
required
string
Enum: "Admin" "Editor" "Viewer"

Role to assign to invited members

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": [
    ],
  • "data": {
    }
}

Get subscription prorate info

Get prorate information for team subscription changes

Authorizations:
sanctum
query Parameters
price_id
required
string

Stripe price ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "price": 29.99
}

Marketing

Generate marketing videos

Auto-generate videos for marketing

Request Body schema: application/json

Marketing video generation data

required
Array of objects

Array of products to generate videos for

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Brand created",
  • "data": {
    }
}

Get marketing videos

Get generated marketing videos

Request Body schema: application/json

Marketing video query data

brand_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "brand_id": 1
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Videos generated",
  • "data": {}
}

Fonts

Get all fonts

List all available fonts with pagination and search

Authorizations:
sanctum
query Parameters
limit
integer
Default: 10

Count of items on the page

page
integer
Default: 1

Page number

search
string

Search string

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Languages

Get all languages

List all available languages

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Destinations

Get all destinations

List all available destinations with pagination and search

Authorizations:
sanctum
query Parameters
limit
integer
Default: 10

Count of items on the page

page
integer
Default: 1

Page number

search
string

Search string

Responses

Response samples

Content type
application/json
{}

Create a new destination

Create a new destination

Authorizations:
sanctum
Request Body schema: application/json

Destination data

name
required
string

Destination name

image_path
string

Image path for destination preview

width
required
integer

Video width (480-1920)

height
required
integer

Video height (480-1920)

call_to_action
boolean

Whether to include call to action

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get a destination by ID

Get a single destination by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Destination ID

Responses

Response samples

Content type
application/json
{}

Update a destination

Update a destination by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Destination ID

Request Body schema: application/json

Destination data to update

name
required
string

Destination name

image_path
string

Image path for destination preview

width
required
integer

Video width (480-1920)

height
required
integer

Video height (480-1920)

call_to_action
boolean

Whether to include call to action

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Delete a destination

Delete a destination by its ID

Authorizations:
sanctum
path Parameters
id
required
integer

Destination ID

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "data": {
    }
}

Users

Get current user

Get the authenticated user's information

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User",
  • "data": {
    }
}

Update current user

Update the authenticated user's information

Authorizations:
sanctum
Request Body schema: application/json

User data to update

name
string

User's name

email
string

User's email address

company
string

Company name (max 55 characters)

password
string

Current password (required when updating password)

newPassword
string

New password (minimum 6 characters)

googleCode
string

Google OAuth code for API token

Responses

Request samples

Content type
application/json
{
  • "name": "John Doe",
  • "email": "[email protected]",
  • "company": "My Company",
  • "password": "currentpassword",
  • "newPassword": "newpassword",
  • "googleCode": "4/0AfJohXn..."
}

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "Data updated",
  • "data": {
    }
}

Delete current user

Delete the authenticated user's account

Authorizations:
sanctum

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "message": "User deleted successfully",
  • "data": null
}