openapi: 3.0.3 info: title: HeyGen API description: >- Welcome to the **HeyGen API** Postman Collection. This collection provides a convenient way to interact with the HeyGen API directly from Postman. **Documentation**: [https://docs.heygen.com](https://docs.heygen.com/) **Guides**: [https://docs.heygen.com/docs
](https://docs.heygen.com/docs/quick-start)**API Reference**: [https://docs.heygen.com/reference](https://docs.heygen.com/reference/authentication-1) ## Authorization To send requests to the API endpoints, you must use a valid API token. You can get your API token from the [Settings > API ](https://app.heygen.com/settings?nav=API) page in your HeyGen account. 1. In Postman, go to the **Environments** tab on the left panel. 2. Select the **My HeyGen API Environment** environment provided by HeyGen. 3. Update the `heygen-api-token` value with your current HeyGen API token. 4. Ensure **My HeyGen API Environment** is selected as the active environment using the environment selector at the top right corner of Postman. ### 400 response A 400 error response typically indicates that your request body is corrupted. To avoid this, ensure that your request body is correctly formatted and includes all necessary elements, such as closing parentheses. ### **Need some help?** If you need assistance, you can reach out to us through the following channels: - **Customer Support Chat:** Available in our web interface. - **Emails:** api@heygen.com, [support@heygen.com](https://mailto:support@heygen.com) - **Community Discussions:** Check out our [discussions channel](https://null) – there's a good chance our community has the answer you're looking for. version: 1.0.0 contact: {} servers: - url: https://api.heygen.com - url: https://upload.heygen.com paths: /v1/voice.list: get: tags: - Lists summary: v1/voice.list description: v1/voice.list operationId: v1VoiceList responses: '200': description: '' /v1/avatar.list: get: tags: - Lists summary: v1/avatar.list description: v1/avatar.list operationId: v1AvatarList responses: '200': description: '' /v2/voices: get: tags: - Lists summary: v2/voices description: v2/voices operationId: v2Voices responses: '200': description: '' /v2/avatars: get: tags: - Lists summary: v2/avatars description: v2/avatars operationId: v2Avatars responses: '200': description: '' /v1/video.list: get: tags: - Lists summary: v1/video.list description: v1/video.list operationId: v1VideoList responses: '200': description: '' /v2/video/generate: post: tags: - Create Video API summary: v2/video/generate description: >- Generated Video: [https://app.heygen.com/share/67cd13935445457eaa99040070bdb545](https://app.heygen.com/share/67cd13935445457eaa99040070bdb545) operationId: v2VideoGenerate requestBody: content: application/json: schema: type: object properties: aspect_ratio: nullable: true example: null callback_id: nullable: true example: null dimension: type: object properties: height: type: number example: 720 width: type: number example: 1280 test: type: boolean example: true title: type: string example: My Title video_inputs: type: array items: type: object properties: character: type: object properties: avatar_id: type: string example: Kristin_public_3_20240108 avatar_style: type: string example: normal type: type: string example: avatar voice: type: object properties: input_text: type: string example: >- Welcome to the new era of video creation with HeyGen! Simply type your script to get started! type: type: string example: text voice_id: type: string example: 2f72ee82b83d4b00af16c4771d611752 example: - character: avatar_id: Kristin_public_3_20240108 avatar_style: normal type: avatar voice: input_text: >- Welcome to the new era of video creation with HeyGen! Simply type your script to get started! type: text voice_id: 2f72ee82b83d4b00af16c4771d611752 examples: v2/video/generate: value: aspect_ratio: null callback_id: null dimension: height: 720 width: 1280 test: true title: My Title video_inputs: - character: avatar_id: Kristin_public_3_20240108 avatar_style: normal type: avatar voice: input_text: >- Welcome to the new era of video creation with HeyGen! Simply type your script to get started! type: text voice_id: 2f72ee82b83d4b00af16c4771d611752 responses: '200': description: '' /v1/video.delete: delete: tags: - Create Video API summary: v1/video.delete description: v1/video.delete operationId: v1VideoDelete parameters: - name: video_id in: query schema: type: string example: responses: '200': description: '' /v2/templates: get: tags: - Template API summary: v2/templates description: v2/templates operationId: v2Templates responses: '200': description: '' /v2/template/: get: tags: - Template API summary: v2/template/ description: v2/template/ operationId: v2TemplateId responses: '200': description: '' /v2/template//generate: post: tags: - Template API summary: v2/template/generate description: >- Generated Video: [https://app.heygen.com/videos/7cba9d29d6db46b88471221fdbc4fb75](https://app.heygen.com/videos/7cba9d29d6db46b88471221fdbc4fb75) operationId: v2TemplateGenerate requestBody: content: application/json: schema: type: object properties: caption: type: boolean example: false dimension: type: object properties: height: type: number example: 720 width: type: number example: 1280 test: type: boolean example: false title: type: string example: New Video variables: type: object properties: first_name: type: object properties: name: type: string example: first_name properties: type: object properties: content: type: string example: John type: type: string example: text examples: v2/template/generate: value: caption: false dimension: height: 720 width: 1280 test: false title: New Video variables: first_name: name: first_name properties: content: John type: text responses: '200': description: '' /v2/video_translate/target_languages: get: tags: - Video Translate API summary: v2/video_translate/target_languages description: v2/video_translate/target_languages operationId: v2VideoTranslateTargetLanguages requestBody: content: application/json: examples: v2/video_translate/target_languages: value: '' responses: '200': description: '' /v2/video_translate: post: tags: - Video Translate API summary: v2/video_translate description: >- Generated Video: [https://app.heygen.com/video-translation/share/dab5a987e6154b0cb7e606c858043fa9](https://app.heygen.com/video-translation/share/dab5a987e6154b0cb7e606c858043fa9) operationId: v2VideoTranslate requestBody: content: application/json: schema: type: object properties: output_language: type: string example: English - American Accent speaker_num: type: number example: 1 title: type: string example: My Title translate_audio_only: type: boolean example: false video_url: type: string example: https://static.heygen.ai/heygen/asset/originalnew.mp4 examples: v2/video_translate: value: output_language: English - American Accent speaker_num: 1 title: My Title translate_audio_only: false video_url: https://static.heygen.ai/heygen/asset/originalnew.mp4 responses: '200': description: '' /v2/video_translate/: get: tags: - Video Translate API summary: v2/video_translate/ (status) description: v2/video_translate/ (status) operationId: v2VideoTranslateIdStatus requestBody: content: application/json: examples: v2/video_translate/ (status): value: '' responses: '200': description: '' /v1/streaming.new: post: tags: - Streaming API summary: streaming.new description: streaming.new operationId: streamingNew requestBody: content: application/json: schema: type: object properties: quality: type: string example: medium examples: streaming.new: value: quality: medium responses: '200': description: '' /v1/streaming.start: post: tags: - Streaming API summary: streaming.start description: streaming.start operationId: streamingStart requestBody: content: application/json: schema: type: object properties: sdp: type: object properties: sdp: type: string example: "v=0\r\no=- 865306769317114273 1711711067 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 5B:57:56:56:47:37:A2:76:46:2B:FA:72:6D:61:1D:70:98:8A:4B:8D:BD:E9:54:7E:0E:8D:86:7B:13:BD:5B:B3\r\na=extmap-allow-mixed\r\na=group:BUNDLE 0 1 2\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:0\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=ssrc:771866534 cname:pion\r\na=ssrc:771866534 msid:pion video\r\na=ssrc:771866534 mslabel:pion\r\na=ssrc:771866534 label:video\r\na=msid:pion video\r\na=sendonly\r\na=candidate:211536166 1 udp 2130706431 192.168.95.148 58919 typ host\r\na=candidate:211536166 2 udp 2130706431 192.168.95.148 58919 typ host\r\na=candidate:233762139 1 udp 2130706431 172.17.0.1 39783 typ host\r\na=candidate:233762139 2 udp 2130706431 172.17.0.1 39783 typ host\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 33743 typ srflx raddr 0.0.0.0 rport 33743\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 33743 typ srflx raddr 0.0.0.0 rport 33743\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 52509 typ srflx raddr 0.0.0.0 rport 52509\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 52509 typ srflx raddr 0.0.0.0 rport 52509\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 48068 typ srflx raddr 0.0.0.0 rport 48068\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 48068 typ srflx raddr 0.0.0.0 rport 48068\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 39574 typ srflx raddr 0.0.0.0 rport 39574\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 39574 typ srflx raddr 0.0.0.0 rport 39574\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 60127 typ srflx raddr 0.0.0.0 rport 60127\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 60127 typ srflx raddr 0.0.0.0 rport 60127\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 55901 typ relay raddr 0.0.0.0 rport 38018\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 55901 typ relay raddr 0.0.0.0 rport 38018\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 26906 typ relay raddr 192.168.95.148 rport 37276\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 26906 typ relay raddr 192.168.95.148 rport 37276\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 48909 typ relay raddr 192.168.95.148 rport 51224\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 48909 typ relay raddr 192.168.95.148 rport 51224\r\na=end-of-candidates\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:1\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=ssrc:4043859165 cname:pion\r\na=ssrc:4043859165 msid:pion audio\r\na=ssrc:4043859165 mslabel:pion\r\na=ssrc:4043859165 label:audio\r\na=msid:pion audio\r\na=sendrecv\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:2\r\na=sendrecv\r\na=sctp-port:5000\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\n" type: type: string example: offer session_id: type: string example: f8c1f5bd-edbd-11ee-ac61-06daf6be75b4 examples: streaming.start: value: sdp: sdp: "v=0\r\no=- 865306769317114273 1711711067 IN IP4 0.0.0.0\r\ns=-\r\nt=0 0\r\na=fingerprint:sha-256 5B:57:56:56:47:37:A2:76:46:2B:FA:72:6D:61:1D:70:98:8A:4B:8D:BD:E9:54:7E:0E:8D:86:7B:13:BD:5B:B3\r\na=extmap-allow-mixed\r\na=group:BUNDLE 0 1 2\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:0\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=ssrc:771866534 cname:pion\r\na=ssrc:771866534 msid:pion video\r\na=ssrc:771866534 mslabel:pion\r\na=ssrc:771866534 label:video\r\na=msid:pion video\r\na=sendonly\r\na=candidate:211536166 1 udp 2130706431 192.168.95.148 58919 typ host\r\na=candidate:211536166 2 udp 2130706431 192.168.95.148 58919 typ host\r\na=candidate:233762139 1 udp 2130706431 172.17.0.1 39783 typ host\r\na=candidate:233762139 2 udp 2130706431 172.17.0.1 39783 typ host\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 33743 typ srflx raddr 0.0.0.0 rport 33743\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 33743 typ srflx raddr 0.0.0.0 rport 33743\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 52509 typ srflx raddr 0.0.0.0 rport 52509\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 52509 typ srflx raddr 0.0.0.0 rport 52509\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 48068 typ srflx raddr 0.0.0.0 rport 48068\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 48068 typ srflx raddr 0.0.0.0 rport 48068\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 39574 typ srflx raddr 0.0.0.0 rport 39574\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 39574 typ srflx raddr 0.0.0.0 rport 39574\r\na=candidate:2409875042 1 udp 1694498815 3.145.204.238 60127 typ srflx raddr 0.0.0.0 rport 60127\r\na=candidate:2409875042 2 udp 1694498815 3.145.204.238 60127 typ srflx raddr 0.0.0.0 rport 60127\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 55901 typ relay raddr 0.0.0.0 rport 38018\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 55901 typ relay raddr 0.0.0.0 rport 38018\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 26906 typ relay raddr 192.168.95.148 rport 37276\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 26906 typ relay raddr 192.168.95.148 rport 37276\r\na=candidate:551173388 1 udp 16777215 34.203.251.67 48909 typ relay raddr 192.168.95.148 rport 51224\r\na=candidate:551173388 2 udp 16777215 34.203.251.67 48909 typ relay raddr 192.168.95.148 rport 51224\r\na=end-of-candidates\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:1\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=ssrc:4043859165 cname:pion\r\na=ssrc:4043859165 msid:pion audio\r\na=ssrc:4043859165 mslabel:pion\r\na=ssrc:4043859165 label:audio\r\na=msid:pion audio\r\na=sendrecv\r\nm=application 9 UDP/DTLS/SCTP webrtc-datachannel\r\nc=IN IP4 0.0.0.0\r\na=setup:actpass\r\na=mid:2\r\na=sendrecv\r\na=sctp-port:5000\r\na=ice-ufrag:WGLlXrCpTGFDczaD\r\na=ice-pwd:ikkYSSwwcEqeapAGiibnhMltrcdcsDPE\r\n" type: offer session_id: f8c1f5bd-edbd-11ee-ac61-06daf6be75b4 responses: '200': description: '' /v1/streaming.list: get: tags: - Streaming API summary: streaming.list description: streaming.list operationId: streamingList requestBody: content: text/plain: examples: streaming.list: value: '' responses: '200': description: '' /v1/streaming.ice: post: tags: - Streaming API summary: streaming.ice description: streaming.ice operationId: streamingIce requestBody: content: application/json: schema: type: object properties: candidate: type: object properties: candidate: type: string example: sdpMLineIndex: type: string example: sdpMid: type: string example: usernameFragment: type: string example: session_id: type: string example: examples: streaming.ice: value: candidate: candidate: sdpMLineIndex: sdpMid: usernameFragment: session_id: responses: '200': description: '' /v1/streaming.task: post: tags: - Streaming API summary: streaming.task description: streaming.task operationId: streamingTask requestBody: content: application/json: schema: type: object properties: session_id: type: string example: text: type: string example: Hey, there! examples: streaming.task: value: session_id: text: Hey, there! responses: '200': description: '' /v1/streaming.stop: post: tags: - Streaming API summary: streaming.stop description: streaming.stop operationId: streamingStop requestBody: content: application/json: schema: type: object properties: session_id: type: string example: examples: streaming.stop: value: session_id: responses: '200': description: '' /v1/streaming.interrupt: post: tags: - Streaming API summary: streaming.interrupt description: >- This is endpoint is to interrupt a speaking avatar. If the avatar is not speaking, it doesn't do anything. operationId: streamingInterrupt requestBody: content: application/json: schema: type: object properties: session_id: type: string example: examples: streaming.interrupt: value: session_id: responses: '200': description: '' /v1/streaming.create_token: post: tags: - Streaming API summary: streaming.create_token description: streaming.create_token operationId: streamingCreateToken requestBody: content: application/json: schema: type: object properties: {} examples: streaming.create_token: value: {} responses: '200': description: '' /v1/streaming/avatar.list: get: tags: - Streaming API summary: streaming/avatar.list description: streaming/avatar.list operationId: streamingAvatarList requestBody: content: text/plain: examples: streaming/avatar.list: value: '' responses: '200': description: '' /v1/webhook/webhook.list: get: tags: - Webhooks summary: v1/webhook/webhook.list description: v1/webhook/webhook.list operationId: v1WebhookWebhookList responses: '200': description: '' /v1/webhook/endpoint.add: post: tags: - Webhooks summary: v1/webhook/endpoint.add description: v1/webhook/endpoint.add operationId: v1WebhookEndpointAdd requestBody: content: application/json: schema: type: object properties: events: type: array items: {} example: [] url: type: string example: examples: v1/webhook/endpoint.add: value: events: [] url: responses: '200': description: '' /v1/webhook/endpoint.delete: delete: tags: - Webhooks summary: v1/webhook/endpoint.delete description: v1/webhook/endpoint.delete operationId: v1WebhookEndpointDelete parameters: - name: endpoint_id in: query schema: type: string example: responses: '200': description: '' /v1/webhook/endpoint.list: get: tags: - Webhooks summary: v1/webhook/endpoint.list description: v1/webhook/endpoint.list operationId: v1WebhookEndpointList responses: '200': description: '' /v1/talking_photo.list: get: tags: - Talking Photo summary: v1/talking_photo.list description: v1/talking_photo.list operationId: v1TalkingPhotoList responses: '200': description: '' /v1/talking_photo: post: tags: - Talking Photo summary: v1/talking_photo (upload) description: v1/talking_photo (upload) operationId: v1TalkingPhotoUpload requestBody: content: {} responses: '200': description: '' /v2/talking_photo/: delete: tags: - Talking Photo summary: v2/talking_photo/ (delete) description: v2/talking_photo/ (delete) operationId: v2TalkingPhotoIdDelete responses: '200': description: '' /v1/personalized_video/add_contact: post: tags: - Personalized Video summary: personalized_video/add_contact description: personalized_video/add_contact operationId: personalizedVideoAddContact requestBody: content: application/json: schema: type: object properties: project_id: type: string example: variables_list: type: array items: type: object properties: email: type: string example: john@mail.com first_name: type: string example: John example: - email: john@mail.com first_name: John examples: personalized_video/add_contact: value: project_id: variables_list: - email: john@mail.com first_name: John responses: '200': description: '' /v1/personalized_video/audience/detail: get: tags: - Personalized Video summary: personalized_video/audience/detail description: personalized_video/audience/detail operationId: personalizedVideoAudienceDetail parameters: - name: id in: query schema: type: string example: responses: '200': description: '' /v1/personalized_video/project/detail: get: tags: - Personalized Video summary: personalized_video/project/detail description: personalized_video/project/detail operationId: personalizedVideoProjectDetail parameters: - name: id in: query schema: type: string example: responses: '200': description: '' /v2/user/remaining_quota: get: tags: - User summary: v2/user/remaining_quota description: v2/user/remaining_quota operationId: v2UserRemainingQuota responses: '200': description: '' /v1/asset: post: tags: - Assets summary: v1/asset (upload) description: v1/asset (upload) operationId: v1AssetUpload requestBody: content: {} responses: '200': description: '' /v1/video_status.get: get: summary: v1/video_status.get description: v1/video_status.get operationId: v1VideoStatusGet parameters: - name: video_id in: query schema: type: string example: responses: '200': description: '' components: securitySchemes: apiKey: type: apiKey name: X-Api-Key in: header security: - apiKey: [] tags: - name: Lists - name: Create Video API description: >- Create personalized avatar videos with ease using the **HeyGen API**. By selecting an avatar and a voice, you can create engaging videos for various purposes. 🌟 **Guide**: [https://docs.heygen.com/docs/create-video
](https://docs.heygen.com/docs/create-video)**Reference**: [https://docs.heygen.com/reference/create-an-avatar-video-v2](https://docs.heygen.com/reference/create-an-avatar-video-v2) - name: Template API description: >- Templates enable you to add and customize existing text, images, videos, audios (coming soon), voices and avatars, while avatar videos consist only of avatars without these elements. If you plan to use it within a workflow and need richer content, templates are likely a better fit for your use case compared to simple talking avatar videos. 🌟 **Quick Comparison:** - **Avatar Videos:** Avatar videos are centered around avatars delivering content without any additional elements. They are ideal for straightforward, avatar-focused communication. - **Template Videos:** In contrast, template videos offer a wide canvas for creativity. They enable you to customize existing text, images, videos, audios, voices and avatars seamlessly. If you need a richer, more versatile content format for your workflow, templates are the perfect choice. **Guide**: [https://docs.heygen.com/docs/generate-video-from-template-v2](https://docs.heygen.com/docs/generate-video-from-template-v2) **Reference**: [https://docs.heygen.com/reference/generate-from-template-v2](https://docs.heygen.com/reference/generate-from-template-v2)[](https://docs.heygen.com/reference/create-an-avatar-video-v2) - name: Video Translate API description: "The\_[Video Translate](https://labs.heygen.com/video-translate)\_by HeyGen\_provides a powerful solution for effortlessly translating videos, integrating natural voice cloning and authentic speaking styles seamlessly. Now, you can harness its capabilities programmatically through the\_**Video Translate API**!\n\n**Guide**: [https://docs.heygen.com/docs/video-translate-api
](https://docs.heygen.com/docs/video-translate-api)**Reference**: [https://docs.heygen.com/reference/video-translate](https://docs.heygen.com/reference/video-translate)" - name: Streaming API description: >- HeyGen's **Streaming API** allows developers to seamlessly integrate dynamic digital avatars into their applications for immersive and interactive user experiences. With this API, you can create _virtual assistants, real-time training simulations,_ and more, with a focus on real-time, low-latency communication between _users_ and _avatars_ with power of WebRTC. **Guide**: [https://docs.heygen.com/docs/streaming-api
](https://docs.heygen.com/docs/streaming-api)**Reference**: [https://docs.heygen.com/reference/new-session](https://docs.heygen.com/reference/new-session) - name: Webhooks description: "Webhook events are how the\_**HeyGen**\_notifies your\__endpoints_\_when a variety of interactions or events happen, including when avatar video processing\__succeeds_\_or\__fails_. Webhook events are sent by HeyGen as POST requests to your webhook endpoint.\n\n**Guide**: [https://docs.heygen.com/docs/using-heygens-webhook-events
](https://docs.heygen.com/docs/using-heygens-webhook-events)**Reference**: [https://docs.heygen.com/reference/add-a-webhook-endpoint](https://docs.heygen.com/reference/add-a-webhook-endpoint)" - name: Talking Photo description: >- These API endpoints allow you to manage photo avatars in your account. **Reference**: [https://docs.heygen.com/reference/upload-talking-photo](https://docs.heygen.com/reference/upload-talking-photo) - name: Personalized Video description: "Import contacts into your HeyGen\_**Personalized Video**\_campaign.\_\n\n**Guide**: [https://docs.heygen.com/docs/import-contacts-via-api](https://docs.heygen.com/docs/import-contacts-via-api) \nReference: [https://docs.heygen.com/reference/add-contact](https://docs.heygen.com/reference/add-contact)" - name: User description: >- Obtain information about your account. **Reference**: [https://docs.heygen.com/reference/get-remaining-quota-v2](https://docs.heygen.com/reference/get-remaining-quota-v2) - name: Assets description: >- Upload an image or video asset to your account. **Reference**: [https://docs.heygen.com/reference/upload-asset-1](https://docs.heygen.com/reference/upload-asset-1)