---
updatedAt: 2026-09-10T15:50:00.000Z
agentTools:
  projectIndex: https://docs.synthesia.io/llms.txt
---

# Create media asset

Creates a media asset with support for multipart or direct url upload. This endpoint currently supports only the dubbing configuration.

# OpenAPI definition

```json
{
  "info": {
    "description": "Synthesia public API endpoints",
    "title": "Synthesia API",
    "version": "2.0.0"
  },
  "servers": [
    {
      "url": "https://api.synthesia.io",
      "description": "Synthesia public API URL."
    }
  ],
  "paths": {
    "/v2/assets": {
      "post": {
        "summary": "Create media asset",
        "description": "Creates a media asset with support for multipart or direct url upload. This endpoint currently supports only the dubbing configuration.",
        "tags": [
          "Assets"
        ],
        "security": [
          {
            "api_key": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssetRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created. Returns upload credentials for the multipart upload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateAssetMultipartUploadResponse"
                }
              }
            }
          },
          "400": {
            "description": "Unsupported Media Type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "default": {
            "description": "Unexpected Server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "openapi": "3.0.2",
  "components": {
    "schemas": {
      "DubbingAssetRequestConfiguration": {
        "description": "Public API configuration for dubbing assets.",
        "properties": {
          "name": {
            "default": "dubbing",
            "title": "Name",
            "type": "string",
            "enum": [
              "dubbing"
            ]
          },
          "detectLanguage": {
            "default": true,
            "description": "Whether to detect the language of the asset.",
            "title": "Detectlanguage",
            "type": "boolean"
          }
        },
        "title": "DubbingAssetRequestConfiguration",
        "type": "object"
      },
      "CreateAssetRequest": {
        "properties": {
          "contentType": {
            "description": "The content type of the asset to upload. Must be one of: video/mp4, video/webm, or video/quicktime.",
            "enum": [
              "video/mp4",
              "video/webm",
              "video/quicktime"
            ],
            "example": "video/mp4",
            "title": "Contenttype",
            "type": "string"
          },
          "configuration": {
            "description": "The configuration to use for the asset.",
            "discriminator": {
              "mapping": {
                "dubbing": "#/$defs/DubbingAssetRequestConfiguration"
              },
              "propertyName": "name"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/DubbingAssetRequestConfiguration"
              }
            ],
            "title": "Configuration"
          },
          "contentLength": {
            "default": null,
            "description": "The length of the file content to upload. This is used to verify the integrity of the asset during upload.",
            "title": "Contentlength",
            "type": "integer",
            "nullable": true
          },
          "contentMD5": {
            "default": null,
            "description": "The MD5 hash of the file content to upload. This is used to verify the integrity of the asset during upload.",
            "title": "Contentmd5",
            "type": "string",
            "nullable": true
          },
          "title": {
            "default": "Untitled",
            "description": "The title of the asset to upload.",
            "example": "Untitled",
            "maxLength": 256,
            "title": "Title",
            "type": "string"
          }
        },
        "required": [
          "contentType",
          "configuration"
        ],
        "title": "CreateAssetRequest",
        "type": "object"
      },
      "MultipartUploadCredentialsResponse": {
        "properties": {
          "accessKeyId": {
            "title": "Accesskeyid",
            "type": "string"
          },
          "secretAccessKey": {
            "title": "Secretaccesskey",
            "type": "string"
          },
          "sessionToken": {
            "title": "Sessiontoken",
            "type": "string"
          },
          "bucket": {
            "title": "Bucket",
            "type": "string"
          },
          "key": {
            "title": "Key",
            "type": "string"
          }
        },
        "required": [
          "accessKeyId",
          "secretAccessKey",
          "sessionToken",
          "bucket",
          "key"
        ],
        "title": "MultipartUploadCredentialsResponse",
        "type": "object"
      },
      "CreateAssetMultipartUploadResponse": {
        "properties": {
          "id": {
            "title": "Id",
            "type": "string"
          },
          "uploadUrl": {
            "default": null,
            "title": "Uploadurl",
            "type": "string",
            "nullable": true
          },
          "uploadCredentials": {
            "$ref": "#/components/schemas/MultipartUploadCredentialsResponse"
          }
        },
        "required": [
          "id",
          "uploadCredentials"
        ],
        "title": "CreateAssetMultipartUploadResponse",
        "type": "object"
      },
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string"
          },
          "context": {
            "type": "string"
          }
        },
        "required": [
          "error"
        ]
      }
    },
    "securitySchemes": {
      "api_key": {
        "type": "apiKey",
        "in": "header",
        "name": "Authorization"
      }
    }
  }
}
```

# Sibling pages

* [Get user media asset](https://docs.synthesia.io/reference/get-user-media-asset.md)