RunAPI HeyGen Video API
The HeyGen Video API from RunAPI — 4 operation(s) for heygen video.
The HeyGen Video API from RunAPI — 4 operation(s) for heygen video.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/runapi:runapi-heygen-video-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: RunAPI HeyGen Video API
version: v1
description: Create and retrieve AI media tasks, or use compatible LLM protocol endpoints.
servers:
- url: https://runapi.ai
security:
- bearerAuth: []
tags:
- name: HeyGen Video
paths:
/api/v1/heygen_video/image_to_video:
post:
tags:
- HeyGen Video
summary: HeyGen Video Image-to-Video
description: Create an asynchronous task through the HeyGen Video image to video endpoint.
operationId: task_endpoint_heygen_video_image_to_video
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
model:
type: string
description: Model slug.
const: heygen-video-1
prompt:
type: string
maxLength: 16000
minLength: 1
description: Video generation prompt describing the scene, dialogue, and sound.
first_frame_image_url:
type: string
pattern: ^https://
description: Public HTTPS first-frame image URL, up to 16 MB; the video follows the image's aspect ratio.
duration_seconds:
type: integer
enum:
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
default: 5
description: Generated video duration in seconds.
output_resolution:
type: string
enum:
- 480p
- 768p
- 1080p
- 2k
default: 768p
description: Generated video resolution.
seed:
type: integer
maximum: 4294967295
minimum: 0
description: Random seed for reproducible generation.
callback_url:
type: string
description: Webhook URL for async notifications.
additionalProperties: false
required:
- model
- prompt
- first_frame_image_url
responses:
'202':
description: Create acceptance
content:
application/json:
schema:
type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
task_replayed:
type: boolean
unevaluatedProperties: false
'400':
description: Invalid request
content:
application/json:
schema:
oneOf:
- type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
- type: object
required:
- error
- errors
properties:
error:
type: string
description: Human-readable validation summary.
errors:
type: object
description: Validation messages keyed by public request field, with an array of human-readable strings for each field.
additionalProperties:
type: array
items:
type: string
unevaluatedProperties: false
'401':
description: Authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'402':
description: Insufficient balance
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'409':
description: Request conflict
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'429':
description: Api token credit limit exceeded or Rate limited
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'503':
description: Service unavailable
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'504':
description: Timeout error
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/heygen_video/image_to_video/{id}:
get:
tags:
- HeyGen Video
summary: Retrieve HeyGen Video Image-to-Video task
description: Create an asynchronous task through the HeyGen Video image to video endpoint.
operationId: task_endpoint_heygen_video_image_to_video_retrieve
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Polling processing or Polling completed or Polling failed
content:
application/json:
schema:
oneOf:
- type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
unevaluatedProperties: false
- type: object
required:
- id
- status
- videos
- usage
properties:
id:
type: string
status:
type: string
enum:
- completed
videos:
type: array
items:
type: object
required:
- url
properties:
url:
type: string
x-runapi-generated-media: true
unevaluatedProperties: false
usage:
type: object
properties:
cost:
type: number
unevaluatedProperties: false
unevaluatedProperties: false
- type: object
required:
- id
- status
- error
properties:
id:
type: string
status:
type: string
enum:
- failed
error:
type: string
unevaluatedProperties: false
'401':
description: Polling authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'404':
description: Task not found
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/heygen_video/text_to_video:
post:
tags:
- HeyGen Video
summary: HeyGen Video Text-to-Video
description: Create an asynchronous task through the HeyGen Video text to video endpoint.
operationId: task_endpoint_heygen_video_text_to_video
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
model:
type: string
description: Model slug.
const: heygen-video-1
prompt:
type: string
maxLength: 16000
minLength: 1
description: Video generation prompt describing the scene, dialogue, and sound.
duration_seconds:
type: integer
enum:
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
default: 5
description: Generated video duration in seconds.
output_resolution:
type: string
enum:
- 480p
- 768p
- 1080p
- 2k
default: 768p
description: Generated video resolution; 1080p and 2k support only 16:9 and 9:16.
aspect_ratio:
type: string
enum:
- adaptive
- '21:9'
- '16:9'
- '4:3'
- '1:1'
- '3:4'
- '9:16'
description: Generated video aspect ratio; adaptive follows the first reference image or video and is available only with reference media at 480p or 768p.
reference_image_urls:
type: array
items:
type: string
pattern: ^https://
maxItems: 9
description: Public HTTPS reference image URLs, up to 16 MB each; up to 12 reference files in total across images, videos, and audio.
reference_video_urls:
type: array
items:
type: string
pattern: ^https://
maxItems: 3
description: Public HTTPS reference video URLs with aspect ratio between 1:4 and 4:1, up to 32 MB each; only the first 5 seconds of each video are used.
reference_audio_urls:
type: array
items:
type: string
pattern: ^https://
maxItems: 3
description: Public HTTPS reference audio URLs, up to 32 MB each; requires reference images or videos.
seed:
type: integer
maximum: 4294967295
minimum: 0
description: Random seed for reproducible generation.
callback_url:
type: string
description: Webhook URL for async notifications.
additionalProperties: false
required:
- model
- prompt
allOf:
- if:
required:
- reference_audio_urls
then:
anyOf:
- required:
- reference_image_urls
- required:
- reference_video_urls
- if:
allOf:
- not:
required:
- reference_image_urls
- not:
required:
- reference_video_urls
then:
properties:
aspect_ratio:
enum:
- '21:9'
- '16:9'
- '4:3'
- '1:1'
- '3:4'
- '9:16'
- if:
properties:
output_resolution:
const: 1080p
required:
- output_resolution
then:
properties:
aspect_ratio:
enum:
- '16:9'
- '9:16'
- if:
properties:
output_resolution:
const: 2k
required:
- output_resolution
then:
properties:
aspect_ratio:
enum:
- '16:9'
- '9:16'
responses:
'202':
description: Create acceptance
content:
application/json:
schema:
type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
task_replayed:
type: boolean
unevaluatedProperties: false
'400':
description: Invalid request
content:
application/json:
schema:
oneOf:
- type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
- type: object
required:
- error
- errors
properties:
error:
type: string
description: Human-readable validation summary.
errors:
type: object
description: Validation messages keyed by public request field, with an array of human-readable strings for each field.
additionalProperties:
type: array
items:
type: string
unevaluatedProperties: false
'401':
description: Authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'402':
description: Insufficient balance
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'409':
description: Request conflict
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'429':
description: Api token credit limit exceeded or Rate limited
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'503':
description: Service unavailable
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'504':
description: Timeout error
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
/api/v1/heygen_video/text_to_video/{id}:
get:
tags:
- HeyGen Video
summary: Retrieve HeyGen Video Text-to-Video task
description: Create an asynchronous task through the HeyGen Video text to video endpoint.
operationId: task_endpoint_heygen_video_text_to_video_retrieve
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Polling processing or Polling completed or Polling failed
content:
application/json:
schema:
oneOf:
- type: object
required:
- id
- status
properties:
id:
type: string
status:
type: string
enum:
- processing
unevaluatedProperties: false
- type: object
required:
- id
- status
- videos
- usage
properties:
id:
type: string
status:
type: string
enum:
- completed
videos:
type: array
items:
type: object
required:
- url
properties:
url:
type: string
x-runapi-generated-media: true
unevaluatedProperties: false
usage:
type: object
properties:
cost:
type: number
unevaluatedProperties: false
unevaluatedProperties: false
- type: object
required:
- id
- status
- error
properties:
id:
type: string
status:
type: string
enum:
- failed
error:
type: string
unevaluatedProperties: false
'401':
description: Polling authentication required
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
'404':
description: Task not found
content:
application/json:
schema:
type: object
required:
- error
properties:
error:
type: string
description: Human-readable error message.
unevaluatedProperties: false
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API token