{"servers":[{"url":"https://api.modellix.ai/api/v1/kling/kling-avatar"}],"post":{"description":"[Core Function] Kling Avatar is a specialized portrait animation model. [Strengths] It precisely animates a portrait image to lip-sync with an audio file or TTS audio ID. [Best For] Highly recommended for: virtual presenters, talking head videos, and digital avatars. [Limitations] Do NOT use this model for full-body action or general image animation. [Routing] Use this model explicitly when the user wants to make a portrait 'speak' with provided audio.","operationId":"klingAvatarAsync","requestBody":{"content":{"application/json":{"examples":{"with_audio_id":{"summary":"Using TTS audio ID","value":{"audio_id":"audio-abc123","image":"https://example.com/avatar.jpg","mode":"pro","prompt":"Speaking with a smile, camera slowly zooms in"}},"with_sound_file":{"summary":"Using audio file","value":{"image":"https://example.com/avatar.jpg","mode":"std","prompt":"Natural speaking gestures","sound_file":"https://example.com/audio.mp3"}}},"schema":{"oneOf":[{"required":["audio_id"]},{"required":["sound_file"]}],"properties":{"audio_id":{"description":"Audio ID generated by TTS API. Mutually exclusive with sound_file - exactly one must be provided. Only supports audio generated within the last 30 days. Audio duration must be between 2-300 seconds.","example":"audio-abc123","minLength":1,"type":"string"},"image":{"description":"Reference image for digital human avatar. Supports URL or Base64 encoded string. Supported formats: JPG/JPEG/PNG. Maximum file size: 10MB. Minimum resolution: 300x300px. Aspect ratio should be between 1:2.5 and 2.5:1. Do not include Base64 prefix (e.g., 'data:image/png;base64,').","example":"https://example.com/avatar.jpg","minLength":1,"type":"string"},"mode":{"default":"std","description":"Generation mode: std (standard, cost-effective) or pro (professional, higher quality but longer processing)","enum":["std","pro"],"example":"std","type":"string"},"prompt":{"description":"Prompt for defining avatar's actions, emotions, and camera movements (1-2500 characters). Optional.","example":"Speaking with a smile, camera slowly zooms in","maxLength":2500,"minLength":1,"type":"string"},"sound_file":{"description":"Audio file URL or Base64 encoded string. Mutually exclusive with audio_id - exactly one must be provided. Supported formats: mp3/wav/m4a/aac. Maximum file size: 5MB. Audio duration must be between 2-300 seconds.","example":"https://example.com/audio.mp3","minLength":1,"type":"string"}},"required":["image"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"example":{"code":0,"data":{"get_result":{"method":"GET","url":"https://api.modellix.ai/api/v1/tasks/task-avatar001"},"model_id":"model-123","status":"pending","task_id":"task-avatar001"},"message":"success"},"schema":{"properties":{"code":{"description":"Response code, 0 indicates success","example":0,"type":"integer"},"data":{"description":"Detailed data about the submitted asynchronous task.","properties":{"get_result":{"description":"API information to query the task result","properties":{"method":{"description":"HTTP method","example":"GET","type":"string"},"url":{"description":"Full URL to query the task result","example":"https://api.modellix.ai/api/v1/tasks/task-abc123","type":"string"}},"type":"object"},"model_id":{"description":"Model ID","example":"model-123","type":"string"},"status":{"description":"Task status","enum":["pending","processing"],"example":"pending","type":"string"},"task_id":{"description":"Unique task identifier","example":"task-abc123","type":"string"}},"required":["status","task_id","model_id"],"type":"object"},"message":{"description":"Response message","example":"success","type":"string"}},"required":["code","message","data"],"type":"object"}}},"description":"Task submitted successfully"},"400":{"content":{"application/json":{"example":{"code":400,"message":"Invalid parameters: parameter 'image' is required"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message","example":"Invalid parameters: parameter 'image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Invalid request parameters"},"401":{"content":{"application/json":{"example":{"code":401,"message":"Authentication failed: invalid API key"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message","example":"Invalid parameters: parameter 'image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Unauthorized - Invalid or missing API Key"},"429":{"content":{"application/json":{"example":{"code":429,"message":"Rate limit exceeded: 100 requests per minute, retry after 60 seconds"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message","example":"Invalid parameters: parameter 'image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Too many requests - Rate limit exceeded","headers":{"X-RateLimit-Limit":{"description":"Maximum requests per minute","schema":{"example":100,"type":"integer"}},"X-RateLimit-Remaining":{"description":"Remaining quota in current window","schema":{"example":0,"type":"integer"}},"X-RateLimit-Reset":{"description":"Rate limit window reset time (Unix timestamp)","schema":{"example":1704067260,"type":"integer"}}}},"500":{"content":{"application/json":{"example":{"code":500,"message":"Internal server error"},"schema":{"properties":{"code":{"description":"Error code (equals HTTP status code)","example":400,"type":"integer"},"message":{"description":"Error message","example":"Invalid parameters: parameter 'image' is required","type":"string"}},"required":["code","message"],"type":"object"}}},"description":"Internal server error"}},"summary":"Kling Avatar","x-mint":{"href":"kling/kling-avatar"}}}