---
title: "New Endpoint"
method: POST
path: "/v1/m2v/task/submit"
---

# New Endpoint

`POST /v1/m2v/task/submit`

This is your first endpoint! Edit this page to start documenting your API.

## Request body

- object
  - `productLink` string, required — Either productLink or fileIds must be non-empty. </br> If both productLink and fileIds exist, the parameter of fileIds will be ignored, and all videos and images parsed from productLink will be used by default. </br> Example: https://www.amazon.com/dp/B0CXVSRY56/ref=sspa_dk_crr_aax_0?sp_csd=d2lkZ2V0TmFtZT1zcF9jcnJfc2hhcmVk&th=1
  - `fileIds` string[], required — Videos or images. Obtain the fileId after uploading through the **[file upload interface.](https://docs.topview.ai/reference/upload-api-usage)** </br> If both productLink and fileIds exist, the parameter of fileIds will be ignored, and all videos and images parsed from productLink will be used by default. </br> Example: 5664bb315f814bee8c45f023efff0bf2
  - `productName` string — It can be automatically parsed from the product link. Required when productLink is empty.
  - `productDescription` string — It can be automatically parsed from the product link. Required when productLink is empty and isDiyScript=false.
  - `aspectRatio` '9:16' | '3:4' | '1:1' | '4:3' | '16:9' — Default value: 9:16. Optional values: 9:16, 3:4, 1:1, 4:3, 16:9
  - `language` 'en' | 'ar' | 'bg' | 'hr' | 'cs' | 'da' | 'nl' | 'fil' | 'fi' | 'fr' | 'de' | 'el' | 'hi' | 'hu' | 'id' | 'it' | 'ja' | 'ko' | 'ms' | 'nb' | 'pl' | 'pt' | 'ro' | 'ru' | 'zh-CN' | 'sk' | 'es' | 'sv' | 'zh-Hant' | 'tr' | 'uk' | 'vi' | 'th' — Default value: en</br> Language list:</br> English: en</br> Arabic (العربية): ar</br> Bulgarian (Български): bg</br> Croatian (Hrvatski): hr</br> Czech (Čeština): cs</br> Danish (Dansk): da</br> Dutch (Nederlands): nl</br> Filipino (Filipino): fil</br> Finnish (Suomi): fi</br> French (Français): fr</br> German (Deutsch): de</br> Greek (Ελληνικά): el</br> Hindi (हिन्दी): hi</br> Hungarian (Magyar): hu</br> Indonesian (Bahasa Indonesia): id</br> Italian (Italiano): it</br> Japanese (日本語): ja</br> Korean (한국어): ko</br> Malay (Bahasa Melayu): ms</br> Norwegian (Norsk): nb</br> Polish (Polski): pl</br> Portuguese (Português): pt</br> Romanian (Română): ro</br> Russian (Русский): ru</br> Simplified Chinese (简体中文): zh-CN</br> Slovak (Slovenčina): sk</br> Spanish (Español): es</br> Swedish (Svenska): sv</br> Traditional Chinese (繁體中文): zh-Hant</br> Turkish (Türkçe): tr</br> Ukrainian (Українська): uk</br> Vietnamese (Tiếng Việt): vi</br> Thai (ภาษาไทย): th (Currently, the supported voiceIds for Thai are: 5d188a658b5a424e98bf0dbbcb8f97d8, eea5e5a4fb534231a5b4cf4766dd7a5f, 537e2643719c47bdac1d8a2c7f0c844a, e22db502aa8d40d9ba791083c9f4ab35)
  - `voiceId` string — Obtain it through the **[voice query interface](https://docs.topview.ai/reference/voice_query)**.
  - `captionId` string — Obtained through the **[caption list interface](https://docs.topview.ai/reference/get_v1-caption-list)**. If not specified, then randomly.
  - `aiavatarId` string — Obtain it through the **[aiAvatar query interface](https://docs.topview.ai/reference/aiavatar-query)**.
  - `videoLengthType` 1 | 2 | 3 | 4 — Default value: 1, optional values: 1, 2, 3, 4.</br> 1： 30-50s</br> 2： 15-30s</br> 3： 30-45s</br> 4： 45-60s</br>
  - `endcardFileId` string — Obtain it after uploading through the **[file upload interface.](https://docs.topview.ai/reference/upload-api-usage)**
  - `endcardAspectRatio` 'all' | '9:16' | '3:4' | '1:1' | '4:3' | '16:9' — Default value: all. Optional values: all, 9:16, 3:4, 1:1, 4:3, 16:9
  - `endcardBackgroundColor` string — Default value: black. Optional values: black, white
  - `logoFileId` string — Obtain it after uploading through the **[file upload interface.](https://docs.topview.ai/reference/upload-api-usage)**
  - `preview` string — Default value: false. When set to true, a preview video will be returned first. When you need to export the video, you need to trigger the export interface for export. When set to false or empty, an exported video will be returned.
  - `isDiyScript` string — Whether to use custom scripts. True - Use custom script, default false
  - `diyScriptDescription` string — Customize script content. It will only take effect when isDiyScript=true
  - `diyStyle` 'diyScriptStyle' | 'diyScriptPrompt' — Script style type, optional values: "diyScriptStyle" (using preset style), "diyScriptPrompt" (using custom Prompt) 1. Used in conjunction with the DIY Script Style and DIY Script Prompt fields 2. It only takes effect when isDiyScript=false
  - `diyScriptStyle` 'Pain points + harms + solutions, using fear-based hooks' | 'Pain points + harms + solutions, using curiosity-based hooks' | 'Pain points + harms + solutions, using pitfalls-based hooks' | 'Pain points + harms + solutions, using pain point hooks' | 'Pain points + harms + solutions, using hooks related to relationships' | 'Attention-grabbing opening + setting expectations + solutions, using reveal-type hooks' | 'Attention-grabbing opening + setting expectations + solutions, using pitfalls-based hooks' | 'Attention-grabbing opening + setting expectations + solutions, using fear-based hooks' | 'Attention-grabbing opening + setting expectations + solutions, using cognitive contrast hooks' | 'Use a structure that foregrounds benefits and results' | 'Revealing industry secrets + setting expectations + solutions structure' | 'Leveraging celebrities/hot topics/public choices' | 'Conveying benefits + reinforcing expectations + solutions' | 'Sharing personal real stories, using curiosity hooks' | 'Sharing personal true stories, using cautionary hooks' | 'Sharing personal true stories' | 'Contrast structure of mistakes and correct actions' | 'Pain points + harms + solutions, with emoji😀' | 'Attention-grabbing opening + setting expectations + solutions, with emoji😀' | 'Use a structure that foregrounds benefits and results, with emoji😀' | 'Conveying benefits + reinforcing expectations + solutions, with emoji😀' | 'Revealing industry secrets + setting expectations + solutions structure, with emoji😀' | 'Pose a question to grab attention with a relatively formal tone' | 'Meticulous corporate introduction' | 'Storytelling style' | 'Concise and clear style' | 'Comparative analysis style' | 'Brand-oriented, storytelling' | 'Introduced from the user's first-person perspective' | 'News broadcast style' | 'Science Education Style' | 'Daily Life Style' | 'Auto-select by AI' — Preset script style, when diyStyle=diyScriptStyle, value needs to be passed
  - `diyScriptPrompt` string — Custom script style description, when diyStyle=diyScriptPrompt, value needs to be passed
  - `targetAudience` string — The target audience can better guide the AI in script writing.
  - `musicFileId` string — Customize the background music ID and obtain it after uploading through the **[file upload interface.](https://docs.topview.ai/reference/upload-api-usage)** If it is empty, use random music
  - `noticeUrl` string — NoticeUrl. Please refer to the **[API documentation for details NoticeUrl](https://docs.topview.ai/reference/post_notice-notice-url-check#/)**

## Response `200`

- object
  - `code` string, required — 200:success Other:fail
  - `message` string, required
  - `result` object
    - `taskId` string
    - `status` string
    - `errorMsg` string
    - `subTaskId` string
    - `noticeUuid` string

---

[API](https://skmtc.net/topview/apis/image-character-swap-apis-editable-in-readme.md) · [All operations](https://skmtc.net/topview/apis/image-character-swap-apis-editable-in-readme/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/topview/image-character-swap-apis-editable-in-readme/revisions/83cd46ca7859/schema)
