---
updatedAt: 2026-05-27T01:07:19.000Z
agentTools:
  projectIndex: https://docs.d-id.com/llms.txt
---

# Create a talk

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "title": "Videos Endpoints",
    "version": "0.1"
  },
  "servers": [
    {
      "url": "https://api.d-id.com/"
    }
  ],
  "paths": {
    "/talks": {
      "post": {
        "operationId": "CreateTalk",
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTalkResponseDto"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "id": "tlk_AbCs-xcz",
                      "object": "talk",
                      "created_at": "2020-09-03T13:56:54.995",
                      "created_by": "123",
                      "status": "created"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonError"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "kind": "BadRequestError",
                      "description": "invalid actor url"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "AuthorizationError",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonError"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "kind": "AuthorizationError",
                      "description": "user unauthenticated"
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "InsufficientCreditsError",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonError"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "kind": "InsufficientCreditsError",
                      "description": "not enough credits"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "PermissionError",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonError"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "kind": "PermissionError",
                      "description": "user has no permission for stitch"
                    }
                  }
                }
              }
            }
          },
          "451": {
            "description": "ImageModerationError | CelebrityRecognizedError | TextModerationError | AudioModerationError",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonError"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "kind": "ImageModerationError",
                      "description": "Automatic content moderation - contact support if you would like to submit for manual review"
                    }
                  }
                }
              }
            }
          }
        },
        "summary": "Create a talk",
        "tags": [
          "Talks (Standard Avatars)"
        ],
        "security": [
          {
            "basic": []
          },
          {
            "bearer": []
          }
        ],
        "parameters": [
          {
            "description": "Use your own ElevenLabs API key for TTS (IVC voices only), consuming your ElevenLabs quota. Example: {\"elevenlabs\": \"ABCDEFGH123456\"}",
            "in": "header",
            "name": "x-api-key-external",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTalkRequest"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "TalkStatus": {
        "enum": [
          "created",
          "done",
          "error",
          "started",
          "rejected"
        ],
        "type": "string"
      },
      "CreateTalkResponseDto": {
        "properties": {
          "id": {
            "type": "string",
            "description": "The ID of the talk"
          },
          "object": {
            "type": "string",
            "description": "An identifier of this talk"
          },
          "created_by": {
            "type": "string",
            "description": "The user id of the user that created the talk"
          },
          "created_at": {
            "type": "string",
            "description": "Talk creation time as iso-8601 string"
          },
          "status": {
            "$ref": "#/components/schemas/TalkStatus",
            "description": "The status of the talk"
          }
        },
        "required": [
          "id",
          "object",
          "created_by",
          "created_at",
          "status"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "JsonError": {
        "properties": {
          "kind": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "details": {},
          "internal": {
            "type": "string"
          }
        },
        "required": [
          "kind",
          "description"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "Providers.Microsoft": {
        "enum": [
          "microsoft"
        ],
        "type": "string"
      },
      "VoiceConfigMicrosoft": {
        "properties": {
          "style": {
            "type": "string",
            "description": "The style of the voice.\nAvailable styles change between voices."
          },
          "rate": {
            "type": "string",
            "description": "The speed of the voice.\nThe value is relative to 1, 0.5 being half speed, 2 being twice as fast, etc.\nAnother option is a constant value from x-slow/slow/medium/fast/x-fast.\nNot supported for azure-openai voices, which reject it with a 400 error.",
            "example": "0.5"
          },
          "pitch": {
            "type": "string",
            "description": "The pitch of the voice.\nValue could be an absolute value in Hz (including units), a relative value in Hz or st(semitones)\nor a constant value from x-low/low/medium/high/x-high.",
            "example": "+2st"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "Microsoft_tts_provider": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Providers.Microsoft"
          },
          "voice_id": {
            "type": "string",
            "description": "Voice ID selected from the list of available voices.</br>Retrieve available options from the GET /voices endpoint.",
            "example": "en-US-JennyNeural"
          },
          "voice_config": {
            "$ref": "#/components/schemas/VoiceConfigMicrosoft",
            "description": "Voice customization options"
          },
          "language": {
            "type": "string",
            "description": "Voice customization options. To save the language of the selected agent voice",
            "example": "English (United States)"
          }
        },
        "required": [
          "type",
          "voice_id"
        ],
        "type": "object",
        "additionalProperties": false,
        "title": "Microsoft"
      },
      "Providers.Elevenlabs": {
        "enum": [
          "elevenlabs"
        ],
        "type": "string"
      },
      "VoiceConfigElevenlabs": {
        "properties": {
          "stability": {
            "type": "number",
            "format": "double",
            "description": "How stable the voice is and the randomness of each new generation.\nIf ElevenLabs V3 model is selected, must be one of these values: 0.0, 0.5, 1.0 (0.0 = Creative, 0.5 = Natural, 1.0 = Robust).",
            "example": "0",
            "minimum": 0,
            "maximum": 1
          },
          "similarity_boost": {
            "type": "number",
            "format": "double",
            "description": "The similarity slider dictates how closely the AI should adhere to the original voice when attempting to replicate it.",
            "example": "0",
            "minimum": 0,
            "maximum": 1
          },
          "rate": {
            "type": "string",
            "description": "The speed of the voice.\nThe value is relative to 1. Valid range is 0.7 to 1.2.",
            "example": "0.7",
            "pattern": "^(|0\\.[7-9][0-9]*|1(\\.[0-1][0-9]*|\\.2|\\.20*)?)$"
          },
          "style": {
            "type": "string",
            "description": "Determines the style exaggeration of the voice.\nThis setting attempts to amplify the style of the original speaker.\nIt does consume additional computational resources and might increase latency if set to anything other than 0.\nValid range is 0 to 1.",
            "example": "0.5",
            "pattern": "^(|0(\\.[0-9]+)?|1(\\.0+)?)$"
          },
          "use_speaker_boost": {
            "type": "boolean",
            "description": "boosts the similarity to the original speaker.\nUsing this setting requires a slightly higher computational load, which in turn increases latency.",
            "example": true
          },
          "apply_language_text_normalization": {
            "type": "boolean",
            "description": "Controls language text normalization. This helps with proper pronunciation of text in some supported languages.\nWARNING: This parameter can heavily increase the latency of the request. Currently only supported for Japanese.",
            "example": true
          },
          "apply_text_normalization": {
            "type": "string",
            "enum": [
              "auto",
              "on",
              "off"
            ],
            "description": "Controls text normalization on the ElevenLabs side (expanding numbers, abbreviations and symbols).\n'auto' lets ElevenLabs decide, 'on' forces normalization, 'off' disables it.\nDefaults to 'off' when not provided.",
            "example": "off"
          }
        },
        "type": "object",
        "additionalProperties": false
      },
      "Elevenlabs_tts_provider": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Providers.Elevenlabs"
          },
          "voice_id": {
            "type": "string",
            "description": "Voice ID selected from the list of available voices.</br>Retrieve available options from the GET /voices endpoint.",
            "example": "21m00Tcm4TlvDq8ikWAM",
            "default": "21m00Tcm4TlvDq8ikWAM"
          },
          "voice_config": {
            "$ref": "#/components/schemas/VoiceConfigElevenlabs",
            "description": "Voice customization options. Read more here: https://docs.elevenlabs.io/speech-synthesis/voice-settings"
          },
          "model_id": {
            "type": "string",
            "description": "The model id from the list of available models. https://elevenlabs.io/docs/speech-synthesis/models.",
            "example": "eleven_multilingual_v2",
            "default": "eleven_multilingual_v2"
          },
          "language": {
            "type": "string",
            "description": "Voice customization options. To save the language of the selected voice",
            "example": "English (United States)"
          }
        },
        "required": [
          "type"
        ],
        "type": "object",
        "additionalProperties": false,
        "title": "ElevenLabs"
      },
      "Providers.Amazon": {
        "enum": [
          "amazon"
        ],
        "type": "string"
      },
      "VoiceIdsAmazon": {
        "type": "string",
        "enum": [
          "Amy",
          "Aria",
          "Ayanda",
          "Bianca",
          "Brian",
          "Camila",
          "Emma",
          "Gabrielle",
          "Ivy",
          "Joanna",
          "Joey",
          "Justin",
          "Kendra",
          "Kevin",
          "Kimberly",
          "Léa",
          "Lucia",
          "Lupe",
          "Matthew",
          "Olivia",
          "Salli",
          "Seoyeon",
          "Takumi",
          "Vicki"
        ],
        "nullable": false
      },
      "Amazon_tts_provider": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Providers.Amazon"
          },
          "voice_id": {
            "$ref": "#/components/schemas/VoiceIdsAmazon",
            "description": "Voice ID selected from the list of available voices.</br>Retrieve available options from the GET /voices endpoint.",
            "example": "Joanna"
          },
          "language": {
            "type": "string",
            "description": "Voice customization options. To save the language of the selected agent voice",
            "example": "English (United States)"
          }
        },
        "required": [
          "type",
          "voice_id"
        ],
        "type": "object",
        "additionalProperties": false,
        "title": "Amazon"
      },
      "Providers.Google": {
        "enum": [
          "google"
        ],
        "type": "string"
      },
      "Google_tts_provider": {
        "properties": {
          "type": {
            "$ref": "#/components/schemas/Providers.Google"
          },
          "voice_id": {
            "type": "string",
            "description": "Voice ID selected from the list of available voices.</br>Retrieve available options from the GET /voices endpoint.",
            "example": "he-IL-Wavenet-A",
            "default": "he-IL-Wavenet-A"
          }
        },
        "required": [
          "type"
        ],
        "type": "object",
        "additionalProperties": false,
        "title": "Google"
      },
      "Providers.AzureOpenAi": {
        "enum": [
          "azure-openai"
        ],
        "type": "string"
      },
      "AzureOpenAi_tts_provider": {
        "properties": {
          "voice_id": {
            "type": "string",
            "description": "Voice ID selected from the list of available voices.</br>Retrieve available options from the GET /voices endpoint.",
            "example": "en-US-JennyNeural"
          },
          "voice_config": {
            "$ref": "#/components/schemas/VoiceConfigMicrosoft",
            "description": "Voice customization options"
          },
          "language": {
            "type": "string",
            "description": "Voice customization options. To save the language of the selected agent voice",
            "example": "English (United States)"
          },
          "type": {
            "$ref": "#/components/schemas/Providers.AzureOpenAi"
          }
        },
        "required": [
          "voice_id",
          "type"
        ],
        "type": "object",
        "additionalProperties": false,
        "title": "OpenAI"
      },
      "TextToSpeechProviders": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/Microsoft_tts_provider"
          },
          {
            "$ref": "#/components/schemas/Elevenlabs_tts_provider"
          },
          {
            "$ref": "#/components/schemas/Amazon_tts_provider"
          },
          {
            "$ref": "#/components/schemas/Google_tts_provider"
          },
          {
            "$ref": "#/components/schemas/AzureOpenAi_tts_provider"
          }
        ],
        "title": "Text to Speech Providers"
      },
      "AudioUrl": {
        "type": "string",
        "example": "https://path.to/audio.mp3",
        "pattern": "^(https|s3):\\/\\/[\\S]+\\.(?:m4a|M4A|flac|FLAC|mp3|MP3|mp4|MP4|wav|WAV)([?#][\\w.\\/=&#%-]+)?$"
      },
      "Script": {
        "anyOf": [
          {
            "$ref": "#/components/schemas/TextScript3"
          },
          {
            "$ref": "#/components/schemas/AudioScript3"
          }
        ]
      },
      "Logo": {
        "properties": {
          "url": {
            "type": "string",
            "description": "https url to an ARGB jpg/png image, a default logo is used otherwise",
            "pattern": "((https|s3):\\/\\/.+)"
          },
          "position": {
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "type": "array",
            "description": "position of the logo in pixels from the top left corner (w,h) negative values are subtracted from last pixel",
            "example": [
              0,
              500
            ],
            "minItems": 2,
            "maxItems": 2
          }
        },
        "required": [
          "url",
          "position"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ResultFormat": {
        "type": "string",
        "enum": [
          "mp4",
          "mov"
        ]
      },
      "Expression": {
        "enum": [
          "neutral",
          "happy",
          "serious",
          "surprise"
        ],
        "type": "string"
      },
      "TimedExpression": {
        "properties": {
          "start_frame": {
            "type": "number",
            "format": "double",
            "description": "The frame number for the expression start point.",
            "minimum": 0
          },
          "expression": {
            "$ref": "#/components/schemas/Expression",
            "description": "The expression to use"
          },
          "intensity": {
            "type": "number",
            "format": "double",
            "description": "Controls the intensity you want for this expression (between 0 no expression, 1 maximum)",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "start_frame",
          "expression",
          "intensity"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "ExpressionConfig": {
        "properties": {
          "expressions": {
            "items": {
              "$ref": "#/components/schemas/TimedExpression"
            },
            "type": "array",
            "description": "List of TimedExpression to use"
          },
          "transition_frames": {
            "type": "number",
            "format": "double",
            "description": "Number of frames to use for the transition between expressions",
            "minimum": 0
          }
        },
        "required": [
          "expressions"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TalksConfig": {
        "properties": {
          "logo": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Logo"
              }
            ]
          },
          "stitch": {
            "type": "boolean",
            "description": "Stitch back the animated result to the original image"
          },
          "result_format": {
            "$ref": "#/components/schemas/ResultFormat",
            "description": "File format of the animated result"
          },
          "fluent": {
            "type": "boolean",
            "description": "Interpolate between the last & first frames of the driver video",
            "default": false
          },
          "pad_audio": {
            "type": "number",
            "format": "double",
            "description": "Pad the audio with silence at the end (given in seconds)\nWill increase the video duration & the credits it consumes",
            "default": 0,
            "minimum": 0,
            "maximum": 60
          },
          "driver_expressions": {
            "$ref": "#/components/schemas/ExpressionConfig",
            "description": "timed expressions for animation, the current expression is not cleared until a new expression is defined.\nPossible expressions include `happy`, `neutral` and more."
          }
        },
        "type": "object",
        "additionalProperties": false,
        "title": "Configuration"
      },
      "UserData": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1000,
        "pattern": "^(?!\\s*$).+$"
      },
      "SecuredUrl": {
        "type": "string",
        "pattern": "^(?:https):\\/\\/[\\S]+$"
      },
      "RemoteUrl": {
        "type": "string",
        "example": "https://path.to.directory/movie.mp4",
        "pattern": "(https|s3):\\/\\/.+"
      },
      "CreateTalkRequest": {
        "properties": {
          "source_url": {
            "type": "string",
            "description": "The URL of the source image to be animated by the driver video, or a selection from the list of provided\nstudio actors.",
            "example": "https://path.to.directory/image.jpg",
            "default": "https://d-id-public-bucket.s3.us-west-2.amazonaws.com/alice.jpg",
            "pattern": "(https|s3):.*\\.(?:jpg|jpeg|png|JPG|JPEG|PNG)"
          },
          "script": {
            "$ref": "#/components/schemas/Script"
          },
          "config": {
            "$ref": "#/components/schemas/TalksConfig",
            "description": "Advanced configuration options"
          },
          "user_data": {
            "$ref": "#/components/schemas/UserData",
            "description": "Non-sensitive custom data that will be added to the talk response and webhook"
          },
          "name": {
            "type": "string",
            "description": "The name of the talk video"
          },
          "webhook": {
            "$ref": "#/components/schemas/SecuredUrl",
            "description": "A webhook URL for sending the payload including animate details\nIn a case of empty value, the webhook will not be triggered",
            "example": "https://host.domain.tld/to/webhook"
          },
          "result_url": {
            "$ref": "#/components/schemas/RemoteUrl",
            "description": "The URL of the talk video, if not provided use default destination.",
            "example": "https://path.to.directory/"
          }
        },
        "required": [
          "script"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "TextScript3": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "text"
            ],
            "nullable": false,
            "description": "The type of the script."
          },
          "subtitles": {
            "type": "boolean",
            "description": "Should subtitles be created.",
            "default": false
          },
          "provider": {
            "$ref": "#/components/schemas/TextToSpeechProviders",
            "description": "text-to-speech provider from list of supported providers. default is microsoft tts"
          },
          "input": {
            "type": "string",
            "description": "The input text that will be synthesized to an audio file.\nNote that each provider has its own limitations on the text length.\nMaximum 40K characters (10K excluding SSML tags).",
            "example": "Making videos is easy with D-ID",
            "default": "Making videos is easy with D-ID",
            "maxLength": 40000,
            "minLength": 3
          },
          "ssml": {
            "type": "boolean",
            "description": "Is the text provided in ssml form.",
            "default": false
          },
          "dictionary_id": {
            "type": "string",
            "description": "Pronunciation dictionary ID for word/phrase substitutions before TTS.",
            "example": "dict_V1StGXR8_Z5jdHi6B-myT",
            "pattern": "^dict_[A-Za-z0-9_-]{21}$"
          }
        },
        "required": [
          "type"
        ],
        "type": "object",
        "additionalProperties": false
      },
      "AudioScript3": {
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "audio"
            ],
            "nullable": false,
            "description": "The type of the script."
          },
          "subtitles": {
            "type": "boolean",
            "description": "Should subtitles be created.",
            "default": false
          },
          "audio_url": {
            "$ref": "#/components/schemas/AudioUrl",
            "description": "The URL of the audio file which will be used by the actor.\nFile size is limited to 15MB.\nAudio length is limited 5 minutes for clips and 10 minutes for talks."
          }
        },
        "required": [
          "type",
          "audio_url"
        ],
        "type": "object",
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "basic": {
        "type": "http",
        "scheme": "basic"
      }
    }
  },
  "x-readme": {
    "samples-languages": [
      "curl"
    ]
  }
}
```