Skip to content

Video

HeyGen
API integration

Ship Video features without building the integration. Full HeyGen API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
HeyGen

Use Cases

Why integrate with HeyGen

Common scenarios for SaaS companies building HeyGen integrations for their customers.

01

Embed personalized video outreach in sales engagement tools

Let SDRs and AEs generate thousands of unique, name-personalized avatar videos directly from your platform's sequencing UI. Truto handles HeyGen auth and the async generation lifecycle so your team ships the feature without managing render queues.

02

Add automated video translation to LMS and content platforms

Offer course creators and marketers a one-click button to translate existing videos into dozens of languages with lip-sync and editable subtitles. Your users stay in your product while HeyGen handles rendering and proofreading.

03

Ship interactive video avatars inside support and chat products

Upgrade text-based bots into live streaming avatars that speak LLM responses out loud. Customer experience platforms can package this as a premium tier without owning the WebRTC streaming or voice synthesis stack.

04

Generate dynamic product and listing videos from structured data

Real estate, e-commerce, and marketing SaaS can turn CRM or catalog records into avatar-narrated videos automatically. Connect once via Truto and trigger video generation from any record change.

05

Capture voice and avatar clones natively in your app

Let users record consent-based avatar and voice clones inside your platform rather than redirecting them to HeyGen's dashboard. Useful for creator tools, sales platforms, and white-labeled video products.

What You Can Build

Ship these features with Truto + HeyGen

Concrete product features your team can ship faster by leveraging Truto’s HeyGen integration instead of building from scratch.

01

Bulk personalized video generation with webhook delivery

Trigger thousands of video renders from a template and listen to HeyGen webhook events to know when each `video_url` and `gif_url` is ready for email embedding.

02

Live streaming avatar chat sessions

Spin up video agent sessions, retrieve access tokens, and push messages to a real-time avatar from your own chat or support UI.

03

End-to-end video localization pipeline

Upload a source video, kick off a translation job, expose the generated SRT files for in-app proofreading, then re-render the final lip-synced output.

04

In-app voice and avatar cloning flow

Capture user consent, upload reference media via direct-to-storage uploads, and create cloned voices and avatars that get reused across future video generations.

05

Template-driven video creation from structured records

Map fields from CRM, PIM, or LMS records into HeyGen workflow executions to produce on-brand videos using your customer's brand kits and glossaries.

06

Lip-sync replacement for existing video assets

Let users upload a base video and swap the audio track with synthesized speech or a cloned voice, producing a new lip-synced render for outbound campaigns.

SuperAI

HeyGen AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_hey_gen_video_agents

List HeyGen video agents available in your account. Returns video agent records including id, name, and created_at.

create_a_hey_gen_video_agent

Create a new HeyGen video agent session. Returns session_id, url, and access_token required for connecting to the streaming session.

get_single_hey_gen_video_agent_by_id

Get a single HeyGen video agent by id. Returns the video agent record including id, name, and created_at.

hey_gen_video_agents_send_message

Send a message to an active HeyGen video agent session identified by session_id. Returns task_id, session_id, and status confirming the message was accepted.

hey_gen_video_agents_stop

Stop an active HeyGen video agent session. Returns session_id and status confirming the session was stopped. Required: session_id.

list_all_hey_gen_video_agents_styles

List available HeyGen video agent styles. Returns: id.

list_all_hey_gen_brand_glossaries

List HeyGen brand glossaries. Returns a collection of brand glossary records. Returns: id.

list_all_hey_gen_brand_kits

List all brand kits available in HeyGen. Returns a collection of brand kit objects; no source documentation was available to enumerate additional fields beyond id.

list_all_hey_gen_avatars

List avatars available in heygen. Returns: id.

create_a_hey_gen_avatar

Create a new avatar in heygen. Returns: id.

get_single_hey_gen_avatar_by_id

Get a single heygen avatar by id. Returns: id. Required: id.

delete_a_hey_gen_avatar_by_id

Delete a heygen avatar by id. Returns an empty 204 response on success. Required: id.

list_all_hey_gen_avatars_looks

List all HeyGen avatar looks available in the account. Returns: id.

get_single_hey_gen_avatars_look_by_id

Get a single HeyGen avatar look by id.

hey_gen_avatars_looks_partial_update

Partially update a HeyGen avatar look by look_id.

delete_a_hey_gen_avatars_look_by_id

Delete a HeyGen avatar look by id. Returns an empty 204 response on success. Required: id.

create_a_hey_gen_avatar_group_consent

Create a consent record for a HeyGen avatar group. Returns: group_id. Required: group_id.

create_a_hey_gen_audio_text_to_speech

Create a text-to-speech audio file in HeyGen using the v1 API. Returns the generated audio including audio_url. Required: text, voice_id.

list_all_hey_gen_audio_voices

List all available audio voices in HeyGen. Returns: voice_id, name.

list_all_hey_gen_audio_sounds

List audio sounds available in HeyGen. Returns: id.

list_all_hey_gen_voices

