heygen_create_ video_ translateTranslate a video into one or more target languages.
Render an avatar video from a script, dub it into the languages you sell in, clone a voice, train a photo avatar group, and check each job until the finished video URL comes back.
PopMCPHeyGen
Every video, avatar, voice, translation, template, asset and webhook call the connection exposes, plus the webhook events you can trigger on.
heygen_create_ video_ translateTranslate a video into one or more target languages.
heygen_create_ video_ translation_ v3Translates a video into one or more target languages with voice cloning and lip-sync.
heygen_get_ video_ translation_ v3Returns details for a translation job including status, output language, video_url, and failure info if applicable.
heygen_list_ video_ translate_ languagesList all supported target language codes for video translation.
heygen_video_ translate_ statusCheck Translation Status
heygen_create_ avatar_ videoCreate a video from a specific avatar or image with full control over avatar, voice, and script.
heygen_create_ videoCreates a video from a HeyGen avatar or an arbitrary image.
heygen_create_ webm_ videoGenerates a webm video with transparent background and an avatar speaking the input text.
heygen_delete_ videoPermanently delete a video.
heygen_generate_ video_ v2This API now generates videos with our New AI Studio backend.
heygen_get_ video_ statusThis endpoint allows you to retrieve the status and details of a specific video.
heygen_get_ video_ v3Returns details for a video including status, video_url, thumbnail_url, duration, and failure info if applicable.
heygen_list_ videosList videos in the account with pagination and optional filtering.
heygen_create_ webhook_ endpointRegisters an HTTPS URL to receive webhook event notifications.
heygen_list_ all_ avatar_ groupsList all avatar groups
heygen_list_ all_ avatars_ in_ one_ avatar_ groupList all avatars in one avatar group
heygen_list_ avatar_ looksReturns a paginated list of avatar looks (outfits, poses, styles).
heygen_list_ avatars_ v2You can get your Avatars and Talking Photos(Photo Avatars) with this endpoint.
heygen_list_ webhook_ endpointsReturns a paginated list of registered webhook endpoints.
heygen_list_ webhook_ event_ typesReturns all available webhook event types with human-readable descriptions.
heygen_check_ photolook_ generation_ statusCheck photo/look generation status
heygen_clone_ voiceCreates a voice clone from an audio file.
heygen_create_ photo_ avatar_ groupThis api can be used to create a photo avatar group For generated photo avatar, pass the generation_id and the image_key For user uploaded avatar, first upload the photo using the upload assets api.
heygen_create_ speech_ v3Synthesize speech audio from text using a specified voice.
heygen_generate_ photo_ avatar_ looksThis endpoint can be used to generate additional looks for a trained photo avatar group.
heygen_generate_ photo_ avatar_ photosThis endpoint will generate photos that can be used to create photo avatars, returns a generation id, which can be used in the check generation status endpoint to get status and final image/image keys
heygen_get_ training_ job_ statusGet the training status of an avatar group
heygen_list_ brand_ voicesThis endpoint is used to retrieve a list of brand voices your created
heygen_list_ voices_ v2List All Voices (V2)
heygen_list_ voices_ v3Returns a paginated list of voices, filterable by type, engine, language, and gender.
heygen_text_ to_ speechSynthesize speech audio from text using a specified voice.
heygen_train_ photo_ avatar_ groupTrain a photo avatar group.
heygen_create_ video_ agentCreate a video from a text prompt using HeyGen's Video Agent.
heygen_create_ video_ agent_ v3One-shot video generation from a prompt — agent handles scripting, avatar selection, scene composition, and rendering.
heygen_get_ video_ agent_ sessionReturns the current status, progress, video_id, and recent chat messages for a session.
heygen_list_ video_ agent_ session_ videosReturns all videos produced within a Video Agent session, sorted newest-first.
heygen_create_ asset_ uploadBegin a direct-to-S3 upload.
heygen_get_ assetReturns metadata for an asset in the caller's workspace — including owner, upload timestamp, file type, and a publicly accessible URL.
heygen_search_ assetsSemantically search re-hosted public images and icons by natural-language description, e.g.
heygen_append_ avatar_ realtime_ textAppend a text delta to a session created with `type: text_stream`.
heygen_cancel_ avatar_ realtime_ sessionCancel a running streaming session.
heygen_create_ avatar_ realtime_ sessionStart a low-latency streaming avatar session and return a `stream_id`.
heygen_create_ lipsync_ v3Replaces the audio on an existing video and re-animates the speaker's lip movements to match the new audio.
heygen_get_ avatar_ realtime_ sessionGet the status of a streaming avatar session.
heygen_get_ lipsync_ v3Returns details for a lipsync job including status, video_url, caption_url, and failure info if applicable.
heygen_generate_ from_ template_ v2This API now supports New AI Studio!
heygen_get_ template_ v2This API now supports New AI Studio!
heygen_list_ templates_ v2This API now supports New AI Studio!
heygen_check_ video_ avatar_ generation_ statusChecks the current status of the Digital Twin generation process and returns relevant details.
heygen_get_ remaining_ quotaGet Remaining Quota
heygen_get_ user_ meReturns the authenticated user's profile, remaining credits or balance, and billing details.
heygen_submit_ video_ avatar_ creation_ requestSubmits the URLs for the required training footage and consent statement to create a Digital Twin.
heygen_create_ proofread_ v3Creates a proofread session that extracts editable subtitles from a video before final rendering.
heygen_delete_ video_ translation_ v3Permanently deletes a video translation and its associated files.
heygen_download_ proofread_ srt_ v3Returns presigned download URLs for the edited and original SRT files of a completed proofread session.
heygen_generate_ from_ proofread_ v3Starts final video generation using the approved subtitles from a proofread session.
heygen_get_ proofread_ v3Returns the status and details of a proofread session.
heygen_get_ video_ translate_ captionGet the caption file (SRT or VTT format) for a completed video translation.
heygen_list_ video_ translation_ languages_ v3Returns all supported target language names for video translation.
heygen_list_ video_ translations_ v3Returns a paginated list of all video translation jobs in the account.
heygen_update_ video_ translation_ v3Updates the display title of a video translation job.
heygen_upload_ proofread_ srt_ v3Replaces the proofread subtitles with an edited SRT file.
heygen_delete_ video_ v1Delete a Video
heygen_delete_ video_ v3Permanently deletes a video and its associated files.
heygen_get_ videoGet detailed information about a video including status, URLs, and metadata.
heygen_list_ videos_ v1This endpoint retrieves a list of videos associated with the user.
heygen_list_ videos_ v3Returns a paginated list of all videos in the account.
heygen_add_ webhook_ endpoint_ v1Add a Webhook Endpoint
heygen_create_ avatarCreates a new avatar from an image, video footage, or a text prompt.
heygen_create_ avatar_ consentInitiates the consent flow for an avatar group and returns a URL for the user to complete approval in their browser.
heygen_delete_ avatar_ groupPermanently deletes an avatar group and all its associated looks.
heygen_delete_ avatar_ lookDeletes an avatar look and its backing resource.
heygen_delete_ webhook_ endpointPermanently removes a webhook endpoint.
heygen_delete_ webhook_ endpoint_ v1delete an existing webhook endpoint
heygen_get_ avatar_ groupReturns details for a specific avatar group including name, gender, preview URLs, looks count, and training status.
heygen_get_ avatar_ lookReturns details for a specific avatar look including supported engines, preferred orientation, preview URLs, and training status.
heygen_list_ avatar_ groupsReturns a paginated list of avatar groups (characters).
heygen_list_ webhook_ endpoints_ v1list all your registered webhook endpoints
heygen_list_ webhook_ event_ types_ v1list all supported webhook events
heygen_list_ webhook_ eventsReturns a paginated history of delivered webhook events.
heygen_rotate_ webhook_ endpoint_ secretGenerates a new signing secret for a webhook endpoint and immediately invalidates the old one.
heygen_update_ avatar_ lookUpdates the display name of an avatar look.
heygen_update_ webhook_ endpointUpdates the URL and/or subscribed event types for a webhook endpoint.
heygen_update_ webhook_ endpoint_ v1update an existing webhook endpoint
heygen_add_ looks_ to_ photo_ avatar_ groupAdd other looks to existing photo avatar group
heygen_add_ motionAdd motion to an existing photo avatar, returns the id of the new avatar that has motion
heygen_add_ sound_ effectThis api adds sound effect into a photo avatar
heygen_delete_ voiceDeletes a voice clone owned by the caller.
heygen_design_ voiceReturns up to 3 voices matching a natural language description (e.g.
heygen_get_ voiceReturns details for a specific voice, including clone workflow status when available.
heygen_list_ audio_ voicesList voices available for TTS generation with cursor-based pagination.
heygen_photo_ avatar_ detailsGet the details of a photo avatar
heygen_update_ brand_ voiceUpdates an existing brand voice with specified changes.
heygen_upscale_ an_ avatarCall this api to upscale an avatar, can only be called on an avatar that has motion, returns the photo avatar id that is upscaled
heygen_get_ video_ agent_ resourceReturns a single session resource (image, video, draft, avatar, voice, etc.) by its resource_id.
heygen_list_ video_ agent_ sessionsReturns a paginated list of video agent sessions for the authenticated user, sorted newest-first.
heygen_list_ video_ agent_ stylesReturns curated visual style templates available for Video Agent sessions.
heygen_send_ video_ agent_ messageSends a follow-up message to an existing session.
heygen_stop_ video_ agent_ sessionHalts an active agent run at its next checkpoint.
heygen_streaming_ create_ tokenThis endpoint is used to generate a new access token for a streaming session.
heygen_streaming_ iceSubmit a WebRTC ICE candidate for an Interactive Streaming Avatar session.
heygen_streaming_ interruptThis endpoint is used to interrupt the speaking of an Interactive Avatar.
heygen_streaming_ list_ avatarsThis API endpoint allows you to retrieve a list of public and custom interactive avatars.
heygen_streaming_ list_ sessionsThis endpoint is used to retrieve a list of currently active streaming sessions.
heygen_streaming_ new_ sessionThis endpoint is used to initiate a new streaming session.
heygen_streaming_ send_ taskThis endpoint is used to send a text to an Interactive Avatar, prompting it to speak the provided text.
heygen_streaming_ start_ sessionThis endpoint is used to start the connection for an existing streaming session.
heygen_streaming_ stop_ sessionThis endpoint is used to terminate an active streaming session.
heygen_complete_ asset_ uploadFinalize a direct-to-S3 upload into a reusable asset.
heygen_delete_ assetPermanently deletes an asset.
heygen_upload_ assetUploads a file (image, video, audio, or PDF) and returns an asset_id for use in other endpoints.
heygen_upload_ asset_ v1Uploads a media file (image, video, or audio) to the authenticated user's HeyGen account and returns the asset ID for future use.
heygen_create_ folderCreate Folder
heygen_delete_ lipsync_ v3Permanently deletes a lipsync job and its associated files.
heygen_list_ foldersRetrieves a list of folders with optional filters.
heygen_list_ lipsyncs_ v3Returns a paginated list of all lipsync jobs in the account.
heygen_restore_ folderRestore Folder
heygen_stream_ avatar_ realtime_ wordsOpen a Server-Sent Events (`text/event-stream`) stream of per-word timestamps for a session.
heygen_trash_ folderMoves a folder to the trash.
heygen_update_ folderUpdates the name of an existing folder.
heygen_update_ lipsync_ v3Updates the display title of a lipsync job.
heygen_create_ ai_ clipping_ v3Submit a source video and return a job id immediately.
heygen_create_ background_ removalSubmit a video to remove its background.
heygen_create_ graph_ executionSubmit a multi-workflow graph for asynchronous execution.
heygen_create_ hyperframes_ render_ v3Renders a HyperFrames composition (an HTML+JS+assets project bundled as a .zip) into a video.
heygen_create_ workflow_ executionSubmit a single workflow for asynchronous execution.
heygen_delete_ ai_ clipping_ v3Soft-deletes an AI clip job and its clips.
heygen_delete_ background_ removalSoft-deletes a background removal job.
heygen_delete_ hyperframes_ render_ v3Soft-deletes a HyperFrames render.
heygen_get_ ai_ clipping_ v3Returns the full job resource including produced clips, statuses, and presigned download URLs.
heygen_get_ background_ removalReturns a background removal job including its status and, once completed, presigned download URLs for the produced layers.
heygen_get_ hyperframes_ render_ v3Returns full details for a single HyperFrames render, including status and signed video_url when complete.
heygen_get_ template_ v3Retrieves template details by ID, including variables available for replacement and scene mappings for the New AI Studio.
heygen_get_ workflow_ executionPoll the status and output of a workflow execution.
heygen_list_ ai_ clipping_ v3Returns a cursor-paginated list of AI clip jobs in the authenticated user's workspace, newest first.
heygen_list_ background_ removalsReturns a paginated list of background removal jobs for the account, newest first.
heygen_list_ hyperframes_ renders_ v3Returns a cursor-paginated list of HyperFrames renders in the account, newest first.
heygen_list_ workflowsList all available workflow types with their input/output schemas.
heygen_create_ personalized_ video_ contactAdd a contact (one recipient) to a Personalized Video project so an uniquely customized video is rendered for them.
heygen_delete_ talking_ photoDelete a Talking Photo from your account by its id.
heygen_delete_ video_ avatarDeletes a Digital Twin by its ID.
heygen_get_ current_ user_ v3Returns the authenticated user's profile, remaining credits or balance, and billing details.
heygen_get_ personalized_ video_ audienceGet the detail/status of a single Personalized Video audience member (one rendered recipient) by its id.
heygen_get_ personalized_ video_ projectGet the detail of a Personalized Video project by its id — its template variables, settings, and the list/status of audience members (recipients).
heygen_list_ talking_ photosList the Talking Photos in your HeyGen account.
heygen_upload_ talking_ photoUpload a still photo of a face to create a Talking Photo (a photo that can be animated to speak).
heygen_list_ brand_ glossariesList brand glossaries (custom term mappings, a.k.a.
heygen_list_ brand_ kitsReturns brand kits available in the authenticated user's workspace.
heygen_search_ audio_ soundsSemantically search the audio catalog by natural-language description — set type=music (the default) for background music (e.g.
Credentials off one HeyGen screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
Paste your API key from the HeyGen dashboard under Settings → API. There is no OAuth app, client secret or redirect URL. The connection is locked to the single HeyGen account that owns that key.
••••••••••••3f7aRead-only browses avatars, voices, templates and job status; it starts no renders. Full access creates videos, translations, voice clones and avatar training, so hold writes for approval — a video delete is permanent.
Drop the PopMCP URL into Claude, ChatGPT, Codex or any other supported client. It signs in through PopMCP with OAuth, so your HeyGen credential never leaves the server.
app.popmcp.com/mcp/…Ask for something harmless before you turn writes on. Once it comes back clean, widen the tool set or switch the connection to full access.
Show me every video rendered in the last 7 days and flag the ones that failed
heygen_list_videosok
Then just ask for the work
“Show me every video rendered in the last 7 days and flag the ones that failed”
“Translate our top three product demos into Spanish, German and Japanese”
“Turn this launch brief into an avatar video and tell me when it has rendered”
“Is the new rep's photo avatar group done training, and which looks are ready?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting HeyGen behind an AI client.
An API key, and nothing else. The connect form asks for a single field, API key, which you copy from the HeyGen dashboard under Settings → API. There is no OAuth app, client secret or redirect URL to set up. The connection then acts as the one HeyGen account that owns that key.
The integration covers 149 operations across 23 API modules, split 69 read and 80 write. By default 52 load into your client so the tool list stays workable; the rest stay searchable and come in when a request needs them. You can turn the full catalog on for a connection if you would rather have everything loaded.
Creating a video hands back a job, not a file, which is the thing that trips most people up. The agent can poll get_video_status or get_video_v3, and video_translate_status or get_video_translation_v3 for translations, until the status flips and a video_url appears. Or skip the polling: PopMCP watches HeyGen webhook events such as Video ready, Video failed, Translation ready and Captions ready, so a workflow starts the moment the render lands.
Yes, and video translation is the largest module in this integration at 15 operations. list_video_translate_languages returns the supported target codes, create_video_translate runs a straight translation, and create_video_translation_v3 adds voice cloning and lip-sync; get_video_translation_v3 returns the job status, output language, video_url and any failure detail. A separate lipsync module is exposed alongside it.
Both. clone_voice creates a clone from an audio file, create_speech_v3 and text_to_speech read a script in a chosen voice, and list_voices_v3 or list_brand_voices show what is already available. On the avatar side, create_photo_avatar_group, train_photo_avatar_group and generate_photo_avatar_looks build the digital twin, with get_training_job_status plus the Avatar training finished and Avatar training failed triggers reporting how it went.
Start the connection in read-only mode. Browsing avatars, voices, templates, assets and job status creates nothing. Every write path — avatar videos, translations, voice clones, photo avatar training — starts a real job on the live account, and the catalog includes a credits check so the agent can look at the balance first. There is no separate test account here: the key points at the HeyGen account that issued it, so keep approval-required-for-writes on for a production workspace.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Loading 149 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 52-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.
A tool is something your AI calls — there are 149 here. A trigger is something PopMCP watches for you: 22 HeyGen events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into HeyGen.
Launch a hosted MCP endpoint for HeyGen, keep tool access under control, and start testing real workflow prompts right away.