{"openapi":"3.0.0","info":{"title":"A2E Developer API","description":"A2E provides affordable, accessible, and flexible AI-powered media processing capabilities through RESTful APIs. Generate avatar videos, swap faces, clone voices, create images and videos from text or images, and much more.\n\n## Access Points\n\n| Environment | Base URL |\n|--------|----------|\n| Current Environment | `http://video.a2e.ai` |\n\n## Authentication\n\nUse an **API token** for developer API calls.\nAPI tokens start with `sk_` and should be sent as a Bearer token in the `Authorization` header.\n\n### How to get an API token\n\n1. Sign in to `http://video.a2e.ai`.\n2. Open **Account > API Token**.\n3. Create a new token and copy the generated value.\n4. Send it in the request header as `Authorization: Bearer sk_...`.\n\nJWT/session tokens used by the web app are not part of the public developer authentication flow and are not required in this documentation.\n\n```bash\ncurl -X POST \"http://video.a2e.ai/api/v1/...\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"my-task\", \"prompt\": \"...\"}'\n```\n\n## FAQ\n\n**What is the SLA?**\nA2E maintains approximately 99.6% uptime across all API services.\n\n**Is there a free tier?**\nYes — new users receive free credits upon registration. Check the pricing page for current free tier allocation.\n","version":"1.0.0","license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"http://video.a2e.ai","description":"Current Environment"}],"paths":{"/api/v1/user/add":{"post":{"summary":"Add new record","description":"Add new item - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","description":"username parameter","example":"Example username"},"password":{"type":"string","description":"password parameter","example":"password123"}},"required":["username","password"],"example":{"username":"Example username","password":"password123"}},"example":{"username":"Example username","password":"password123"}}}},"responses":{"200":{"description":"Item created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/user/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"username\": \"Example username\",\n  \"password\": \"password123\"\n}'"}]}},"/api/v1/token/generate":{"post":{"summary":"Generate API token","description":"Generate a new API token for authentication\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"alias":{"type":"string","maxLength":20,"description":"Alias name for the token","example":"My API Token"}},"required":["alias"],"example":{"alias":"My API Token"}},"example":{"alias":"My API Token"}}}},"responses":{"200":{"description":"Token generated successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TokenGenerate","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/token/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"alias\": \"My API Token\"\n}'"}]}},"/api/v1/token/delete":{"post":{"summary":"Delete API token","description":"Delete an existing API token\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"Token ID to delete","example":"507f1f77bcf86cd799439011"}},"required":["_id"],"example":{"_id":"507f1f77bcf86cd799439011"}},"example":{"_id":"507f1f77bcf86cd799439011"}}}},"responses":{"200":{"description":"Token deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TokenDelete","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/token/delete\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}'"}]}},"/api/v1/token/list":{"get":{"summary":"List API tokens","description":"Get all API tokens for the current user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"List of user tokens","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1TokenList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/token/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/token/status":{"post":{"summary":"Toggle token status","description":"Enable or disable an API token\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"Token ID","example":"507f1f77bcf86cd799439011"},"enabled":{"type":"boolean","description":"New token status (true to enable, false to disable)","example":false}},"required":["_id","enabled"],"example":{"_id":"507f1f77bcf86cd799439011","enabled":false}},"example":{"_id":"507f1f77bcf86cd799439011","enabled":false}}}},"responses":{"200":{"description":"Token status updated successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TokenStatus","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/token/status\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"enabled\": false\n}'"}]}},"/api/v1/video/list":{"post":{"summary":"Create/Run list","description":"List items - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Generate Avatar Videos"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Item retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VideoList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/video/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/anchor/list":{"post":{"summary":"List all avatars","description":"all anchor - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Generate Avatar Videos"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"string","description":"user parameter","example":"example_user"},"web_type":{"type":"string","description":"web_type parameter","example":"example_web_type"}},"required":["user","web_type"],"example":{"user":"example_user","web_type":"example_web_type"}},"example":{"user":"example_user","web_type":"example_web_type"}}}},"responses":{"200":{"description":"Operation completed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1AnchorList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/anchor/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"user\": \"example_user\",\n  \"web_type\": \"example_web_type\"\n}'"}]}},"/api/v1/anchor/tts_list":{"post":{"summary":"List system voices (TTS presets)","description":"List available system TTS voices/presets for the current user.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Voice preset list","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1AnchorTtsList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/anchor/tts_list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/anchor/language_list":{"post":{"summary":"List supported languages/regions for voices","description":"List supported language & region options. Optional `voice_map_type` can be used to filter results.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"voice_map_type":{"type":"string","description":"Filter by locale mapping type (e.g. en-US)","example":"en-US"}},"required":[],"example":{"voice_map_type":"en-US"}},"example":{"voice_map_type":"en-US"}}}},"responses":{"200":{"description":"Language/region list","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1AnchorLanguageList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/anchor/language_list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"voice_map_type\": \"en-US\"\n}'"}]}},"/api/v1/anchor/voice_list":{"post":{"summary":"List available voices by country/region","description":"List available voices filtered by `country`, `region`, and `voice_map_type`.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string","description":"Country/language code (default en)","example":"en"},"region":{"type":"string","description":"Region code (default US)","example":"US"},"voice_map_type":{"type":"string","description":"Locale mapping type (default en-US)","example":"en-US"}},"required":[],"example":{"country":"en","region":"US","voice_map_type":"en-US"}},"example":{"country":"en","region":"US","voice_map_type":"en-US"}}}},"responses":{"200":{"description":"Voice list","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1AnchorVoiceList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/anchor/voice_list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"country\": \"en\",\n  \"region\": \"US\",\n  \"voice_map_type\": \"en-US\"\n}'"}]},"get":{"summary":"List available voices (GET)","description":"List available voices. Defaults: country=en, region=US, voice_map_type=en-US.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Item retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"en","example":"en"},"description":"country parameter"},{"name":"region","in":"query","required":false,"schema":{"type":"string","default":"US","example":"US"},"description":"region parameter"},{"name":"voice_map_type","in":"query","required":false,"schema":{"type":"string","default":"en-US","example":"en-US"},"description":"voice_map_type parameter"}],"operationId":"getApiV1AnchorVoiceList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/anchor/voice_list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/video/send_tts":{"post":{"summary":"Generate text-to-speech audio","description":"Convert text to speech using AI voices with customizable parameters.\n### Voice Selection\nMust provide **either** `tts_id` (system voice) **or** `user_voice_id` (custom cloned voice):\n- `tts_id`: Use built-in system voice (400+ voices available)\n- `user_voice_id`: Use your own custom cloned voice (requires `country` and `region` parameters)\n### Text Limitations\n- **API users**: Maximum 1000 characters per request\n- **Web users**: Maximum 3000 characters per request\n- Text length is calculated including all Unicode characters\n### Rate Limiting & Captcha\nFor non-API users, captcha verification may be required after frequent usage:\n- Use `type` parameter to specify captcha type (`turnstile` or `aliyun_captcha`)\n- Provide corresponding `turnstile_token` or `captchaVerifyParam` when captcha is required\n- API token users skip captcha verification\n### Pricing\n- A2E Model: 1 credit/10s\n- Cartesia/Minimax: 2 credits/10s\n- ElevenLabs: 3 credits/10s\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"msg":{"type":"string","description":"Text content to convert to speech (1-3000 characters)","example":"Welcome. Let's start your AI journey.","minLength":1,"maxLength":3000},"tts_id":{"type":"string","description":"System voice ID (MongoDB ObjectId). Must provide either tts_id or user_voice_id.","example":"66dc3c1b7dc1f1c483cc5ab8"},"user_voice_id":{"type":"string","description":"Custom cloned voice ID (MongoDB ObjectId). Must provide either tts_id or user_voice_id.","example":"66f1234567890abcdef12345"},"country":{"type":"string","description":"Locale language part (e.g. 'en', 'zh', 'pt', 'ja'). Optional when using user_voice_id, defaults to 'en'. Combine with `region` to form locale like 'en-US'/'zh-CN'. Values should come from POST /api/v1/anchor/language_list (top-level `value`).","example":"en","default":"en"},"region":{"type":"string","description":"Locale region part (e.g. 'US', 'CN', 'BR', 'JP'). Optional when using user_voice_id, defaults to 'US'. Combine with `country` to form locale like 'en-US'/'zh-CN'. Values should come from POST /api/v1/anchor/language_list (child `value`).","example":"US","default":"US"},"speechRate":{"type":"number","description":"Speech speed multiplier (0.5-2.0)","example":1,"minimum":0.5,"maximum":2,"default":1},"type":{"type":"string","description":"Captcha type (required when captcha verification is needed)","enum":["turnstile","aliyun_captcha"],"example":"turnstile"},"turnstile_token":{"type":"string","description":"Captcha token (required when type is 'turnstile')","example":"0x4AAAAAAxxxxxxxxxxxxxxxxxx"},"captchaVerifyParam":{"type":"string","description":"Captcha verification parameter (required when type is 'aliyun_captcha')","example":"xxxxxxxxxxxx"}},"required":["msg"],"example":{"msg":"Welcome. Let's start your AI journey.","tts_id":"66dc3c1b7dc1f1c483cc5ab8","user_voice_id":"66f1234567890abcdef12345","country":"en","region":"US","speechRate":1,"type":"turnstile","turnstile_token":"0x4AAAAAAxxxxxxxxxxxxxxxxxx","captchaVerifyParam":"xxxxxxxxxxxx"}},"example":{"msg":"Welcome. Let's start your AI journey.","tts_id":"66dc3c1b7dc1f1c483cc5ab8","user_voice_id":"66f1234567890abcdef12345","country":"en","region":"US","speechRate":1,"type":"turnstile","turnstile_token":"0x4AAAAAAxxxxxxxxxxxxxxxxxx","captchaVerifyParam":"xxxxxxxxxxxx"}}}},"responses":{"200":{"description":"Text-to-speech generation successful","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VideoSendTts","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/video/send_tts\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"msg\": \"Welcome. Let's start your AI journey.\",\n  \"tts_id\": \"66dc3c1b7dc1f1c483cc5ab8\",\n  \"user_voice_id\": \"66f1234567890abcdef12345\",\n  \"country\": \"en\",\n  \"region\": \"US\",\n  \"speechRate\": 1,\n  \"type\": \"turnstile\",\n  \"turnstile_token\": \"0x4AAAAAAxxxxxxxxxxxxxxxxxx\",\n  \"captchaVerifyParam\": \"xxxxxxxxxxxx\"\n}'"}]}},"/api/v1/tts/preview/list":{"get":{"summary":"Get TTS preview list","description":"Get TTS preview list for current user (last 24 hours only) - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"TTS preview list retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1TtsPreviewList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/tts/preview/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/tts/preview/{id}":{"delete":{"summary":"Delete TTS preview record","description":"Soft delete a TTS preview record for current user - HTTP DELETE\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"TTS preview record deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Record not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1TtsPreviewId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/tts/preview/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/video/generate":{"post":{"summary":"Generate AI video with avatar","description":"Generate AI video with avatar using audio source and selected avatar. Either audioSrc or custom_voice is required.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Generate Avatar Videos"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":40,"description":"Video title (optional, max 40 characters)","example":"My AI Video"},"audioSrc":{"type":"string","description":"Audio source URL (required if custom_voice not provided)","example":"https://example.com/audio.mp3"},"custom_voice":{"type":"string","description":"Custom voice audio URL (required if audioSrc not provided)","example":"https://example.com/custom_voice.wav"},"anchor_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$","description":"Avatar/anchor ID (MongoDB ObjectId)","example":"507f1f77bcf86cd799439011"},"anchor_type":{"type":"number","description":"Avatar type (0 for system avatar, 1 for custom avatar)","example":0},"anchor_background_img":{"type":"string","description":"Background image URL for avatar","example":"https://example.com/background.jpg"},"anchor_background_color":{"type":"string","description":"Background color in RGBA format","example":"rgba(255,255,255,1)"},"back_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$","description":"Background template ID (MongoDB ObjectId)","example":"507f1f77bcf86cd799439012"},"face_swap_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$","description":"Face swap template ID (MongoDB ObjectId)","example":"507f1f77bcf86cd799439013"},"custom_back_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$","description":"Custom background ID (MongoDB ObjectId)","example":"507f1f77bcf86cd799439014"},"color":{"type":"string","description":"Color setting in RGBA format","example":"rgba(0,0,0,1)"},"wl_model":{"type":"string","description":"Watermark/logo model setting","example":"default"},"isSkipRs":{"type":"boolean","description":"Skip resolution scaling","example":false},"web_bg_width":{"type":"number","default":0,"description":"Web background width","example":1920},"web_bg_height":{"type":"number","default":0,"description":"Web background height","example":1080},"web_people_width":{"type":"number","default":0,"description":"Avatar width in web layout","example":800},"web_people_height":{"type":"number","default":0,"description":"Avatar height in web layout","example":600},"web_people_x":{"type":"number","default":0,"description":"Avatar X position in web layout","example":100},"web_people_y":{"type":"number","default":0,"description":"Avatar Y position in web layout","example":50},"web_dist_bg_width":{"type":"number","default":-1,"description":"Distributed background width","example":1920},"web_dist_bg_height":{"type":"number","default":-1,"description":"Distributed background height","example":1080},"web_dist_bg_x":{"type":"number","default":0,"description":"Distributed background X position","example":0},"web_dist_bg_y":{"type":"number","default":0,"description":"Distributed background Y position","example":0},"resolution":{"type":"number","default":1080,"description":"Video resolution (height in pixels)","example":1080},"msg":{"type":"string","description":"Additional message or notes","example":"Custom video generation"},"erode_factor":{"type":"number","description":"Erosion factor for image processing","example":0.5},"isSkipGp":{"type":"boolean","description":"Skip green screen processing","example":false},"isCaptionEnabled":{"type":"boolean","description":"Enable captions/subtitles","example":true},"gp_model":{"type":"object","description":"Green screen processing model settings","properties":{"compose_mode":{"type":"string","description":"Composition mode","example":"overlay"},"compose_ratio":{"type":"number","description":"Composition ratio","example":0.8}},"example":{"compose_mode":"overlay","compose_ratio":0.8}},"isToPublicPool":{"type":"boolean","description":"Add to public pool for sharing","example":false},"lip_model":{"type":"string","description":"Lip sync model selection","example":"default"},"captionAlign":{"type":"object","description":"Caption alignment and styling settings","properties":{"language":{"type":"string","description":"Caption language","example":"en"},"PrimaryColour":{"type":"string","description":"Primary text color in RGBA format","example":"rgba(255,255,255,1)"},"title":{"type":"string","description":"Caption title","example":"Video Caption"},"TitleBoxColour":{"type":"string","description":"Title box background color in RGBA format","example":"rgba(0,0,0,0.5)"},"FontName":{"type":"string","description":"Font family name","example":"Arial"},"Fontsize":{"type":"integer","description":"Font size in pixels","example":24},"subtitle_position":{"type":"number","description":"Subtitle vertical position (0-1)","example":0.9},"OutlineColour":{"type":"string","description":"Text outline color in RGBA format","example":"rgba(0,0,0,1)"},"BackColour":{"type":"string","description":"Text background color in RGBA format","example":"rgba(0,0,0,0.3)"}},"example":{"language":"en","PrimaryColour":"rgba(255,255,255,1)","title":"Video Caption","TitleBoxColour":"rgba(0,0,0,0.5)","FontName":"Arial","Fontsize":24,"subtitle_position":0.9,"OutlineColour":"rgba(0,0,0,1)","BackColour":"rgba(0,0,0,0.3)"}}},"required":["anchor_id","anchor_type"],"example":{"title":"My AI Video","audioSrc":"https://example.com/audio.mp3","custom_voice":"https://example.com/custom_voice.wav","anchor_id":"507f1f77bcf86cd799439011","anchor_type":0,"anchor_background_img":"https://example.com/background.jpg","anchor_background_color":"rgba(255,255,255,1)","back_id":"507f1f77bcf86cd799439012","face_swap_id":"507f1f77bcf86cd799439013","custom_back_id":"507f1f77bcf86cd799439014","color":"rgba(0,0,0,1)","wl_model":"default","isSkipRs":false,"web_bg_width":1920,"web_bg_height":1080,"web_people_width":800,"web_people_height":600,"web_people_x":100,"web_people_y":50,"web_dist_bg_width":1920,"web_dist_bg_height":1080,"web_dist_bg_x":0,"web_dist_bg_y":0,"resolution":1080,"msg":"Custom video generation","erode_factor":0.5,"isSkipGp":false,"isCaptionEnabled":true,"gp_model":{"compose_mode":"overlay","compose_ratio":0.8},"isToPublicPool":false,"lip_model":"default","captionAlign":{"language":"en","PrimaryColour":"rgba(255,255,255,1)","title":"Video Caption","TitleBoxColour":"rgba(0,0,0,0.5)","FontName":"Arial","Fontsize":24,"subtitle_position":0.9,"OutlineColour":"rgba(0,0,0,1)","BackColour":"rgba(0,0,0,0.3)"}}},"example":{"title":"My AI Video","audioSrc":"https://example.com/audio.mp3","custom_voice":"https://example.com/custom_voice.wav","anchor_id":"507f1f77bcf86cd799439011","anchor_type":0,"anchor_background_img":"https://example.com/background.jpg","anchor_background_color":"rgba(255,255,255,1)","back_id":"507f1f77bcf86cd799439012","face_swap_id":"507f1f77bcf86cd799439013","custom_back_id":"507f1f77bcf86cd799439014","color":"rgba(0,0,0,1)","wl_model":"default","isSkipRs":false,"web_bg_width":1920,"web_bg_height":1080,"web_people_width":800,"web_people_height":600,"web_people_x":100,"web_people_y":50,"web_dist_bg_width":1920,"web_dist_bg_height":1080,"web_dist_bg_x":0,"web_dist_bg_y":0,"resolution":1080,"msg":"Custom video generation","erode_factor":0.5,"isSkipGp":false,"isCaptionEnabled":true,"gp_model":{"compose_mode":"overlay","compose_ratio":0.8},"isToPublicPool":false,"lip_model":"default","captionAlign":{"language":"en","PrimaryColour":"rgba(255,255,255,1)","title":"Video Caption","TitleBoxColour":"rgba(0,0,0,0.5)","FontName":"Arial","Fontsize":24,"subtitle_position":0.9,"OutlineColour":"rgba(0,0,0,1)","BackColour":"rgba(0,0,0,0.3)"}}}}},"responses":{"200":{"description":"Video generation started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters or missing required audio source","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VideoGenerate","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/video/generate\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"title\": \"My AI Video\",\n  \"audioSrc\": \"https://example.com/audio.mp3\",\n  \"custom_voice\": \"https://example.com/custom_voice.wav\",\n  \"anchor_id\": \"507f1f77bcf86cd799439011\",\n  \"anchor_type\": 0,\n  \"anchor_background_img\": \"https://example.com/background.jpg\",\n  \"anchor_background_color\": \"rgba(255,255,255,1)\",\n  \"back_id\": \"507f1f77bcf86cd799439012\",\n  \"face_swap_id\": \"507f1f77bcf86cd799439013\",\n  \"custom_back_id\": \"507f1f77bcf86cd799439014\",\n  \"color\": \"rgba(0,0,0,1)\",\n  \"wl_model\": \"default\",\n  \"isSkipRs\": false,\n  \"web_bg_width\": 1920,\n  \"web_bg_height\": 1080,\n  \"web_people_width\": 800,\n  \"web_people_height\": 600,\n  \"web_people_x\": 100,\n  \"web_people_y\": 50,\n  \"web_dist_bg_width\": 1920,\n  \"web_dist_bg_height\": 1080,\n  \"web_dist_bg_x\": 0,\n  \"web_dist_bg_y\": 0,\n  \"resolution\": 1080,\n  \"msg\": \"Custom video generation\",\n  \"erode_factor\": 0.5,\n  \"isSkipGp\": false,\n  \"isCaptionEnabled\": true,\n  \"gp_model\": {\n    \"compose_mode\": \"overlay\",\n    \"compose_ratio\": 0.8\n  },\n  \"isToPublicPool\": false,\n  \"lip_model\": \"default\",\n  \"captionAlign\": {\n    \"language\": \"en\",\n    \"PrimaryColour\": \"rgba(255,255,255,1)\",\n    \"title\": \"Video Caption\",\n    \"TitleBoxColour\": \"rgba(0,0,0,0.5)\",\n    \"FontName\": \"Arial\",\n    \"Fontsize\": 24,\n    \"subtitle_position\": 0.9,\n    \"OutlineColour\": \"rgba(0,0,0,1)\",\n    \"BackColour\": \"rgba(0,0,0,0.3)\"\n  }\n}'"}]}},"/api/v1/video/generatePublicAccessToken":{"post":{"summary":"Generate public access token","description":"Generate new item - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Generate Avatar Videos"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"mongoObjectId","description":"video_id parameter","example":"example_video_id"},"expire_minutes":{"type":"integer","minimum":1,"description":"expire_minutes parameter","example":1}},"required":["video_id"],"example":{"video_id":"example_video_id","expire_minutes":1}},"example":{"video_id":"example_video_id","expire_minutes":1}}}},"responses":{"200":{"description":"Item created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VideoGeneratePublicAccessToken","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/video/generatePublicAccessToken\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"video_id\": \"example_video_id\",\n  \"expire_minutes\": 1\n}'"}]}},"/api/v1/custom_avatar/add":{"post":{"summary":"Add new record","description":"Add new item - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Create Avatars"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Item created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomAvatarAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_avatar/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_avatar/list":{"post":{"summary":"Create/Run list","description":"List items - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Create Avatars"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Item retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomAvatarList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_avatar/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_avatar/del":{"post":{"summary":"Delete record","description":"del - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Create Avatars"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Operation completed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomAvatarDel","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_avatar/del\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_avatar/all_tags":{"get":{"summary":"List all tags","description":"all tags - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Create Avatars"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Operation completed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1CustomAvatarAllTags","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/custom_avatar/all_tags\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/custom_avatar/{_id}":{"put":{"tags":["Create Avatars"],"summary":"Update record","description":"update - HTTP PUT\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"putApiV1CustomAvatarId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X PUT \"http://video.a2e.ai/api/v1/custom_avatar/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_back/add":{"post":{"summary":"Add new custom background","description":"Upload and add a new custom background image - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Background Matting"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"img_url":{"type":"string","description":"URL of the background image to add","example":"https://example.com/background.jpg"}},"required":["img_url"],"example":{"img_url":"https://example.com/background.jpg"}},"example":{"img_url":"https://example.com/background.jpg"}}}},"responses":{"200":{"description":"Background item created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters or missing img_url","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomBackAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_back/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"img_url\": \"https://example.com/background.jpg\"\n}'"}]}},"/api/v1/custom_back/list":{"post":{"summary":"Create/Run list","description":"List items - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Background Matting"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Item retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomBackList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_back/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_back/del":{"post":{"summary":"Delete record","description":"del - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Background Matting"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Operation completed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomBackDel","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_back/del\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_back/allBackground":{"post":{"tags":["Background Matting"],"summary":"List all backgrounds","description":"allBackground - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1CustomBackAllBackground","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_back/allBackground\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/custom_back/randomBackground":{"post":{"tags":["Background Matting"],"summary":"Get a random background","description":"randomBackground - HTTP POST","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1CustomBackRandomBackground","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/custom_back/randomBackground\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'"}]}},"/api/v1/userVoice/training":{"post":{"summary":"Start voice training","description":"发起声音克隆训练任务（异步）。\n- **并发限制**：同一用户短时间内只允许同时发起 1 个训练请求（服务端有并发保护）。\n- **费用**：不同 `model` 可能会消耗不同数量的金币；若创建失败会自动回退扣费。\n- **结果状态**：创建成功后可通过 `GET /api/v1/userVoice/trainingRecord` 查看最新记录及 `current_status`。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserVoiceTrainingRequest"}}}},"responses":{"200":{"description":"Voice training record created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUserVoiceResponse"}}}},"400":{"description":"Bad Request - Invalid training data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden - Voice clone limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVoiceTraining","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVoice/training\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userVoice/trainingRecord":{"get":{"summary":"Get voice training records","description":"获取当前登录用户的声音克隆训练记录列表（包含进行中/已完成/失败等状态）。\n- **排序**：按 `createdAt` 倒序（最新在前）。\n- **状态字段**：`current_status` 可能值包含 `sent` / `pendding` / `processing` / `completed` / `failed`。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUserVoiceListResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVoiceTrainingRecord","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVoice/trainingRecord\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVoice/completedRecord":{"get":{"summary":"Get completed voice training records","description":"获取当前登录用户 **已完成** 的声音克隆训练记录列表（`current_status=completed`）。\n- **排序**：按 `createdAt` 倒序（最新在前）。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUserVoiceListResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVoiceCompletedRecord","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVoice/completedRecord\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVoice/{_id}":{"delete":{"summary":"Delete voice training record","description":"软删除一条声音克隆训练记录（仅将 `deleted=true`，不会物理删除数据）。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserVoiceId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userVoice/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]},"get":{"summary":"Get voice training record detail","description":"根据记录 `_id` 查询单条声音克隆训练记录详情。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUserVoiceResponse"}}}},"400":{"description":"Bad Request - Invalid _id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVoiceId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVoice/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"put":{"summary":"Update voice training record name","description":"更新指定记录的 `name`（用于重命名）。\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["TTS and Voice Clone"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserVoiceUpdateRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request - Invalid request body","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"putApiV1UserVoiceId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X PUT \"http://video.a2e.ai/api/v1/userVoice/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userVideoTwin/upload":{"post":{"tags":["Video Twin"],"summary":"Upload file","description":"upload - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserVideoTwinUpload","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/upload\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userVideoTwin/training":{"post":{"tags":["Video Twin"],"summary":"Start training","description":"training - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserVideoTwinTraining","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/training\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userVideoTwin/uploadStatus":{"get":{"summary":"Get video twin upload status","description":"Check the upload status of video twin files for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Upload status retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVideoTwinUploadStatus","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVideoTwin/uploadStatus\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVideoTwin/userRecords":{"get":{"summary":"Get user video twin records","description":"Retrieve all video twin records for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Video twin records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVideoTwinUserRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVideoTwin/userRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVideoTwin/remove":{"post":{"summary":"Remove video twin","description":"Remove a video twin from the user's collection\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"ID of the video twin to remove","example":"507f1f77bcf86cd799439011"}},"required":["_id"],"example":{"_id":"507f1f77bcf86cd799439011"}},"example":{"_id":"507f1f77bcf86cd799439011"}}}},"responses":{"200":{"description":"Video twin removed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid video twin ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVideoTwinRemove","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/remove\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}'"}]}},"/api/v1/userVideoTwin/records":{"get":{"summary":"Get video twin records","description":"Retrieve paginated video twin records with optional filters\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number (starts from 1)"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of records per page"},{"name":"status","in":"query","required":false,"schema":{"type":"string","example":"completed","enum":["pending","processing","completed","failed"]},"description":"Filter by status"}],"operationId":"getApiV1UserVideoTwinRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVideoTwin/records\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVideoTwin/startTraining":{"post":{"summary":"Start video twin training","description":"Begin training a new video twin model with image or video source\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the video twin","example":"My Video Twin"},"image_url":{"type":"string","description":"URL of the source image","example":"https://example.com/face.jpg"},"video_url":{"type":"string","description":"URL of the source video","example":"https://example.com/video.mp4"},"video_backgroud_image":{"type":"string","description":"URL of background image","example":"https://example.com/bg.jpg"},"video_backgroud_color":{"type":"string","description":"Background color in RGBA format","example":"rgba(255,255,255,1)"}},"required":[],"example":{"name":"My Video Twin","image_url":"https://example.com/face.jpg","video_url":"https://example.com/video.mp4","video_backgroud_image":"https://example.com/bg.jpg","video_backgroud_color":"rgba(255,255,255,1)"}},"example":{"name":"My Video Twin","image_url":"https://example.com/face.jpg","video_url":"https://example.com/video.mp4","video_backgroud_image":"https://example.com/bg.jpg","video_backgroud_color":"rgba(255,255,255,1)"}}}},"responses":{"200":{"description":"Video twin training started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVideoTwinStartTraining","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/startTraining\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Video Twin\",\n  \"image_url\": \"https://example.com/face.jpg\",\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"video_backgroud_image\": \"https://example.com/bg.jpg\",\n  \"video_backgroud_color\": \"rgba(255,255,255,1)\"\n}'"}]}},"/api/v1/userVideoTwin/continueTraining":{"post":{"summary":"Continue video twin training","description":"Continue training an existing video twin model that was previously paused\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"ID of the video twin to continue training","example":"507f1f77bcf86cd799439011"}},"required":["_id"],"example":{"_id":"507f1f77bcf86cd799439011"}},"example":{"_id":"507f1f77bcf86cd799439011"}}}},"responses":{"200":{"description":"Training continued successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid video twin ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVideoTwinContinueTraining","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/continueTraining\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}'"}]}},"/api/v1/userVideoTwin/trainingRecords":{"get":{"summary":"Get training records","description":"Retrieve all video twin training records for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Training records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserVideoTwinTrainingRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVideoTwin/trainingRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVideoTwin/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVideoTwinBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userVideoTwin/{_id}":{"get":{"tags":["Video Twin"],"summary":"Get record details","description":"detail - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserVideoTwinId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userVideoTwin/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userVideoTwin/retry":{"post":{"tags":["Video Twin"],"summary":"Retry a failed task","description":"retry - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserVideoTwinRetry","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/retry\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userVideoTwin/eyeContact":{"post":{"summary":"Start eye contact enhancement","description":"Enhance video twin with improved eye contact using AI processing\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Video Twin"],"security":[{"bearerAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"ID of the video twin to enhance","example":"507f1f77bcf86cd799439011"}},"required":[],"example":{"_id":"507f1f77bcf86cd799439011"}},"example":{"_id":"507f1f77bcf86cd799439011"}}}},"responses":{"200":{"description":"Eye contact enhancement started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserVideoTwinEyeContact","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userVideoTwin/eyeContact\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\"\n}'"}]}},"/api/v1/userFaceSwapImage/add":{"post":{"summary":"Add a new face image for face swapping","description":"Add a new face image to the user's face swap image collection\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"face_url":{"type":"string","description":"URL of the face image to be used for face swapping","example":"https://example.com/face-image.jpg"}},"required":["face_url"],"example":{"face_url":"https://example.com/face-image.jpg"}},"example":{"face_url":"https://example.com/face-image.jpg"}}}},"responses":{"200":{"description":"Face image added successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserFaceSwapImageAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFaceSwapImage/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"face_url\": \"https://example.com/face-image.jpg\"\n}'"}]}},"/api/v1/userFaceSwapImage/records":{"get":{"summary":"Get user's face swap image records","description":"Retrieve all face swap images for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Face swap image records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserFaceSwapImageRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapImage/records\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFaceSwapImage/{_id}":{"delete":{"summary":"Remove a face swap image","description":"Delete a specific face swap image from the user's collection\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Face swap image deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserFaceSwapImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userFaceSwapImage/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userFaceSwapPreview/add":{"post":{"summary":"Create a new face swap preview task","description":"Create a face swap preview task using video and face image URLs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_url":{"type":"string","description":"URL of the video to swap face in","example":"https://example.com/video.mp4"},"face_url":{"type":"string","description":"URL of the face image to swap with","example":"https://example.com/face.jpg"}},"required":["video_url","face_url"],"example":{"video_url":"https://example.com/video.mp4","face_url":"https://example.com/face.jpg"}},"example":{"video_url":"https://example.com/video.mp4","face_url":"https://example.com/face.jpg"}}}},"responses":{"200":{"description":"Face swap preview task created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserFaceSwapPreviewAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFaceSwapPreview/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"face_url\": \"https://example.com/face.jpg\"\n}'"}]}},"/api/v1/userFaceSwapPreview/status":{"get":{"summary":"Get face swap preview status","description":"Check the processing status of a specific face swap preview task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Preview status retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"_id","in":"query","required":true,"schema":{"type":"string","example":"507f1f77bcf86cd799439011"},"description":"ID of the face swap preview task"}],"operationId":"getApiV1UserFaceSwapPreviewStatus","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapPreview/status\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFaceSwapTask/retry":{"get":{"summary":"Retry face swap task","description":"Retry a failed or stuck face swap task","tags":["Face Swap"],"security":[],"responses":{"200":{"description":"Task retry initiated successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID or task cannot be retried","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"_id","in":"query","required":true,"schema":{"type":"string","example":"507f1f77bcf86cd799439011"},"description":"ID of the face swap task to retry"}],"operationId":"getApiV1UserFaceSwapTaskRetry","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapTask/retry\" \\\n  -H \"Content-Type: application/json\""}]}},"/api/v1/userFaceSwapTask/add":{"post":{"summary":"Create a new face swap task","description":"Create a face swap task with video, face image, and optional cover image\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the face swap task","example":"My Face Swap Video"},"video_url":{"type":"string","description":"URL of the video to swap face in","example":"https://example.com/video.mp4"},"face_url":{"type":"string","description":"URL of the face image to swap with","example":"https://example.com/face.jpg"},"cover_url":{"type":"string","required":false,"description":"Optional cover image URL","example":"https://example.com/cover.jpg"},"model_version":{"type":"string","required":false,"enum":["v1","v2"],"description":"Face swap model version: v1 (JAH pipeline, default), v2 (ComfyUI, image only)","example":"v1"}},"required":["name","video_url","face_url"],"example":{"name":"My Face Swap Video","video_url":"https://example.com/video.mp4","face_url":"https://example.com/face.jpg","cover_url":"https://example.com/cover.jpg","model_version":"v1"}},"example":{"name":"My Face Swap Video","video_url":"https://example.com/video.mp4","face_url":"https://example.com/face.jpg","cover_url":"https://example.com/cover.jpg","model_version":"v1"}}}},"responses":{"200":{"description":"Face swap task created successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserFaceSwapTaskAdd","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFaceSwapTask/add\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Face Swap Video\",\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"face_url\": \"https://example.com/face.jpg\",\n  \"cover_url\": \"https://example.com/cover.jpg\",\n  \"model_version\": \"v1\"\n}'"}]}},"/api/v1/userFaceSwapTask/records":{"get":{"summary":"Get user's face swap task records","description":"Retrieve paginated list of face swap tasks for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid pagination parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":true,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number (starts from 1)"},{"name":"pageSize","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of records per page"}],"operationId":"getApiV1UserFaceSwapTaskRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapTask/records\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFaceSwapTask/status":{"get":{"summary":"Get user's face swap task status","description":"Get overall face swap task status information for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task status retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserFaceSwapTaskStatus","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapTask/status\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFaceSwapTask/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserFaceSwapTaskBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFaceSwapTask/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userFaceSwapTask/{_id}":{"get":{"summary":"Get face swap task details","description":"Retrieve detailed information about a specific face swap task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserFaceSwapTaskId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFaceSwapTask/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete face swap task","description":"Delete a face swap task from the user's collection (DELETE method)\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Face Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserFaceSwapTaskId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userFaceSwapTask/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userDubbing/startDubbing":{"post":{"tags":["AI Dubbing"],"summary":"Start AI dubbing task","description":"startDubbing - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserDubbingStartDubbing","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userDubbing/startDubbing\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userDubbing/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["AI Dubbing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1UserDubbingAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userDubbing/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userDubbing/allProcessing":{"get":{"tags":["AI Dubbing"],"summary":"List processing records","description":"allProcessing - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserDubbingAllProcessing","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userDubbing/allProcessing\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userDubbing/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["AI Dubbing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserDubbingId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userDubbing/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete dubbing task","description":"Delete a specific dubbing task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["AI Dubbing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserDubbingId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userDubbing/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userCaptionRemoval/start":{"post":{"summary":"Start caption removal task","description":"Start a new caption removal task with video source URL\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Caption Removal"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the caption removal task","example":"Remove captions from video"},"source_url":{"type":"string","description":"URL of the source video","example":"https://example.com/video.mp4"}},"required":["name","source_url"],"example":{"name":"Remove captions from video","source_url":"https://example.com/video.mp4"}},"example":{"name":"Remove captions from video","source_url":"https://example.com/video.mp4"}}}},"responses":{"200":{"description":"Caption removal task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserCaptionRemovalStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userCaptionRemoval/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Remove captions from video\",\n  \"source_url\": \"https://example.com/video.mp4\"\n}'"}]}},"/api/v1/userCaptionRemoval/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Caption Removal"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1UserCaptionRemovalAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userCaptionRemoval/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userCaptionRemoval/allProcessing":{"get":{"tags":["Caption Removal"],"summary":"List processing records","description":"allProcessing - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserCaptionRemovalAllProcessing","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userCaptionRemoval/allProcessing\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userCaptionRemoval/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Caption Removal"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserCaptionRemovalBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userCaptionRemoval/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userCaptionRemoval/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Caption Removal"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserCaptionRemovalId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userCaptionRemoval/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete caption removal task","description":"Delete a specific caption removal task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Caption Removal"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserCaptionRemovalId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userCaptionRemoval/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userCaptionRemoval/retry":{"post":{"tags":["Caption Removal"],"summary":"Retry a failed task","description":"retry - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserCaptionRemovalRetry","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userCaptionRemoval/retry\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userUpscale/start":{"post":{"summary":"Start upscale task","description":"Start a new upscale task with image or video source URL\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Upscale"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the upscale task","example":"Upscale media"},"source_url":{"type":"string","description":"URL of the source image or video","example":"https://example.com/video.mp4"}},"required":["source_url"],"example":{"name":"Upscale media","source_url":"https://example.com/video.mp4"}},"example":{"name":"Upscale media","source_url":"https://example.com/video.mp4"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserUpscaleStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userUpscale/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Upscale media\",\n  \"source_url\": \"https://example.com/video.mp4\"\n}'"}]}},"/api/v1/userUpscale/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Upscale"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1UserUpscaleAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userUpscale/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userUpscale/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Upscale"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserUpscaleBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userUpscale/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userUpscale/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Upscale"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserUpscaleId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userUpscale/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Upscale"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserUpscaleId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userUpscale/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userText2Image/start":{"post":{"summary":"Start text to image generation","description":"Generate images from text prompts using AI models\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the text to image task (optional, auto-generated if not provided)","example":"My Generated Image"},"prompt":{"type":"string","description":"Text prompt for image generation","example":"A beautiful sunset over mountains"},"width":{"type":"number","description":"Image width","default":1024,"example":1024},"height":{"type":"number","description":"Image height","default":1024,"example":1024},"model_type":{"type":"string","description":"Model type to use for generation","enum":["a2e","seedream"],"default":"a2e","example":"a2e"},"input_images":{"type":"array","description":"Reference images for A2E model (optional, max 2 images)","items":{"type":"string","example":"example"},"maxItems":2,"example":["https://example.com/image1.jpg","https://example.com/image2.jpg"]},"aspect_ratio":{"type":"string","description":"Aspect ratio for Seedream 4.5 model","enum":["1:1","4:3","3:4","16:9","9:16","2:3","3:2","21:9"],"example":"1:1"},"max_images":{"type":"number","description":"Maximum number of images to generate (creates multiple tasks internally)","minimum":1,"maximum":8,"example":1}},"required":["prompt"],"example":{"name":"My Generated Image","prompt":"A beautiful sunset over mountains","width":1024,"height":1024,"model_type":"a2e","input_images":["https://example.com/image1.jpg","https://example.com/image2.jpg"],"aspect_ratio":"1:1","max_images":1}},"example":{"name":"My Generated Image","prompt":"A beautiful sunset over mountains","width":1024,"height":1024,"model_type":"a2e","input_images":["https://example.com/image1.jpg","https://example.com/image2.jpg"],"aspect_ratio":"1:1","max_images":1}}}},"responses":{"200":{"description":"Text to image task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserText2ImageStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userText2Image/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Generated Image\",\n  \"prompt\": \"A beautiful sunset over mountains\",\n  \"width\": 1024,\n  \"height\": 1024,\n  \"model_type\": \"a2e\",\n  \"input_images\": [\n    \"https://example.com/image1.jpg\",\n    \"https://example.com/image2.jpg\"\n  ],\n  \"aspect_ratio\": \"1:1\",\n  \"max_images\": 1\n}'"}]}},"/api/v1/userText2Image/allRecords":{"get":{"summary":"Get all text to image records","description":"Retrieve paginated list of all text to image generation records for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Records retrieved successfully"},"401":{"description":"Unauthorized"}},"operationId":"getApiV1UserText2ImageAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userText2Image/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userText2Image/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserText2ImageBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userText2Image/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userText2Image/{_id}":{"get":{"summary":"Get text to image record detail","description":"Retrieve detailed information of a specific text to image generation record\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Record detail retrieved successfully"},"401":{"description":"Unauthorized"},"404":{"description":"Record not found"}},"operationId":"getApiV1UserText2ImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userText2Image/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserText2ImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userText2Image/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userText2Image/quickAddAvatar":{"post":{"summary":"Quick add avatar from generated image","description":"Create a custom avatar directly from a text to image generation result\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Text to Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"_id":{"type":"string","description":"Text to image record ID","example":"507f1f77bcf86cd799439011"},"gender":{"type":"string","enum":["female","male"],"description":"Avatar gender","example":"female"}},"required":["_id"],"example":{"_id":"507f1f77bcf86cd799439011","gender":"female"}},"example":{"_id":"507f1f77bcf86cd799439011","gender":"female"}}}},"responses":{"200":{"description":"Avatar created successfully"},"400":{"description":"Bad request"},"401":{"description":"Unauthorized"}},"operationId":"postApiV1UserText2ImageQuickAddAvatar","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userText2Image/quickAddAvatar\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"_id\": \"507f1f77bcf86cd799439011\",\n  \"gender\": \"female\"\n}'"}]}},"/api/v1/userNanoBanana/start":{"post":{"summary":"Start Nano Banana image generation","description":"Generate images using Google's Gemini 2.5 Flash Image (Nano Banana) with advanced conversational capabilities and NSFW content pre-filtering\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Nano Banana"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the image generation task","example":"Beautiful Landscape"},"prompt":{"type":"string","description":"Text prompt for image generation","example":"A serene mountain landscape at sunset with a crystal clear lake"},"model":{"type":"string","description":"Model to use for generation. Options: nano-banana (10 credits, no resolution control, auto edit mode with images), nano-banana-pro (15/25/35 credits, with resolution control), nano-banana-2 (12/20/30 credits, with resolution control)","enum":["nano-banana","nano-banana-pro","nano-banana-2"],"default":"nano-banana-pro","example":"nano-banana-pro"},"input_images":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of input image URLs (for editing and composition modes)","example":["https://example.com/image1.jpg"]},"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image. Options: auto, 16:9, 1:1, 9:16, 4:3, 3:4, 2:3, 3:2, 4:5, 5:4, 21:9","enum":["auto","16:9","1:1","9:16","4:3","3:4","2:3","3:2","4:5","5:4","21:9"],"default":"auto","example":"auto"},"image_size":{"type":"string","description":"Size of the generated image. Options: 1K, 2K, 4K. Note: supported by nano-banana-pro and nano-banana-2 models","enum":["1K","2K","4K"],"default":"1K","example":"1K"},"google_search":{"type":"boolean","description":"Use Google Web Search grounding to generate images based on real-time information. Only supported by nano-banana-2 model. When enabled, +5 credits.","default":false,"example":false},"force_generate":{"type":"boolean","description":"Force generation even if NSFW content is detected. Defaults to true for API users, false for web users","default":true,"example":true}},"required":["name","prompt"],"example":{"name":"Beautiful Landscape","prompt":"A serene mountain landscape at sunset with a crystal clear lake","model":"nano-banana-pro","input_images":["https://example.com/image1.jpg"],"aspect_ratio":"auto","image_size":"1K","google_search":false,"force_generate":true}},"example":{"name":"Beautiful Landscape","prompt":"A serene mountain landscape at sunset with a crystal clear lake","model":"nano-banana-pro","input_images":["https://example.com/image1.jpg"],"aspect_ratio":"auto","image_size":"1K","google_search":false,"force_generate":true}}}},"responses":{"200":{"description":"Nano Banana task started successfully or NSFW content detected","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserNanoBananaStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userNanoBanana/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Beautiful Landscape\",\n  \"prompt\": \"A serene mountain landscape at sunset with a crystal clear lake\",\n  \"model\": \"nano-banana-pro\",\n  \"input_images\": [\n    \"https://example.com/image1.jpg\"\n  ],\n  \"aspect_ratio\": \"auto\",\n  \"image_size\": \"1K\",\n  \"google_search\": false,\n  \"force_generate\": true\n}'"}]}},"/api/v1/userNanoBanana/allRecords":{"get":{"summary":"Get Nano Banana task list","description":"Retrieve paginated list of user's Nano Banana image generation tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Nano Banana"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":true,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":true,"schema":{"type":"integer","minimum":1,"maximum":100,"example":1},"description":"Number of items per page"},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["initialized","processing","completed","failed"],"example":"initialized"},"description":"Filter by task status"}],"operationId":"getApiV1UserNanoBananaAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userNanoBanana/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userNanoBanana/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Nano Banana"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserNanoBananaBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userNanoBanana/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userNanoBanana/detail/{id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific Nano Banana task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Nano Banana"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"getApiV1UserNanoBananaDetailId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userNanoBanana/detail/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userNanoBanana/delete/{id}":{"delete":{"summary":"Delete task","description":"Soft delete a Nano Banana task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Nano Banana"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"deleteApiV1UserNanoBananaDeleteId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userNanoBanana/delete/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userGptImage/start":{"post":{"summary":"Start GPT Image generation or editing","description":"Generate images from text or edit existing images using GPT Image (4o Image) model.\n**Features:**\n- Text-to-Image generation\n- Image-to-Image editing (supports up to 16 reference images)\n- High-fidelity visuals with accurate text rendering\n**Pricing:**\n- Medium quality: 10 credits\n- High quality: 30 credits\n**Output:**\n- Images are stored in R2 storage and expire after 3 days\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["GPT Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the image generation task","example":"My Task"},"prompt":{"type":"string","description":"Text prompt for image generation (max 3000 chars)","example":"high quality, clear, cinematic"},"input_images":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of input image URLs for image-to-image editing (up to 16 images)","example":["example"]},"aspect_ratio":{"type":"string","enum":["1:1","2:3","3:2"],"default":"1:1","example":"1:1"},"quality":{"type":"string","enum":["medium","high"],"default":"medium","description":"Image quality. medium=10 credits, high=35 credits","example":"medium"},"force_generate":{"type":"boolean","description":"Force generation even if NSFW content is detected","example":false}},"required":["name","prompt"],"example":{"name":"My Task","prompt":"high quality, clear, cinematic","input_images":["example"],"aspect_ratio":"1:1","quality":"medium","force_generate":false}},"example":{"name":"My Task","prompt":"high quality, clear, cinematic","input_images":["example"],"aspect_ratio":"1:1","quality":"medium","force_generate":false}}}},"responses":{"200":{"description":"Task started successfully or NSFW content detected"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserGptImageStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userGptImage/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Task\",\n  \"prompt\": \"high quality, clear, cinematic\",\n  \"input_images\": [\n    \"example\"\n  ],\n  \"aspect_ratio\": \"1:1\",\n  \"quality\": \"medium\",\n  \"force_generate\": false\n}'"}]}},"/api/v1/userGptImage/list":{"get":{"summary":"Get GPT Image task list","description":"Task list retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["GPT Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserGptImageList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userGptImage/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userGptImage/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["GPT Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserGptImageBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userGptImage/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userGptImage/detail/{id}":{"get":{"summary":"Get task details","description":"Task detail retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["GPT Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserGptImageDetailId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userGptImage/detail/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userGptImage/{id}":{"delete":{"summary":"Delete GPT Image task","description":"Task deleted successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["GPT Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserGptImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userGptImage/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userWan26Image/start":{"post":{"summary":"Start a new Wan2.6-Image generation task","description":"Text prompt (max 2000 chars)\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.6 Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"My Task"},"prompt":{"type":"string","description":"Text prompt (max 2000 chars)","example":"high quality, clear, cinematic"},"input_images":{"type":"array","items":{"type":"string","example":"example"},"description":"Input images for editing (0-4 images)","example":["example"]},"aspect_ratio":{"type":"string","enum":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"default":"1:1","example":"1:1"},"negative_prompt":{"type":"string","description":"Negative prompt (max 500 chars)","example":"blurry, low quality, watermark, distorted"},"prompt_extend":{"type":"boolean","default":true,"description":"Enable smart prompt rewriting","example":true},"force_generate":{"type":"boolean","example":false}},"required":["name","prompt"],"example":{"name":"My Task","prompt":"high quality, clear, cinematic","input_images":["example"],"aspect_ratio":"1:1","negative_prompt":"blurry, low quality, watermark, distorted","prompt_extend":true,"force_generate":false}},"example":{"name":"My Task","prompt":"high quality, clear, cinematic","input_images":["example"],"aspect_ratio":"1:1","negative_prompt":"blurry, low quality, watermark, distorted","prompt_extend":true,"force_generate":false}}}},"responses":{"200":{"description":"Task started successfully or NSFW content detected"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan26ImageStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan26Image/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Task\",\n  \"prompt\": \"high quality, clear, cinematic\",\n  \"input_images\": [\n    \"example\"\n  ],\n  \"aspect_ratio\": \"1:1\",\n  \"negative_prompt\": \"blurry, low quality, watermark, distorted\",\n  \"prompt_extend\": true,\n  \"force_generate\": false\n}'"}]}},"/api/v1/userWan26Image/list":{"get":{"summary":"Get task list","description":"Task list retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.6 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan26ImageList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan26Image/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan26Image/detail/{id}":{"get":{"summary":"Get task details","description":"Task detail retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.6 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan26ImageDetailId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan26Image/detail/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan26Image/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.6 Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan26ImageBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan26Image/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userWan26Image/{id}":{"delete":{"summary":"Delete task","description":"Task deleted successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.6 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserWan26ImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userWan26Image/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userWan27Image/start":{"post":{"summary":"Start a new Wan2.7-Image generation task","description":"Text prompt (max 5000 chars)\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.7 Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"My Task"},"prompt":{"type":"string","description":"Text prompt (max 5000 chars)","example":"high quality, clear, cinematic"},"model":{"type":"string","enum":["wan2.7-image","wan2.7-image-pro"],"default":"wan2.7-image","example":"wan2.7-image"},"input_images":{"type":"array","items":{"type":"string","example":"example"},"description":"Input images for editing (0-9 images, max 20MB each)","example":["example"]},"aspect_ratio":{"type":"string","enum":["1:1","3:2","2:3","4:3","3:4","16:9","9:16","21:9"],"default":"1:1","example":"1:1"},"bbox_list":{"type":"array","description":"Bounding boxes for interactive editing","example":["example"]},"force_generate":{"type":"boolean","example":false}},"required":["name","prompt"],"example":{"name":"My Task","prompt":"high quality, clear, cinematic","model":"wan2.7-image","input_images":["example"],"aspect_ratio":"1:1","bbox_list":["example"],"force_generate":false}},"example":{"name":"My Task","prompt":"high quality, clear, cinematic","model":"wan2.7-image","input_images":["example"],"aspect_ratio":"1:1","bbox_list":["example"],"force_generate":false}}}},"responses":{"200":{"description":"Task started successfully or NSFW content detected"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan27ImageStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan27Image/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Task\",\n  \"prompt\": \"high quality, clear, cinematic\",\n  \"model\": \"wan2.7-image\",\n  \"input_images\": [\n    \"example\"\n  ],\n  \"aspect_ratio\": \"1:1\",\n  \"bbox_list\": [\n    \"example\"\n  ],\n  \"force_generate\": false\n}'"}]}},"/api/v1/userWan27Image/list":{"get":{"summary":"Get task list","description":"Task list retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.7 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan27ImageList","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan27Image/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan27Image/detail/{id}":{"get":{"summary":"Get task details","description":"Task detail retrieved successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.7 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan27ImageDetailId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan27Image/detail/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan27Image/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.7 Image"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan27ImageBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan27Image/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userWan27Image/{id}":{"delete":{"summary":"Delete task","description":"Task deleted successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan2.7 Image"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserWan27ImageId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userWan27Image/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userFlux2/start":{"post":{"summary":"Start Flux 2 Pro image generation or editing","description":"Generate high-quality images from text or edit existing images using Flux 2 Pro model.\n**Features:**\n- Text-to-Image generation with advanced prompt understanding\n- Image-to-Image editing (supports up to 8 reference images)\n- Character consistency across multiple images\n- Text rendering within images\n- High-quality output with professional-grade results\n**Pricing:**\n- 1K resolution: 10 credits\n- 2K resolution: 15 credits\n**Processing Time:**\n- Usually 20-60 seconds\n**Output:**\n- Images are stored in R2 storage (7days-apac bucket) and expire after 7 days\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Flux 2"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the image generation task","example":"Elon Musk and Mark Zuckerberg boxing"},"prompt":{"type":"string","description":"Text prompt for image generation or editing instruction.\n","example":"Elon Musk and Mark Zuckerberg boxing in a professional ring"},"input_images":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of input image URLs for image-to-image editing or multi-image composition (up to 8 images).\nWhen provided, automatically switches to image-to-image mode for character consistency.\n","example":["https://example.com/reference1.jpg","https://example.com/reference2.jpg"]},"aspect_ratio":{"type":"string","description":"Aspect ratio of the generated image. Options: 1:1, 16:9, 9:16, 4:3, 3:4, 2:3, 3:2, custom, match_input_image","enum":["1:1","16:9","9:16","4:3","3:4","2:3","3:2","custom","match_input_image"],"default":"9:16","example":"9:16"},"resolution":{"type":"string","description":"Resolution of the generated image.\n- 1K: ~1 megapixel (10 credits)\n- 2K: ~2 megapixels (15 credits)\n","enum":["1K","2K"],"default":"1K","example":"1K"},"force_generate":{"type":"boolean","description":"Force generation even if NSFW content is detected. Defaults to true for API users, false for web users","default":true,"example":true}},"required":["name","prompt"],"example":{"name":"Elon Musk and Mark Zuckerberg boxing","prompt":"Elon Musk and Mark Zuckerberg boxing in a professional ring","input_images":["https://example.com/reference1.jpg","https://example.com/reference2.jpg"],"aspect_ratio":"9:16","resolution":"1K","force_generate":true}},"example":{"name":"Elon Musk and Mark Zuckerberg boxing","prompt":"Elon Musk and Mark Zuckerberg boxing in a professional ring","input_images":["https://example.com/reference1.jpg","https://example.com/reference2.jpg"],"aspect_ratio":"9:16","resolution":"1K","force_generate":true}}}},"responses":{"200":{"description":"Flux 2 Pro task started successfully or NSFW content detected","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Unauthorized - Invalid or missing token","content":{"application/json":{"schema":{"type":"object"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"type":"object"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object"}}}}},"operationId":"postApiV1UserFlux2Start","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFlux2/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Elon Musk and Mark Zuckerberg boxing\",\n  \"prompt\": \"Elon Musk and Mark Zuckerberg boxing in a professional ring\",\n  \"input_images\": [\n    \"https://example.com/reference1.jpg\",\n    \"https://example.com/reference2.jpg\"\n  ],\n  \"aspect_ratio\": \"9:16\",\n  \"resolution\": \"1K\",\n  \"force_generate\": true\n}'"}]}},"/api/v1/userFlux2/list":{"get":{"summary":"Get Flux 2 Pro task list","description":"Retrieve paginated list of user's Flux 2 Pro image generation tasks.\nTasks are sorted by creation date (newest first).\nOnly returns tasks that haven't expired (7 days retention).\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Flux 2"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserFlux2List","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFlux2/list\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFlux2/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Flux 2"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserFlux2BatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userFlux2/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userFlux2/detail/{id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific Flux 2 Pro task, including generation status, image URL, and processing time\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Flux 2"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found","content":{"application/json":{"schema":{"type":"object"}}}}},"operationId":"getApiV1UserFlux2DetailId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userFlux2/detail/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userFlux2/{id}":{"delete":{"summary":"Delete Flux 2 Pro task","description":"Soft delete a Flux 2 Pro task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Flux 2"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserFlux2Id","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userFlux2/{id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImageEdit/start":{"post":{"summary":"Start image editing task","description":"Edit images using AI with different edit types like clothing or product editing\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image Edit"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the image edit task","default":"","example":"Clothing Edit"},"edit_type":{"type":"string","enum":["clothing","product"],"description":"Type of edit to perform","example":"clothing"},"image_urls":{"type":"array","minItems":2,"items":{"type":"string","format":"uri","pattern":"^https?://.*","example":"https://example.com/image.jpg"},"description":"Array of image URLs to edit (minimum 2)","example":["https://example.com/image1.jpg","https://example.com/image2.jpg"]},"timeout":{"type":"number","default":120,"description":"Processing timeout in seconds","example":120}},"required":["edit_type","image_urls"],"example":{"name":"Clothing Edit","edit_type":"clothing","image_urls":["https://example.com/image1.jpg","https://example.com/image2.jpg"],"timeout":120}},"example":{"name":"Clothing Edit","edit_type":"clothing","image_urls":["https://example.com/image1.jpg","https://example.com/image2.jpg"],"timeout":120}}}},"responses":{"200":{"description":"Image edit task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserImageEditStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImageEdit/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Clothing Edit\",\n  \"edit_type\": \"clothing\",\n  \"image_urls\": [\n    \"https://example.com/image1.jpg\",\n    \"https://example.com/image2.jpg\"\n  ],\n  \"timeout\": 120\n}'"}]}},"/api/v1/userImageEdit/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image Edit"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1UserImageEditAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userImageEdit/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userImageEdit/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image Edit"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserImageEditBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImageEdit/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userImageEdit/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image Edit"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserImageEditId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userImageEdit/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image Edit"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserImageEditId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userImageEdit/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/start":{"post":{"summary":"Start image to video conversion","description":"Convert an image to video using AI generation with custom prompts.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image to Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the image to video task","example":"My Image Animation"},"image_url":{"type":"string","description":"URL of the source image","example":"https://example.com/image.jpg"},"prompt":{"type":"string","description":"Generation prompt","example":"Make the person in the image wave their hand"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid unwanted features","example":"blurry, distorted, static"},"lora":{"type":"string","description":"Lora ID. If provided, prompt/negative_prompt can be omitted (prompt will be overwritten by lora preset on backend).","example":"example"},"model_type":{"type":"string","enum":["GENERAL","FLF2V"],"default":"GENERAL","description":"Model type for generation","example":"GENERAL"},"end_image_url":{"type":"string","description":"End image URL (required for FLF2V model)","example":"https://example.com/end_image.jpg"},"extend_prompt":{"type":"boolean","default":true,"description":"Whether to extend the prompt automatically","example":true},"number_of_images":{"type":"integer","minimum":1,"maximum":8,"default":1,"description":"Number of videos to generate at once","example":1},"video_time":{"type":"integer","minimum":5,"maximum":20,"default":5,"description":"Video time in seconds (5, 10, 15, or 20 seconds)","example":5},"video_length":{"type":"integer","minimum":1,"maximum":1000,"description":"(Deprecated) Video length in frames. Prefer video_time. Backend converts frames to seconds internally.","example":81},"skip_face_enhance":{"type":"boolean","default":false,"description":"Whether to skip face similarity enhancement. Defaults to false (enhancing face similarity).","example":false},"minor_suspected_skip":{"type":"boolean","default":false,"description":"If suspected minor is detected (10 <= age < 15), set to true to acknowledge and proceed","example":false}},"required":["image_url"],"example":{"name":"My Image Animation","image_url":"https://example.com/image.jpg","prompt":"Make the person in the image wave their hand","negative_prompt":"blurry, distorted, static","lora":"example","model_type":"GENERAL","end_image_url":"https://example.com/end_image.jpg","extend_prompt":true,"number_of_images":1,"video_time":5,"video_length":81,"skip_face_enhance":false,"minor_suspected_skip":false}},"example":{"name":"My Image Animation","image_url":"https://example.com/image.jpg","prompt":"Make the person in the image wave their hand","negative_prompt":"blurry, distorted, static","lora":"example","model_type":"GENERAL","end_image_url":"https://example.com/end_image.jpg","extend_prompt":true,"number_of_images":1,"video_time":5,"video_length":81,"skip_face_enhance":false,"minor_suspected_skip":false}}}},"responses":{"200":{"description":"Image to video task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserImage2VideoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Image Animation\",\n  \"image_url\": \"https://example.com/image.jpg\",\n  \"prompt\": \"Make the person in the image wave their hand\",\n  \"negative_prompt\": \"blurry, distorted, static\",\n  \"lora\": \"example\",\n  \"model_type\": \"GENERAL\",\n  \"end_image_url\": \"https://example.com/end_image.jpg\",\n  \"extend_prompt\": true,\n  \"number_of_images\": 1,\n  \"video_time\": 5,\n  \"video_length\": 81,\n  \"skip_face_enhance\": false,\n  \"minor_suspected_skip\": false\n}'"}]}},"/api/v1/userImage2Video/allRecords":{"get":{"tags":["Image to Video"],"summary":"List all records","description":"allRecords - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserImage2VideoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userImage2Video/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userImage2Video/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image to Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserImage2VideoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userImage2Video/avgProcessingTime":{"get":{"tags":["Image to Video"],"summary":"Get average processing time","description":"avgProcessingTime - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserImage2VideoAvgProcessingTime","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userImage2Video/avgProcessingTime\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userImage2Video/{_id}/markShared":{"post":{"tags":["Image to Video"],"summary":"Mark record as shared","description":"markShared - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserImage2VideoIdMarkShared","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/{_id}/markShared\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/{_id}/markDownloaded":{"post":{"tags":["Image to Video"],"summary":"Mark record as downloaded","description":"markDownloaded - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserImage2VideoIdMarkDownloaded","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/{_id}/markDownloaded\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/{_id}/markCopied":{"post":{"tags":["Image to Video"],"summary":"Mark record as copied","description":"markCopied - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserImage2VideoIdMarkCopied","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/{_id}/markCopied\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/{_id}":{"get":{"tags":["Image to Video"],"summary":"Get record details","description":"detail - HTTP GET\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"getApiV1UserImage2VideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userImage2Video/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete an image to video task","description":"Delete a user's image to video task. Only final status tasks can be deleted (initialized/completed/failed). initialized tasks will be refunded.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Image to Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Task in processing or invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserImage2VideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userImage2Video/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/prompt_extension":{"post":{"tags":["Image to Video"],"summary":"Extend prompt with AI","description":"promptExtension - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserImage2VideoPromptExtension","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/prompt_extension\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userImage2Video/flf2v_prompt_extension":{"post":{"tags":["Image to Video"],"summary":"Extend video prompt with AI","description":"flf2vPromptExtension - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"bearerAuth":[]}],"operationId":"postApiV1UserImage2VideoFlf2vPromptExtension","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userImage2Video/flf2v_prompt_extension\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userWan25/start":{"post":{"summary":"Start Wan 2.5 image to video conversion","description":"Convert an image to video using Wan 2.5 AI generation\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan Image to Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Wan 2.5 task","example":"My Wan 2.5 Animation"},"image_url":{"type":"string","description":"URL of the source image","example":"https://example.com/image.jpg"},"prompt":{"type":"string","description":"Generation prompt","example":"Make the person in the image wave their hand"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid unwanted features","example":"blurry, distorted"},"duration":{"type":"string","enum":["5","10","15"],"default":"5","description":"Video duration in seconds (15s is only available for wan2.6-i2v, wan2.6-i2v-flash and wan2.7-i2v)","example":"5"},"resolution":{"type":"string","enum":["480p","720p","1080p"],"default":"720p","description":"Video resolution","example":"480p"},"enable_prompt_expansion":{"type":"boolean","default":false,"description":"Whether to enable prompt rewriting using LLM","example":false},"multi_shots":{"type":"boolean","default":false,"description":"Enable intelligent multi-shot segmentation (only active when enable_prompt_expansion is true)","example":false},"model":{"type":"string","enum":["wan2.5-i2v-preview","wan2.6-i2v","wan2.6-i2v-flash","wan2.7-i2v"],"default":"wan2.5-i2v-preview","description":"AI model version (wan2.6-i2v and wan2.7-i2v require VIP/Max user, wan2.6-i2v-flash is available to all users)","example":"wan2.5-i2v-preview"},"seed":{"type":"number","minimum":0,"maximum":2147483647,"description":"Random seed for reproducibility. Value must be in the range [0, 2147483647]. If not specified, system generates a random seed.","example":0},"audio":{"type":"boolean","default":true,"description":"Whether to generate audio for the video","example":true},"audio_url":{"type":"string","description":"URL of audio file to use for video generation. Supports WAV/MP3, 3-30s duration, max 15MB. If longer than video duration, audio will be truncated.","example":"https://example.com/audio.mp3"}},"required":["name","image_url","prompt"],"example":{"name":"My Wan 2.5 Animation","image_url":"https://example.com/image.jpg","prompt":"Make the person in the image wave their hand","negative_prompt":"blurry, distorted","duration":"5","resolution":"480p","enable_prompt_expansion":false,"multi_shots":false,"model":"wan2.5-i2v-preview","seed":0,"audio":true,"audio_url":"https://example.com/audio.mp3"}},"example":{"name":"My Wan 2.5 Animation","image_url":"https://example.com/image.jpg","prompt":"Make the person in the image wave their hand","negative_prompt":"blurry, distorted","duration":"5","resolution":"480p","enable_prompt_expansion":false,"multi_shots":false,"model":"wan2.5-i2v-preview","seed":0,"audio":true,"audio_url":"https://example.com/audio.mp3"}}}},"responses":{"200":{"description":"Wan 2.5 task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan25Start","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan25/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Wan 2.5 Animation\",\n  \"image_url\": \"https://example.com/image.jpg\",\n  \"prompt\": \"Make the person in the image wave their hand\",\n  \"negative_prompt\": \"blurry, distorted\",\n  \"duration\": \"5\",\n  \"resolution\": \"480p\",\n  \"enable_prompt_expansion\": false,\n  \"multi_shots\": false,\n  \"model\": \"wan2.5-i2v-preview\",\n  \"seed\": 0,\n  \"audio\": true,\n  \"audio_url\": \"https://example.com/audio.mp3\"\n}'"}]}},"/api/v1/userWan25/allRecords":{"get":{"summary":"Get all Wan 2.5 tasks","description":"Get paginated list of user's Wan 2.5 tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan Image to Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","default":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1UserWan25AllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan25/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan25/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan Image to Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan25BatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan25/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userWan25/{_id}":{"get":{"summary":"Get Wan 2.5 task details","description":"Get detailed information about a specific Wan 2.5 task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan Image to Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan25Id","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan25/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete a Wan 2.5 task","description":"Delete a user's Wan 2.5 image to video task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan Image to Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserWan25Id","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userWan25/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/userWan26R2V/start":{"post":{"summary":"Start reference-to-video generation","description":"Generate a video from reference images/videos using Wan 2.6 R2V Flash\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan 2.6 R2V Flash"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"model":{"type":"string","enum":["wan2.6-r2v-flash","wan2.6-r2v"],"default":"wan2.6-r2v-flash","description":"Model variant (flash=faster+cheaper, standard=higher quality audio-only)","example":"wan2.6-r2v-flash"},"name":{"type":"string","description":"Task name","example":"My Task"},"reference_urls":{"type":"array","items":{"type":"string","example":"https://example.com/file"},"description":"Array of reference image/video URLs (max 5)","example":["https://example.com/file"]},"prompt":{"type":"string","description":"Generation prompt (use character1, character2 to reference inputs)","example":"high quality, clear, cinematic"},"duration":{"type":"string","enum":["5","10"],"default":"5","example":"5"},"resolution":{"type":"string","enum":["720p","1080p"],"default":"720p","description":"Resolution tier, combined with aspect_ratio to determine actual size","example":"720p"},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1","4:3","3:4"],"default":"16:9","description":"Aspect ratio for the output video","example":"16:9"},"shot_type":{"type":"string","enum":["single","multi"],"default":"single","example":"single"},"audio":{"type":"boolean","default":true,"example":true}},"required":["prompt","reference_urls"],"example":{"model":"wan2.6-r2v-flash","name":"My Task","reference_urls":["https://example.com/file"],"prompt":"high quality, clear, cinematic","duration":"5","resolution":"720p","aspect_ratio":"16:9","shot_type":"single","audio":true}},"example":{"model":"wan2.6-r2v-flash","name":"My Task","reference_urls":["https://example.com/file"],"prompt":"high quality, clear, cinematic","duration":"5","resolution":"720p","aspect_ratio":"16:9","shot_type":"single","audio":true}}}},"responses":{"200":{"description":"Task started successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan26R2VStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan26R2V/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"model\": \"wan2.6-r2v-flash\",\n  \"name\": \"My Task\",\n  \"reference_urls\": [\n    \"https://example.com/file\"\n  ],\n  \"prompt\": \"high quality, clear, cinematic\",\n  \"duration\": \"5\",\n  \"resolution\": \"720p\",\n  \"aspect_ratio\": \"16:9\",\n  \"shot_type\": \"single\",\n  \"audio\": true\n}'"}]}},"/api/v1/userWan26R2V/allRecords":{"get":{"summary":"Get all R2V tasks","description":"Task list retrieved\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan 2.6 R2V Flash"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","default":1,"example":1},"description":"pageNum parameter"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":10,"example":10},"description":"pageSize parameter"}],"operationId":"getApiV1UserWan26R2VAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan26R2V/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/userWan26R2V/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan 2.6 R2V Flash"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1UserWan26R2VBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/userWan26R2V/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/userWan26R2V/{_id}":{"get":{"summary":"Get R2V task details","description":"Task details retrieved\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan 2.6 R2V Flash"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1UserWan26R2VId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/userWan26R2V/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete a R2V task","description":"Task deleted successfully\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Wan 2.6 R2V Flash"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1UserWan26R2VId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/userWan26R2V/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/talkingPhoto/start":{"post":{"summary":"Start talking photo generation","description":"Generate a talking photo from image and audio/text prompt\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Photo"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the talking photo task","example":"My Talking Photo"},"image_url":{"type":"string","description":"URL of the source image","example":"https://example.com/photo.jpg"},"audio_url":{"type":"string","description":"Optional audio URL","example":"https://example.com/audio.mp3"},"duration":{"type":"integer","description":"Duration in seconds","minimum":1,"maximum":20,"default":3,"example":5},"prompt":{"type":"string","description":"Generation prompt","example":"Make this person smile and speak"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid unwanted features","example":"blurry, distorted"}},"required":["name","image_url","prompt","negative_prompt"],"example":{"name":"My Talking Photo","image_url":"https://example.com/photo.jpg","audio_url":"https://example.com/audio.mp3","duration":5,"prompt":"Make this person smile and speak","negative_prompt":"blurry, distorted"}},"example":{"name":"My Talking Photo","image_url":"https://example.com/photo.jpg","audio_url":"https://example.com/audio.mp3","duration":5,"prompt":"Make this person smile and speak","negative_prompt":"blurry, distorted"}}}},"responses":{"200":{"description":"Talking photo task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TalkingPhotoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/talkingPhoto/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Talking Photo\",\n  \"image_url\": \"https://example.com/photo.jpg\",\n  \"audio_url\": \"https://example.com/audio.mp3\",\n  \"duration\": 5,\n  \"prompt\": \"Make this person smile and speak\",\n  \"negative_prompt\": \"blurry, distorted\"\n}'"}]}},"/api/v1/talkingPhoto/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Photo"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1TalkingPhotoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/talkingPhoto/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/talkingPhoto/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Photo"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TalkingPhotoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/talkingPhoto/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/talkingPhoto/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Photo"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1TalkingPhotoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/talkingPhoto/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Photo"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1TalkingPhotoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/talkingPhoto/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/talkingPhoto/callback":{"post":{"tags":["Talking Photo"],"summary":"Task completion callback","description":"callback - HTTP POST","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"},"example":{"success":true,"data":{},"timestamp":"2025-01-14T18:22:13.726Z"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TalkingPhotoCallback","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/talkingPhoto/callback\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{}'"}]}},"/api/v1/talkingVideo/start":{"post":{"summary":"Start talking video generation","description":"Generate a talking video from video and audio/text prompt\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the talking video task","example":"My Talking Video"},"video_url":{"type":"string","description":"URL of the source video","example":"https://example.com/video.mp4"},"audio_url":{"type":"string","description":"Optional audio URL","example":"https://example.com/audio.mp3"},"duration":{"type":"integer","description":"Duration in seconds","minimum":1,"maximum":20,"default":3,"example":5},"prompt":{"type":"string","description":"Generation prompt","example":"Make this person smile and speak"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid unwanted features","example":"blurry, distorted"}},"required":["name","video_url","prompt","negative_prompt"],"example":{"name":"My Talking Video","video_url":"https://example.com/video.mp4","audio_url":"https://example.com/audio.mp3","duration":5,"prompt":"Make this person smile and speak","negative_prompt":"blurry, distorted"}},"example":{"name":"My Talking Video","video_url":"https://example.com/video.mp4","audio_url":"https://example.com/audio.mp3","duration":5,"prompt":"Make this person smile and speak","negative_prompt":"blurry, distorted"}}}},"responses":{"200":{"description":"Talking video task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TalkingVideoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/talkingVideo/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Talking Video\",\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"audio_url\": \"https://example.com/audio.mp3\",\n  \"duration\": 5,\n  \"prompt\": \"Make this person smile and speak\",\n  \"negative_prompt\": \"blurry, distorted\"\n}'"}]}},"/api/v1/talkingVideo/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1TalkingVideoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/talkingVideo/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/talkingVideo/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1TalkingVideoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/talkingVideo/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/talkingVideo/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1TalkingVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/talkingVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Talking Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1TalkingVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/talkingVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/virtualTryOn/start":{"post":{"summary":"Start virtual try-on task","description":"Start a virtual try-on task with clothing images on person photos\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Virtual Try-On"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the virtual try-on task","default":"","example":"Summer Dress Try-On"},"image_urls":{"type":"array","minItems":2,"maxItems":4,"items":{"type":"string","format":"uri","pattern":"^https?://.*","example":"https://example.com/image.jpg"},"description":"Array of 2 image URLs - [0] person image, [1] clothing image","example":["https://example.com/person.jpg","https://example.com/dress.jpg"]},"timeout":{"type":"number","default":120,"description":"Processing timeout in seconds","example":120}},"required":["image_urls"],"example":{"name":"Summer Dress Try-On","image_urls":["https://example.com/person.jpg","https://example.com/dress.jpg"],"timeout":120}},"example":{"name":"Summer Dress Try-On","image_urls":["https://example.com/person.jpg","https://example.com/dress.jpg"],"timeout":120}}}},"responses":{"200":{"description":"Virtual try-on task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VirtualTryOnStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/virtualTryOn/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Summer Dress Try-On\",\n  \"image_urls\": [\n    \"https://example.com/person.jpg\",\n    \"https://example.com/dress.jpg\"\n  ],\n  \"timeout\": 120\n}'"}]}},"/api/v1/virtualTryOn/allRecords":{"get":{"summary":"Get all virtual try-on records","description":"Retrieve paginated list of virtual try-on tasks for the current user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Virtual Try-On"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Virtual try-on records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number for pagination"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1VirtualTryOnAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/virtualTryOn/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/virtualTryOn/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Virtual Try-On"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VirtualTryOnBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/virtualTryOn/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/virtualTryOn/{_id}":{"get":{"summary":"Get virtual try-on task detail","description":"Retrieve detailed information of a virtual try-on task by its ID\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Virtual Try-On"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Virtual try-on task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1VirtualTryOnId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/virtualTryOn/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete virtual try-on task","description":"Delete a virtual try-on task by its ID\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Virtual Try-On"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Virtual try-on task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1VirtualTryOnId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/virtualTryOn/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/r2/upload-presigned-url":{"post":{"summary":"Get pre-signed upload URL","description":"upload presigned url - HTTP POST\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Miscellaneous"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","description":"key parameter","example":"example_key"},"bucket":{"type":"string","description":"bucket parameter","example":"example_bucket"},"expiresIn":{"type":"integer","minimum":60,"description":"expiresIn parameter","example":60},"contentType":{"type":"string","description":"contentType parameter","example":"example_contentType"}},"required":["key"],"example":{"key":"example_key","bucket":"example_bucket","expiresIn":60,"contentType":"example_contentType"}},"example":{"key":"example_key","bucket":"example_bucket","expiresIn":60,"contentType":"example_contentType"}}}},"responses":{"200":{"description":"Operation completed successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1R2UploadPresignedUrl","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/r2/upload-presigned-url\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"key\": \"example_key\",\n  \"bucket\": \"example_bucket\",\n  \"expiresIn\": 60,\n  \"contentType\": \"example_contentType\"\n}'"}]}},"/api/v1/thinkSound/start":{"post":{"summary":"Start ThinkSound generation","description":"Generate audio-visual content from video using AI with customizable parameters\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["ThinkSound"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the ThinkSound task","example":"My Audio-Visual Generation"},"video_url":{"type":"string","description":"URL of the source video (must be .mp4, .avi, .mov, or .mkv)","example":"https://example.com/video.mp4"},"caption":{"type":"string","description":"Caption for the generation","default":"","example":"Generate audio for this silent video"},"cot_description":{"type":"string","description":"Chain of thought description","default":"","example":"Detailed description of the audio generation process"},"seed":{"type":"number","description":"Random seed for reproducible results","example":12345}},"required":["video_url"],"example":{"name":"My Audio-Visual Generation","video_url":"https://example.com/video.mp4","caption":"Generate audio for this silent video","cot_description":"Detailed description of the audio generation process","seed":12345}},"example":{"name":"My Audio-Visual Generation","video_url":"https://example.com/video.mp4","caption":"Generate audio for this silent video","cot_description":"Detailed description of the audio generation process","seed":12345}}}},"responses":{"200":{"description":"ThinkSound generation started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters or video format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ThinkSoundStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/thinkSound/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Audio-Visual Generation\",\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"caption\": \"Generate audio for this silent video\",\n  \"cot_description\": \"Detailed description of the audio generation process\",\n  \"seed\": 12345\n}'"}]}},"/api/v1/thinkSound/{_id}":{"delete":{"summary":"Delete ThinkSound task","description":"Delete a specific ThinkSound generation task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["ThinkSound"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"ThinkSound task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1ThinkSoundId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/thinkSound/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]},"get":{"summary":"Get ThinkSound task details","description":"Retrieve detailed information about a specific ThinkSound generation task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["ThinkSound"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"ThinkSound task details retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1ThinkSoundId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/thinkSound/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/thinkSound/allRecords":{"get":{"summary":"Get all ThinkSound records","description":"Retrieve paginated list of ThinkSound generation tasks for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["ThinkSound"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"ThinkSound records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid pagination parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number (starts from 1)"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of records per page"}],"operationId":"getApiV1ThinkSoundAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/thinkSound/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/thinkSound/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["ThinkSound"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ThinkSoundBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/thinkSound/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/motionTransfer/start":{"post":{"summary":"Start motion transfer task","description":"Start a motion transfer task to transfer motion from video to image\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Motion Transfer"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the motion transfer task","default":"","example":"Dance Motion Transfer"},"image_url":{"type":"string","format":"uri","pattern":"^https?://.*","description":"Reference image URL for motion transfer","example":"https://example.com/person.jpg"},"video_url":{"type":"string","format":"uri","pattern":"^https?://.*","description":"Control video URL for motion source","example":"https://example.com/dance.mp4"},"positive_prompt":{"type":"string","description":"Positive prompt for motion transfer","example":"high quality motion transfer, natural pose transition, smooth movement"},"negative_prompt":{"type":"string","description":"Negative prompt for motion transfer","example":"blurry, distorted limbs, unnatural poses, deformation"},"timeout":{"type":"number","default":300,"description":"Processing timeout in seconds","example":300}},"required":["image_url","video_url"],"example":{"name":"Dance Motion Transfer","image_url":"https://example.com/person.jpg","video_url":"https://example.com/dance.mp4","positive_prompt":"high quality motion transfer, natural pose transition, smooth movement","negative_prompt":"blurry, distorted limbs, unnatural poses, deformation","timeout":300}},"example":{"name":"Dance Motion Transfer","image_url":"https://example.com/person.jpg","video_url":"https://example.com/dance.mp4","positive_prompt":"high quality motion transfer, natural pose transition, smooth movement","negative_prompt":"blurry, distorted limbs, unnatural poses, deformation","timeout":300}}}},"responses":{"200":{"description":"Motion transfer task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1MotionTransferStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/motionTransfer/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"Dance Motion Transfer\",\n  \"image_url\": \"https://example.com/person.jpg\",\n  \"video_url\": \"https://example.com/dance.mp4\",\n  \"positive_prompt\": \"high quality motion transfer, natural pose transition, smooth movement\",\n  \"negative_prompt\": \"blurry, distorted limbs, unnatural poses, deformation\",\n  \"timeout\": 300\n}'"}]}},"/api/v1/motionTransfer/allRecords":{"get":{"summary":"Get all motion transfer records","description":"Retrieve paginated list of motion transfer tasks for the current user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Motion Transfer"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Motion transfer records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number for pagination"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1MotionTransferAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/motionTransfer/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/motionTransfer/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Motion Transfer"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1MotionTransferBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/motionTransfer/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/motionTransfer/{_id}":{"get":{"summary":"Get motion transfer task detail","description":"Retrieve detailed information of a motion transfer task by its ID\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Motion Transfer"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Motion transfer task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1MotionTransferId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/motionTransfer/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete motion transfer task","description":"Delete a motion transfer task by its ID\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Motion Transfer"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Motion transfer task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1MotionTransferId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/motionTransfer/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/actorSwap/start":{"post":{"summary":"Start actor swap task","description":"Generate actor swap video by swapping actor from image to video\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Actor Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the actor swap task","example":"My Actor Swap"},"image_url":{"type":"string","description":"URL of the reference actor image","format":"uri","example":"https://example.com/actor.jpg"},"video_url":{"type":"string","description":"URL of the control video","format":"uri","example":"https://example.com/video.mp4"},"prompt":{"type":"string","description":"Positive prompt for generation","example":"high quality, realistic"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid unwanted features","example":"blurry, distorted"},"timeout":{"type":"integer","description":"Timeout in seconds","default":300,"example":300}},"required":["image_url","video_url"],"example":{"name":"My Actor Swap","image_url":"https://example.com/actor.jpg","video_url":"https://example.com/video.mp4","prompt":"high quality, realistic","negative_prompt":"blurry, distorted","timeout":300}},"example":{"name":"My Actor Swap","image_url":"https://example.com/actor.jpg","video_url":"https://example.com/video.mp4","prompt":"high quality, realistic","negative_prompt":"blurry, distorted","timeout":300}}}},"responses":{"200":{"description":"Actor swap task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ActorSwapStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/actorSwap/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Actor Swap\",\n  \"image_url\": \"https://example.com/actor.jpg\",\n  \"video_url\": \"https://example.com/video.mp4\",\n  \"prompt\": \"high quality, realistic\",\n  \"negative_prompt\": \"blurry, distorted\",\n  \"timeout\": 300\n}'"}]}},"/api/v1/actorSwap/allRecords":{"get":{"summary":"Get all task records","description":"Retrieve paginated list of user's tasks\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Actor Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"example":1},"description":"Page number"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","example":10},"description":"Page size"}],"operationId":"getApiV1ActorSwapAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/actorSwap/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/actorSwap/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Actor Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ActorSwapBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/actorSwap/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/actorSwap/{_id}":{"get":{"summary":"Get task details","description":"Retrieve detailed information about a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Actor Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1ActorSwapId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/actorSwap/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete task","description":"Delete a specific task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Actor Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1ActorSwapId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/actorSwap/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/productAvatar/start":{"post":{"summary":"Generate product avatar with AI (Async)","description":"Generate AI-powered product avatar by combining product and person images with customizable positioning and styling.\n**⚠️ IMPORTANT: This is an ASYNCHRONOUS operation**\n### Async Workflow\n1. **Submit Task** - Call this endpoint to create a new generation task\n   - Returns immediately with task `_id` and status `initialized`\n   - Task is queued for processing\n2. **Processing States** - The task goes through these states:\n   - `initialized` → Task created, waiting in queue\n   - `sent` → Task submitted to AI service\n   - `pending` → Task received by AI service\n   - `processing` → AI is generating the image\n   - `completed` → Generation finished successfully\n   - `failed` → Generation failed (check `failed_message`)\n3. **Get Results** - Poll for task status and results:\n   - Use `GET /api/v1/productAvatar/{_id}` to check status\n   - Use `GET /api/v1/productAvatar/allRecords` to list all tasks\n   - When `current_status` is `completed`, `result_image_url` contains the generated image\n4. **Timeout Handling**:\n   - Tasks timeout after 2 hours and automatically fail\n   - Credits are automatically refunded on timeout or failure\n### Best Practices\n- Poll every 3-5 seconds to check task status\n- Handle both `completed` and `failed` states\n- Store the returned `_id` to query results later\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Product Avatar"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name for the product avatar generation task (optional)","example":"My Product Avatar"},"image_urls":{"type":"array","description":"Array of image URLs - [0] product image, [1] person image","minItems":2,"maxItems":2,"items":{"type":"string","format":"uri","pattern":"^https?://.+","description":"Image URL (must be HTTP/HTTPS)","example":"https://example.com/image.jpg"},"example":["https://example.com/product.jpg","https://example.com/person.jpg"]},"product_rect":{"type":"object","description":"Product positioning and transformation parameters","required":["x","y","width","height","rotation","scale"],"properties":{"x":{"type":"number","description":"X coordinate position","example":100},"y":{"type":"number","description":"Y coordinate position","example":150},"width":{"type":"number","description":"Width of the product area","example":200},"height":{"type":"number","description":"Height of the product area","example":300},"rotation":{"type":"number","description":"Rotation angle in degrees","example":0},"scale":{"type":"number","description":"Scale factor for the product","example":1}},"example":{"x":100,"y":150,"width":200,"height":300,"rotation":0,"scale":1}},"prompt":{"type":"string","description":"Additional prompt for AI generation (optional)","example":"Professional product showcase"},"timeout":{"type":"number","description":"Processing timeout in seconds","default":120,"example":120}},"required":["image_urls","product_rect"],"example":{"name":"My Product Avatar","image_urls":["https://example.com/product.jpg","https://example.com/person.jpg"],"product_rect":{"x":100,"y":150,"width":200,"height":300,"rotation":0,"scale":1},"prompt":"Professional product showcase","timeout":120}},"example":{"name":"My Product Avatar","image_urls":["https://example.com/product.jpg","https://example.com/person.jpg"],"product_rect":{"x":100,"y":150,"width":200,"height":300,"rotation":0,"scale":1},"prompt":"Professional product showcase","timeout":120}}}},"responses":{"200":{"description":"Product avatar generation started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters or missing required fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ProductAvatarStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/productAvatar/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Product Avatar\",\n  \"image_urls\": [\n    \"https://example.com/product.jpg\",\n    \"https://example.com/person.jpg\"\n  ],\n  \"product_rect\": {\n    \"x\": 100,\n    \"y\": 150,\n    \"width\": 200,\n    \"height\": 300,\n    \"rotation\": 0,\n    \"scale\": 1\n  },\n  \"prompt\": \"Professional product showcase\",\n  \"timeout\": 120\n}'"}]}},"/api/v1/productAvatar/allRecords":{"get":{"summary":"List all product avatar tasks","description":"Retrieve a paginated list of all product avatar generation tasks for the authenticated user.\nUse this endpoint to monitor task progress and retrieve results.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Product Avatar"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successfully retrieved task list","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","default":1,"example":1},"description":"Page number (starting from 1)"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1ProductAvatarAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/productAvatar/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/productAvatar/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Product Avatar"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1ProductAvatarBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/productAvatar/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/productAvatar/{_id}":{"get":{"summary":"Query task status and get result","description":"Retrieve detailed information about a specific product avatar generation task.\nUse this endpoint to poll for task status and get the result when completed.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Product Avatar"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successfully retrieved task details","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1ProductAvatarId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/productAvatar/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete a product avatar task","description":"Soft delete a product avatar task. The task data will be marked as deleted but not removed from the database.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Product Avatar"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid task ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1ProductAvatarId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/productAvatar/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/headSwap/start":{"post":{"summary":"Start head swap generation","description":"Generate a head swap result by replacing the head in a target image/video with a source head.\n**Supported modes:**\n- **Image to Image**: Provide an image as `target_image_url` to get a head-swapped image\n- **Image to Video**: Provide a video as `target_image_url` to get a head-swapped video (max 15 seconds)\n**Pricing:**\n- Image head swap: 5 coins\n- Video head swap: 6 coins/second (max 15 seconds, so max 90 coins)\n**Content moderation:**\n- Minor detection is performed on input images\n- If a minor is detected (age < 10), the request will be rejected with code 1003\n- If a suspected minor is detected (10 <= age < 15), set `minor_suspected_skip: true` to proceed\n**Async workflow:**\n1. Task is created with status `initialized`\n2. Task is queued and sent to algorithm service (status: `sent`)\n3. Algorithm processes the task (status: `processing`)\n4. Result is ready (status: `completed`) or failed (status: `failed`)\n5. Use `/api/v1/headSwap/{_id}` to poll for status updates\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Head Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string","description":"URL of the source head image (the head to be transplanted)","format":"uri","example":"https://example.com/head.jpg"},"target_image_url":{"type":"string","description":"URL of the target body image or video (where the head will be placed)","format":"uri","example":"https://example.com/body.jpg"},"minor_suspected_skip":{"type":"boolean","description":"Skip suspected minor warning (for ages 10-14). Use with caution.","default":false,"example":false}},"required":["image_url","target_image_url"],"example":{"image_url":"https://example.com/head.jpg","target_image_url":"https://example.com/body.jpg","minor_suspected_skip":false}},"example":{"image_url":"https://example.com/head.jpg","target_image_url":"https://example.com/body.jpg","minor_suspected_skip":false}}}},"responses":{"200":{"description":"Head swap task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Invalid request parameters or insufficient coins"},"401":{"description":"Unauthorized - Invalid or missing bearer token"},"403":{"description":"Content moderation failed (code 1003 = minor detected, code 1004 = suspected minor)"}},"operationId":"postApiV1HeadSwapStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/headSwap/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"image_url\": \"https://example.com/head.jpg\",\n  \"target_image_url\": \"https://example.com/body.jpg\",\n  \"minor_suspected_skip\": false\n}'"}]}},"/api/v1/headSwap/allRecords":{"get":{"summary":"Get all head swap records","description":"Get a paginated list of the current user's head swap tasks.\nResults are sorted by creation time (newest first) and filtered by expiration.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Head Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Head swap records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token"}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"example":1},"description":"Page number (starts from 1)"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1HeadSwapAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/headSwap/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/headSwap/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Head Swap"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1HeadSwapBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/headSwap/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/headSwap/{_id}":{"get":{"summary":"Get head swap task detail","description":"Get detailed information of a specific head swap task by ID\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Head Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Invalid task ID format"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"getApiV1HeadSwapId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/headSwap/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete head swap task","description":"Delete a head swap task by ID.\n**Status behavior:**\n- `initialized`: Can be deleted with coin refund (task not yet sent to algorithm service)\n- `sent/pending/processing`: Cannot be deleted, returns 400 error (task is processing)\n- `completed/failed`: Can be deleted without refund (task already completed or failed)\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Head Swap"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Cannot delete task in processing state"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"deleteApiV1HeadSwapId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/headSwap/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/veoVideo/start":{"post":{"summary":"Start Veo 3.1 video generation","description":"Generate videos using Google DeepMind's Veo 3.1 AI model. Supports text-to-video, image-to-video, and reference-based generation.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the video generation task (optional, auto-generated if not provided)","example":"My Veo Video"},"prompt":{"type":"string","description":"Text prompt describing the video content. Can be empty to use default placeholder text.","example":"Two person street interview in New York City. Sample Dialogue: Host: \"Did you hear the news?\" Person: \"Yes! Veo 3.1 is now available on A2E. If you want to see it, go check their website.\""},"generationType":{"type":"string","enum":["TEXT_2_VIDEO","FIRST_AND_LAST_FRAMES_2_VIDEO","REFERENCE_2_VIDEO"],"description":"Type of generation (TEXT_2_VIDEO for text-only, FIRST_AND_LAST_FRAMES_2_VIDEO for image frames, REFERENCE_2_VIDEO for reference images)","default":"TEXT_2_VIDEO","example":"TEXT_2_VIDEO"},"imageUrls":{"type":"array","items":{"type":"string","example":"https://example.com/image.jpg"},"description":"Image URLs for image-to-video generation. For FIRST_AND_LAST_FRAMES_2_VIDEO mode, 1-2 images (start/end frames). For REFERENCE_2_VIDEO mode, 1-3 reference images.","example":["https://example.com/start_frame.jpg","https://example.com/end_frame.jpg"]},"model":{"type":"string","enum":["veo3","veo3_fast"],"description":"Generation model (veo3 for quality [320 credits], veo3_fast for speed [80 credits])","default":"veo3_fast","example":"veo3_fast"},"aspectRatio":{"type":"string","enum":["16:9","9:16","Auto"],"description":"Video aspect ratio (Auto will determine automatically)","default":"Auto","example":"16:9"},"watermark":{"type":"string","description":"Custom watermark text (optional)","example":"MyBrand"},"seeds":{"type":"number","description":"Random seed for reproducible generation (10000-99999, optional)","example":12345}},"required":["prompt"],"example":{"name":"My Veo Video","prompt":"Two person street interview in New York City. Sample Dialogue: Host: \"Did you hear the news?\" Person: \"Yes! Veo 3.1 is now available on A2E. If you want to see it, go check their website.\"","generationType":"TEXT_2_VIDEO","imageUrls":["https://example.com/start_frame.jpg","https://example.com/end_frame.jpg"],"model":"veo3_fast","aspectRatio":"16:9","watermark":"MyBrand","seeds":12345}},"example":{"name":"My Veo Video","prompt":"Two person street interview in New York City. Sample Dialogue: Host: \"Did you hear the news?\" Person: \"Yes! Veo 3.1 is now available on A2E. If you want to see it, go check their website.\"","generationType":"TEXT_2_VIDEO","imageUrls":["https://example.com/start_frame.jpg","https://example.com/end_frame.jpg"],"model":"veo3_fast","aspectRatio":"16:9","watermark":"MyBrand","seeds":12345}}}},"responses":{"200":{"description":"Video generation task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VeoVideoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/veoVideo/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Veo Video\",\n  \"prompt\": \"Two person street interview in New York City. Sample Dialogue: Host: \\\"Did you hear the news?\\\" Person: \\\"Yes! Veo 3.1 is now available on A2E. If you want to see it, go check their website.\\\"\",\n  \"generationType\": \"TEXT_2_VIDEO\",\n  \"imageUrls\": [\n    \"https://example.com/start_frame.jpg\",\n    \"https://example.com/end_frame.jpg\"\n  ],\n  \"model\": \"veo3_fast\",\n  \"aspectRatio\": \"16:9\",\n  \"watermark\": \"MyBrand\",\n  \"seeds\": 12345\n}'"}]}},"/api/v1/veoVideo/allRecords":{"get":{"summary":"Get all Veo video records","description":"Retrieve paginated list of user's Veo video generation records\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Records retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1VeoVideoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/veoVideo/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/veoVideo/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1VeoVideoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/veoVideo/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/veoVideo/{_id}":{"get":{"summary":"Get Veo video detail","description":"Retrieve detailed information of a specific Veo video generation record\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Video detail retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1VeoVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/veoVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete Veo video record","description":"Soft delete a Veo video generation record\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Video record deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1VeoVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/veoVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/veoVideo/{_id}/1080p":{"get":{"summary":"Get 1080P HD video","description":"Retrieve 1080P high-definition version of the video (only available for 16:9 aspect ratio)\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Veo Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"1080P video retrieved successfully"},"202":{"description":"1080P video is being processed, please try again later"},"400":{"description":"Invalid aspect ratio or missing task ID"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1VeoVideoId1080p","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/veoVideo/{_id}/1080p\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/klingVideo/start":{"post":{"summary":"Start Kling video generation","description":"Generate videos using Kling Official API.\n**Modes:**\n- `text-to-video` – generate video from text prompt\n- `image-to-video` – generate video from an image (+ optional end frame in PRO)\n- `motion-control` – transfer motion from a video onto an image\n**Versions:** `2.6` (5s/10s) and `3.0` (5s/10s/15s)\n**Quality:** `std` (Standard) or `pro` (Professional). PRO unlocks sound (v2.6), end frame, and higher quality.\n**Pricing (credits):**\n- v2.6 STD: 5s 60 / 10s 120\n- v2.6 PRO: 5s 100 / 10s 200 (sound ×2)\n- v2.6 Motion Control: STD 20/s, PRO 32/s\n- v3.0 STD: 5s 120 / 10s 240 / 15s 360 (sound ×1.5)\n- v3.0 PRO: 5s 160 / 10s 320 / 15s 480 (sound ×1.5)\n- v3.0 Motion Control: STD 36/s, PRO 48/s\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the video generation task","example":"My Kling Video"},"mode":{"type":"string","enum":["text-to-video","image-to-video","motion-control"],"description":"Generation mode: text-to-video, image-to-video, or motion-control","example":"image-to-video"},"prompt":{"type":"string","description":"Text prompt describing the desired video","example":"A beautiful sunset over the ocean"},"version":{"type":"string","enum":["2.6","3.0"],"description":"Kling model version. 2.6 supports 5s/10s, 3.0 supports 5s/10s/15s","default":"2.6","example":"3.0"},"quality_mode":{"type":"string","enum":["std","pro"],"description":"Quality mode. PRO supports sound and end frame features","default":"std","example":"std"},"duration":{"type":"string","enum":["5","10","15"],"description":"Video duration in seconds. 15s only available for version 3.0","default":"5","example":"5"},"image_url":{"type":"string","description":"Input image URL (required for image-to-video and motion-control modes)","example":"https://example.com/input.jpg"},"video_url":{"type":"string","description":"Input video URL (required for motion-control mode)","example":"https://example.com/input.mp4"},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1"],"description":"Video aspect ratio (text-to-video mode only)","default":"16:9","example":"16:9"},"sound":{"type":"boolean","description":"Enable audio generation. For v2.6 only available in PRO mode (STD does not support sound). v3.0 supports sound in both STD and PRO. Cannot be used with end_image_url in v2.6","default":false,"example":false},"end_image_url":{"type":"string","description":"End frame image URL (image-to-video + PRO mode only). Cannot be used with sound in v2.6","example":"https://example.com/end_frame.jpg"},"character_orientation":{"type":"string","enum":["video","image"],"description":"Character orientation for motion-control mode. 'image' limits duration to 3-10s, 'video' allows 3-30s","default":"video","example":"video"},"negative_prompt":{"type":"string","description":"Negative prompt to avoid certain elements","example":"blurry, low quality"},"seed":{"type":"number","description":"Random seed for reproducibility","example":12345}},"required":["mode","prompt"],"example":{"name":"My Kling Video","mode":"image-to-video","prompt":"A beautiful sunset over the ocean","version":"3.0","quality_mode":"std","duration":"5","image_url":"https://example.com/input.jpg","video_url":"https://example.com/input.mp4","aspect_ratio":"16:9","sound":false,"end_image_url":"https://example.com/end_frame.jpg","character_orientation":"video","negative_prompt":"blurry, low quality","seed":12345}},"example":{"name":"My Kling Video","mode":"image-to-video","prompt":"A beautiful sunset over the ocean","version":"3.0","quality_mode":"std","duration":"5","image_url":"https://example.com/input.jpg","video_url":"https://example.com/input.mp4","aspect_ratio":"16:9","sound":false,"end_image_url":"https://example.com/end_frame.jpg","character_orientation":"video","negative_prompt":"blurry, low quality","seed":12345}}}},"responses":{"200":{"description":"Video generation task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters"},"401":{"description":"Unauthorized - Invalid or missing bearer token"}},"operationId":"postApiV1KlingVideoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/klingVideo/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Kling Video\",\n  \"mode\": \"image-to-video\",\n  \"prompt\": \"A beautiful sunset over the ocean\",\n  \"version\": \"3.0\",\n  \"quality_mode\": \"std\",\n  \"duration\": \"5\",\n  \"image_url\": \"https://example.com/input.jpg\",\n  \"video_url\": \"https://example.com/input.mp4\",\n  \"aspect_ratio\": \"16:9\",\n  \"sound\": false,\n  \"end_image_url\": \"https://example.com/end_frame.jpg\",\n  \"character_orientation\": \"video\",\n  \"negative_prompt\": \"blurry, low quality\",\n  \"seed\": 12345\n}'"}]}},"/api/v1/klingVideo/allRecords":{"get":{"summary":"Get all Kling video records","description":"Retrieve all Kling video generation records for the authenticated user\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successfully retrieved records","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1KlingVideoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/klingVideo/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/klingVideo/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1KlingVideoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/klingVideo/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/klingVideo/{_id}":{"get":{"summary":"Get Kling video detail","description":"Get detailed information about a specific Kling video generation task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Successfully retrieved task details"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"getApiV1KlingVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/klingVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"put":{"summary":"Update Kling video name","description":"Update the name of a Kling video generation task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"New name for the task","example":"My Task"}},"required":["name"],"example":{"name":"My Task"}},"example":{"name":"My Task"}}}},"responses":{"200":{"description":"Name updated successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"putApiV1KlingVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X PUT \"http://video.a2e.ai/api/v1/klingVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Task\"\n}'"}]},"delete":{"summary":"Delete Kling video","description":"Delete a Kling video generation task\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Task not found"}},"operationId":"deleteApiV1KlingVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/klingVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/klingOmni/start":{"post":{"summary":"Start Kling Omni video generation","description":"Generate videos using Kling Omni API (model: kling-v3-omni).\nThis is a simplified wrapper around the official Kling API.\n**Key Features:**\n- Multi-reference images: up to 7 images, use `<<<image_N>>>` tags in prompt\n- Multi-shot editing: AI Director (intelligence) or manual (customize) storyboard\n- Native sound generation via `sound` parameter\n- Flexible duration: 3–15 seconds\n**Simplified vs Official API:**\n- `image_list`: accepts `string[]` (image URLs); official uses `[{image_url, type?}]`, auto-converted on server\n- `sound`: accepts `boolean`; official uses `\"on\"/\"off\"`, auto-converted on server\n- `multi_prompt`: items need `prompt` + `duration`; server auto-adds `index` field for official API\n- `prompt` is required when `multi_shot=false` or `shot_type=intelligence`\n- `multi_prompt` total duration must equal `duration` when `shot_type=customize`\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Task name (internal use)","example":"My Kling Omni Video"},"prompt":{"type":"string","description":"Text prompt. Use <<<image_N>>> to reference images. Required when multi_shot=false or shot_type=intelligence.","example":"<<<image_1>>> walks towards <<<image_2>>> in a sunny park"},"image_list":{"type":"array","items":{"type":"string","example":"example"},"description":"Reference image URLs (up to 7, jpg/jpeg/png, max 10MB). Simplified: pass URLs directly; server converts to official [{image_url}] format.","example":["https://example.com/ref1.jpg"]},"mode":{"type":"string","enum":["std","pro"],"description":"Video generation mode. std=standard (720p), pro=professional (1080p)","default":"std","example":"std"},"duration":{"type":"string","description":"Video duration in seconds (3–15)","default":"5","example":"5"},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1"],"default":"16:9","example":"16:9"},"sound":{"type":"boolean","description":"Enable native sound generation. Simplified: pass boolean; server converts to official 'on'/'off'.","default":false,"example":false},"multi_shot":{"type":"boolean","description":"Enable multi-shot mode","default":false,"example":false},"shot_type":{"type":"string","enum":["intelligence","customize"],"description":"Shot type. Required when multi_shot=true.","example":"intelligence"},"multi_prompt":{"type":"array","description":"Manual storyboard (required when shot_type=customize, 1–6 items, total duration must equal duration). Server auto-adds index field for official API.","items":{"type":"object","required":["prompt","duration"],"properties":{"prompt":{"type":"string","description":"Prompt for this shot (max 512 chars)","example":"<<<image_1>>> stands up and waves"},"duration":{"type":"string","description":"Duration in seconds","example":"3"}},"example":{"prompt":"<<<image_1>>> stands up and waves","duration":"3"}},"example":[{"prompt":"<<<image_1>>> stands up and waves","duration":"3"}]}},"required":["prompt","duration"],"example":{"name":"My Kling Omni Video","prompt":"<<<image_1>>> walks towards <<<image_2>>> in a sunny park","image_list":["https://example.com/ref1.jpg"],"mode":"std","duration":"5","aspect_ratio":"16:9","sound":false,"multi_shot":false,"shot_type":"intelligence","multi_prompt":[{"prompt":"<<<image_1>>> stands up and waves","duration":"3"}]}},"example":{"name":"My Kling Omni Video","prompt":"<<<image_1>>> walks towards <<<image_2>>> in a sunny park","image_list":["https://example.com/ref1.jpg"],"mode":"std","duration":"5","aspect_ratio":"16:9","sound":false,"multi_shot":false,"shot_type":"intelligence","multi_prompt":[{"prompt":"<<<image_1>>> stands up and waves","duration":"3"}]}}}},"responses":{"200":{"description":"Video generation task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters"},"401":{"description":"Unauthorized - Invalid or missing bearer token"}},"operationId":"postApiV1KlingOmniStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/klingOmni/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Kling Omni Video\",\n  \"prompt\": \"<<<image_1>>> walks towards <<<image_2>>> in a sunny park\",\n  \"image_list\": [\n    \"https://example.com/ref1.jpg\"\n  ],\n  \"mode\": \"std\",\n  \"duration\": \"5\",\n  \"aspect_ratio\": \"16:9\",\n  \"sound\": false,\n  \"multi_shot\": false,\n  \"shot_type\": \"intelligence\",\n  \"multi_prompt\": [\n    {\n      \"prompt\": \"<<<image_1>>> stands up and waves\",\n      \"duration\": \"3\"\n    }\n  ]\n}'"}]}},"/api/v1/klingOmni/allRecords":{"get":{"summary":"Get all Kling Omni video records","description":"Retrieve paginated list of Kling Omni video generation tasks for the authenticated user.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Records retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized"}},"operationId":"getApiV1KlingOmniAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/klingOmni/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/klingOmni/batchDetail":{"post":{"summary":"Batch get Kling Omni video details","description":"Get details of multiple Kling Omni tasks by their IDs (max 200).\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized"}},"operationId":"postApiV1KlingOmniBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/klingOmni/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/klingOmni/{_id}":{"get":{"summary":"Get Kling Omni video detail","description":"Get detailed information about a specific Kling Omni video generation task.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized"},"404":{"description":"Task not found"}},"operationId":"getApiV1KlingOmniId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/klingOmni/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"put":{"summary":"Update Kling Omni video name","description":"Update the name of a Kling Omni video generation task.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"New name for the task","example":"My Task"}},"required":["name"],"example":{"name":"My Task"}},"example":{"name":"My Task"}}}},"responses":{"200":{"description":"Updated successfully"},"401":{"description":"Unauthorized"},"404":{"description":"Task not found"}},"operationId":"putApiV1KlingOmniId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X PUT \"http://video.a2e.ai/api/v1/klingOmni/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Task\"\n}'"}]},"delete":{"summary":"Delete Kling Omni video","description":"Soft-delete a Kling Omni video generation task.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Kling Omni"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Deleted successfully"},"401":{"description":"Unauthorized"},"404":{"description":"Task not found"}},"operationId":"deleteApiV1KlingOmniId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/klingOmni/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}},"/api/v1/grokVideo/start":{"post":{"summary":"Start Grok Imagine video generation","description":"Generate videos using Grok Imagine. Supports both text-to-video and image-to-video modes.\n**Modes:**\n- `text-to-video`: Generate video from a text prompt. Requires `prompt`.\n- `image-to-video`: Generate video from a reference image. Requires at least one image in `image_urls` (or `image_url`).\n**Duration:** `6`, `10`, or `15` seconds.\n**Mode:** `fun`, `normal` (default), or `spicy`.\nThis is an asynchronous API. After calling this endpoint, poll `/api/v1/grokVideo/{_id}` to check task status until `current_status` becomes `completed` or `failed`.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Grok Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the video generation task (optional, for identifying the task)","example":"My Grok Video"},"model_type":{"type":"string","enum":["text-to-video","image-to-video"],"description":"Generation mode. `text-to-video` generates video from text prompt, `image-to-video` generates video from a reference image.","default":"text-to-video","example":"text-to-video"},"prompt":{"type":"string","description":"Text prompt describing the video content. Required for text-to-video mode, optional for image-to-video mode.","example":"A cat playing with a ball of yarn in a cozy living room, warm lighting, cinematic style"},"mode":{"type":"string","enum":["fun","normal","spicy"],"description":"Generation style mode. For image-to-video, upstream may fallback spicy to normal.","default":"normal","example":"normal"},"image_urls":{"type":"array","items":{"type":"string","example":"https://example.com/image.jpg"},"description":"Array of reference image URLs for image-to-video mode. At least one image is required when `model_type` is `image-to-video`.","example":["https://example.com/reference.jpg"]},"image_url":{"type":"string","description":"Single reference image URL (alternative to `image_urls`). Will be prepended to `image_urls` array.","example":"https://example.com/image.jpg"},"aspect_ratio":{"type":"string","enum":["1:1","16:9","9:16"],"description":"Video aspect ratio. Used primarily in text-to-video mode; in image-to-video mode the image's own ratio is used.","default":"16:9","example":"16:9"},"duration":{"type":"string","enum":["6","10","15"],"description":"Video duration in seconds.","default":"6","example":"6"}},"required":[],"example":{"name":"My Grok Video","model_type":"text-to-video","prompt":"A cat playing with a ball of yarn in a cozy living room, warm lighting, cinematic style","mode":"normal","image_urls":["https://example.com/reference.jpg"],"image_url":"https://example.com/image.jpg","aspect_ratio":"16:9","duration":"6"}},"example":{"name":"My Grok Video","model_type":"text-to-video","prompt":"A cat playing with a ball of yarn in a cozy living room, warm lighting, cinematic style","mode":"normal","image_urls":["https://example.com/reference.jpg"],"image_url":"https://example.com/image.jpg","aspect_ratio":"16:9","duration":"6"}}}},"responses":{"200":{"description":"Video generation task started successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1GrokVideoStart","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/grokVideo/start\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"name\": \"My Grok Video\",\n  \"model_type\": \"text-to-video\",\n  \"prompt\": \"A cat playing with a ball of yarn in a cozy living room, warm lighting, cinematic style\",\n  \"mode\": \"normal\",\n  \"image_urls\": [\n    \"https://example.com/reference.jpg\"\n  ],\n  \"image_url\": \"https://example.com/image.jpg\",\n  \"aspect_ratio\": \"16:9\",\n  \"duration\": \"6\"\n}'"}]}},"/api/v1/grokVideo/allRecords":{"get":{"summary":"Get Grok Video task list","description":"Retrieve paginated list of user's Grok Imagine video generation tasks, ordered by creation time (newest first).\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Grok Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task list retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"parameters":[{"name":"pageNum","in":"query","required":false,"schema":{"type":"integer","default":1,"example":1},"description":"Page number (starts from 1)"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","default":10,"example":10},"description":"Number of items per page"}],"operationId":"getApiV1GrokVideoAllRecords","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/grokVideo/allRecords\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]}},"/api/v1/grokVideo/batchDetail":{"post":{"summary":"Batch query task details","description":"Query details for multiple tasks at once by providing an array of task IDs\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Grok Video"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","example":"example"},"description":"Array of task IDs to query","example":["example"]}},"required":["ids"],"example":{"ids":["example"]}},"example":{"ids":["example"]}}}},"responses":{"200":{"description":"Batch details retrieved successfully"},"401":{"description":"Unauthorized - Invalid or missing bearer token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"postApiV1GrokVideoBatchDetail","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST \"http://video.a2e.ai/api/v1/grokVideo/batchDetail\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{\n  \"ids\": [\n    \"example\"\n  ]\n}'"}]}},"/api/v1/grokVideo/{_id}":{"get":{"summary":"Get Grok Video task detail","description":"Retrieve detailed information of a specific Grok Imagine video generation task by ID. Use this endpoint to poll task status after creation.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Grok Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task detail retrieved successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"getApiV1GrokVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X GET \"http://video.a2e.ai/api/v1/grokVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\""}]},"delete":{"summary":"Delete Grok Video task","description":"Delete a specific Grok Imagine video generation task by ID.\n\nAuthentication: set header Authorization: Bearer <token> (supports user JWT or sk_ API token).","tags":["Grok Video"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Task deleted successfully","content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"operationId":"deleteApiV1GrokVideoId","x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X DELETE \"http://video.a2e.ai/api/v1/grokVideo/{_id}\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\" \\\n  -d '{}'"}]}}},"components":{"schemas":{"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation success status","example":true},"data":{"type":"object","description":"Response data"},"timestamp":{"type":"string","format":"date-time","description":"Response timestamp","example":"2025-01-14T18:22:13.726Z"}},"required":["success"]},"UserVoice":{"type":"object","properties":{"_id":{"type":"string","description":"Record id (MongoDB ObjectId)","example":"65a3b8c6f0c2d3e4f5a6b7c8"},"name":{"type":"string","description":"Voice model name","example":"My Custom Voice"},"voice_urls":{"type":"array","description":"Audio sample URLs used for training","items":{"type":"string"}},"gender":{"type":"string","description":"Voice gender","enum":["female","male"],"example":"female"},"model":{"type":"string","description":"Voice model provider","enum":["a2e","cartesia","minimax","elevenlabs"],"example":"a2e"},"lang":{"type":"string","description":"Internal language code used by model","example":"en"},"language":{"type":"string","description":"Original language code from client","example":"en-US"},"current_status":{"type":"string","description":"Training status","enum":["sent","pendding","processing","completed","failed"],"example":"processing"},"speaker_id":{"type":"string","description":"Speaker id returned by vendor","example":"a2e-voice-xxxx"},"coins":{"type":"number","description":"Coins cost for this training (if any)","example":0},"denoise":{"type":"boolean","description":"Whether denoising is enabled","example":true},"enhance_voice_similarity":{"type":"boolean","description":"Whether enhance voice similarity is enabled","example":true},"ttsRate":{"type":"number","description":"TTS rate (coins per 10 seconds)","example":1},"hasRefundCoin":{"type":"boolean","description":"Whether coins have been refunded for failed training","example":false},"user_id":{"type":"string","description":"Owner user id","example":"65a3b8c6f0c2d3e4f5a6b7c1"},"createdAt":{"type":"string","format":"date-time","description":"Created time","example":"2025-01-14T18:22:13.726Z"},"updatedAt":{"type":"string","format":"date-time","description":"Updated time","example":"2025-01-14T18:22:13.726Z"}}},"UserVoiceTrainingRequest":{"type":"object","required":["name","voice_urls"],"properties":{"name":{"type":"string","description":"Name of the voice model","example":"My Custom Voice"},"voice_urls":{"type":"array","minItems":1,"items":{"type":"string"},"description":"Array of audio file URLs for training","example":["https://example.com/audio1.wav","https://example.com/audio2.wav"]},"gender":{"type":"string","enum":["female","male"],"description":"Voice gender","default":"female","example":"female"},"denoise":{"type":"boolean","description":"Whether to apply denoising","example":true},"enhance_voice_similarity":{"type":"boolean","description":"Whether to enhance voice similarity","example":true},"model":{"type":"string","enum":["a2e","cartesia","minimax","elevenlabs"],"description":"Voice model to use","default":"a2e","example":"a2e"},"language":{"type":"string","description":"Language code from client (e.g. en-US, zh-CN). If omitted, server will infer from request headers.","example":"en-US"}}},"UserVoiceUpdateRequest":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"New name of the voice record","example":"My Renamed Voice"}}},"SuccessUserVoiceResponse":{"type":"object","properties":{"success":{"type":"boolean","example":true},"data":{"$ref":"#/components/schemas/UserVoice"},"timestamp":{"type":"string","format":"date-time","example":"2025-01-14T18:22:13.726Z"}},"required":["success","data"]},"SuccessUserVoiceListResponse":{"type":"object","properties":{"success":{"type":"boolean","example":true},"data":{"type":"array","items":{"$ref":"#/components/schemas/UserVoice"}},"timestamp":{"type":"string","format":"date-time","example":"2025-01-14T18:22:13.726Z"}},"required":["success","data"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation success status","example":false},"error":{"type":"string","description":"Error message"},"code":{"type":"string","description":"Error code"},"timestamp":{"type":"string","format":"date-time","description":"Error timestamp","example":"2025-01-14T18:22:13.726Z"}},"required":["success","error"]}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Use Authorization: Bearer <API_TOKEN>. Generate the token in Account > API Token. Public developer API calls should use API tokens that start with sk_."}}},"tags":[{"name":"Miscellaneous"},{"name":"Generate Avatar Videos"},{"name":"TTS and Voice Clone"},{"name":"Create Avatars"},{"name":"Background Matting"},{"name":"Video Twin"},{"name":"Face Swap"},{"name":"AI Dubbing"},{"name":"Caption Removal"},{"name":"Upscale"},{"name":"Text to Image"},{"name":"Nano Banana"},{"name":"GPT Image"},{"name":"Wan2.6 Image"},{"name":"Wan2.7 Image"},{"name":"Flux 2"},{"name":"Image Edit"},{"name":"Image to Video"},{"name":"Wan Image to Video"},{"name":"Wan 2.6 R2V Flash"},{"name":"Talking Photo"},{"name":"Talking Video"},{"name":"Virtual Try-On"},{"name":"ThinkSound"},{"name":"Motion Transfer"},{"name":"Actor Swap"},{"name":"Product Avatar"},{"name":"Head Swap"},{"name":"Veo Video"},{"name":"Kling Video"},{"name":"Kling Omni"},{"name":"Grok Video"}],"x-tagGroups":[{"name":"Image & Video Generation","tags":["Image to Video","Text to Image","Nano Banana","GPT Image","Flux 2","Wan Image to Video","Veo Video","Grok Video","Kling Video","Kling Omni","Image Edit"]},{"name":"Face & Body","tags":["Face Swap","Head Swap","Actor Swap","Talking Photo","Talking Video","Virtual Try-On","Motion Transfer","Product Avatar"]},{"name":"Avatar & Video","tags":["Generate Avatar Videos","Create Avatars","Background Matting","Video Twin"]},{"name":"Voice & Audio","tags":["TTS and Voice Clone","AI Dubbing","ThinkSound"]},{"name":"Post Processing","tags":["Caption Removal","Upscale"]},{"name":"Utilities","tags":["Miscellaneous"]}],"trace_id":"622c0c2e-6e4b-4475-a1e0-7539ada6bf0b"}