List all available HeyGen voices. Returns: voice_id, name, language, type, preview_audio, support_pause, emotion_support.

create_a_hey_gen_voice

Create a new HeyGen voice. Returns: voice_id, name, language, type, preview_audio, support_pause, emotion_support.

get_single_hey_gen_voice_by_id

Get a single HeyGen voice by id. Returns: voice_id, name, language, type, preview_audio, support_pause, emotion_support. Required: id.

create_a_hey_gen_voices_speech

Create speech audio in HeyGen by submitting a voice synthesis request. Returns audio output; specific response fields are not enumerable from the available source documentation.

create_a_hey_gen_voices_clone

Create a cloned voice in HeyGen by submitting a voice clone request. Returns the newly created voice clone object including its voice_id.

list_all_hey_gen_videos

List HeyGen videos in the current account. Returns a collection of video records including video_id, status, video_title, video_url, thumbnail_url, duration, and created_at.

create_a_hey_gen_video

Create a new HeyGen AI-generated video. Video generation is asynchronous — poll the get method to check progress. Returns video_id of the newly queued video. Required: video_inputs.

get_single_hey_gen_video_by_id

Get a single HeyGen video by id. Returns video_id, status, video_title, video_url, thumbnail_url, duration, gif_url, created_at, and caption_url. Required: id.

delete_a_hey_gen_video_by_id

Delete a HeyGen video by id. Returns an empty 204 response on success. Required: id.

list_all_hey_gen_video_agent_videos

List videos associated with a specific HeyGen video agent session. Returns video records including id, status, video_url, and created_at. Required: session_id.

get_single_hey_gen_video_agent_resource_by_id

Get a specific HeyGen video agent resource by id. Returns: id. Required: session_id, id.

create_a_hey_gen_video_translate

Create a HeyGen video translation job that translates a source video into a specified target language. Returns: video_translate_id. Required: video_url, output_language.

list_all_hey_gen_video_translate_target_languages

List all supported target languages available for HeyGen video translation. Returns: language, name. No required parameters.

list_all_hey_gen_video_translate_captions

List heygen video translate captions available in the account. Returns a collection of caption records. Returns: id.

list_all_hey_gen_video_translations

List all video translation jobs in HeyGen. Returns: video_translation_id, status, output_language, url, title, created_at.

create_a_hey_gen_video_translation

Create a new video translation job in HeyGen. Returns: video_translation_id, status, output_language, url, title, created_at. Required: video_url, output_language.

get_single_hey_gen_video_translation_by_id

Get a single HeyGen video translation job by id. Returns: video_translation_id, status, output_language, url, title, created_at. Required: id.

hey_gen_video_translations_partial_update

Update an existing HeyGen video translation job by video_translation_id. Returns: video_translation_id, status, output_language, url, title, created_at.

delete_a_hey_gen_video_translation_by_id

Delete a HeyGen video translation job by id. Returns an empty 204 response on success. Required: id.

list_all_hey_gen_video_translations_languages

List the supported languages available for HeyGen video translation. Returns: language_code, language.

create_a_hey_gen_video_translations_proofread

Create a HeyGen video translation proofreading job. Returns: id.

get_single_hey_gen_video_translations_proofread_by_id

Get a HeyGen video translation proofreading job by id. Returns: id. Required: id.

list_all_hey_gen_video_translation_proofread_srts

List SRT subtitle content for a HeyGen video translation proofread. Returns: proofread_id, srt. Required: proofread_id.

update_a_hey_gen_video_translation_proofread_srt_by_id

Update the SRT subtitle content for a HeyGen video translation proofread. Returns: proofread_id, srt. Required: proofread_id.

create_a_hey_gen_video_translation_proofread_generate

Trigger the generation process for a HeyGen video translation proofread, initiating content generation for the specified proofread job. Required: proofread_id.

list_all_hey_gen_lipsyncs

List heygen lipsync jobs. Returns: id, status, created_at.

create_a_hey_gen_lipsync

Create a new heygen lipsync job. Returns: id, status, created_at.

get_single_hey_gen_lipsync_by_id

Get a single heygen lipsync job by id. Returns: id, status, created_at.

hey_gen_lipsyncs_partial_update

Update a heygen lipsync job by id. Returns: id, status, created_at.

delete_a_hey_gen_lipsync_by_id

Delete a heygen lipsync job by id. Returns an empty 204 response on success.

list_all_hey_gen_hyperframes_renders

List HeyGen hyperframe renders. Returns render records including their id.

create_a_hey_gen_hyperframes_render

Create a new HeyGen hyperframe render. Returns the created render record including its id.

get_single_hey_gen_hyperframes_render_by_id

Get a single HeyGen hyperframe render by id. Returns the render record including its id. Required: id.

delete_a_hey_gen_hyperframes_render_by_id

Delete a HeyGen hyperframe render by id. Returns an empty 204 response on success. Required: id.

list_all_hey_gen_workflows

List HeyGen workflows. Returns workflow objects including id and workflow-specific attributes; consult the HeyGen API docs for the full field-level breakdown of each record.

create_a_hey_gen_workflows_execution

Create a new HeyGen workflow execution to trigger a workflow run. Returns: id.

get_single_hey_gen_workflows_execution_by_id

Get a HeyGen workflow execution by id to retrieve its current details. Returns: id. Required: id.

create_a_hey_gen_workflows_graph_execution

Create a new HeyGen workflow graph execution. No parameter or response-field documentation was found in the available source; the full request body and response shape are not enumerable from current source — consult the HeyGen API reference for field-level details.

list_all_hey_gen_webhooks_event_types

List all available webhook event types in HeyGen. Returns: event_type, description.

list_all_hey_gen_webhooks_endpoints

List registered HeyGen webhook endpoints. Returns: endpoint_id, url, events, status, and created_at for each endpoint. The secret field is always null in list responses.

create_a_hey_gen_webhooks_endpoint

Register an HTTPS URL as a HeyGen webhook endpoint to receive event notifications. Returns the created endpoint including endpoint_id, url, events, status, created_at, and a one-time signing secret. Store the secret securely — it is not shown again after creation. Required: url, events.

hey_gen_webhooks_endpoints_partial_update

Update an existing HeyGen webhook endpoint by id. Returns the updated endpoint including endpoint_id, url, events, status, and created_at. Required: id.

delete_a_hey_gen_webhooks_endpoint_by_id

Permanently delete a HeyGen webhook endpoint by id, stopping all event delivery to that URL. This action cannot be undone. Returns an empty response on success. Required: id.

create_a_hey_gen_webhook_endpoint_rotate_secret

Rotate the signing secret for a HeyGen webhook endpoint, immediately invalidating the old one. Returns: endpoint_id, secret, url, events, status, and created_at. Store the new secret securely — it will not be shown again. Required: endpoint_id.

list_all_hey_gen_webhooks_events

List HeyGen webhook events from the paginated delivery history, optionally filtered by event type or entity. Returns: event_type, entity_id.

create_a_hey_gen_asset

Upload a file to HeyGen as a reusable asset. Returns: asset_id, url, file_type, created_at, owner. Required: file. Max 32 MB; supported types are png, jpeg, mp4, webm, mp3, wav, and pdf.

get_single_hey_gen_asset_by_id

Get metadata for a HeyGen asset by id. Returns: asset_id, owner, created_at, file_type, url.

delete_a_hey_gen_asset_by_id

Permanently delete a HeyGen asset by id. Returns: asset_id.

hey_gen_assets_complete

Finalize a direct-to-S3 upload for a HeyGen asset by id. Call after the upload PUT returns 200; repeated calls are idempotent and return the same finalized asset. Returns: asset_id, url, file_type, created_at, owner.

create_a_hey_gen_assets_direct_upload

Begin a direct-to-S3 asset upload in HeyGen. After calling this endpoint, PUT the file bytes directly to the returned upload_url, then finalize the upload by calling POST /v3/assets/{asset_id}/complete. Returns: asset_id, upload_url.

Why Truto

Why use Truto’s MCP server for HeyGen

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 500+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with HeyGen in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s HeyGen account

Use Truto’s frontend SDK to connect your customer’s HeyGen account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call HeyGen

Truto’s Proxy API is a 1-to-1 mapping of the HeyGen API. You call us, we call HeyGen, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate HeyGen’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about HeyGen on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their HeyGen accounts?

HeyGen uses API key authentication. Through Truto, your end users provide their HeyGen API key during the connection flow, and Truto stores and injects it on every request so you never handle the credential directly.

How should we handle long-running video renders?

Video generation is asynchronous. The recommended pattern is to call the create video endpoint, then either register a HeyGen webhook endpoint via Truto to receive completion events, or poll the get-video-by-id endpoint until the status resolves to completed or failed.

Can we upload large video and audio files without proxying through our backend?

Yes. HeyGen exposes a direct upload flow for assets, which Truto surfaces through the assets direct upload and assets complete operations. Your frontend can upload directly to HeyGen's storage and then mark the upload complete.

Does Truto support HeyGen's real-time streaming avatars?

Yes. You can create a video agent session, fetch its access token, send messages, and stop the session via Truto. The actual WebRTC media stream is established directly between your client and HeyGen using the returned token.

Can we let users edit translated subtitles before the final render?

Yes. After triggering a translation proofread, you can list the generated SRT entries, update them with corrections (useful for industry jargon or brand terms), and then call the proofread generate endpoint to produce the final lip-synced video.

Can we access a user's brand kits, glossaries, and existing avatars?

Yes. Truto exposes list endpoints for HeyGen brand kits, brand glossaries, avatars, avatar looks, and voices, so your UI can let users pick from their own existing HeyGen assets when composing a video.

HeyGen

Get HeyGen integrated into your app

Our team understands what it takes to make a HeyGen integration successful. A short, crisp 30 minute call with folks who understand the problem.