{"openapi":"3.0.3","info":{"title":"Vidom API","description":"B2B API for AI video and image generation. For a complete, LLM-readable integration guide (quickstart, every endpoint, pricing, webhooks), fetch /llms.txt. Raw machine-readable spec: /openapi.json.","version":"1.0.0"},"components":{"securitySchemes":{"apiKey":{"type":"apiKey","name":"X-API-Key","in":"header"}},"schemas":{}},"paths":{"/v1/video/image-to-video":{"post":{"operationId":"post_v1_video_image-to-video","summary":"Image to Video","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"image_url":{"type":"string","description":"Source image to animate: an https URL or a base64 data URI (max ~22MB)."},"prompt":{"type":"string","maxLength":2500,"default":"","description":"Optional text prompt guiding the motion. Max 2500 chars."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"kling","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."},"duration":{"type":"integer","minimum":1,"maximum":15,"default":5,"description":"Clip length in seconds. Allowed values depend on the model/tier and audio — see the capabilities block on GET /v1/products."},"audio":{"type":"boolean","default":false,"description":"Generate native audio (where the model supports it)."},"disable_safety_checker":{"type":"boolean","default":false,"description":"Vidom only: false (default) keeps safety on (SFW); true allows adult (18+). Minors/illegal are always blocked."},"multi_shot":{"type":"boolean","default":false,"description":"Accepted for symmetry only; multi_shot is supported on text-to-video, rejected here if true."}},"required":["image_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/text-to-video":{"post":{"operationId":"post_v1_video_text-to-video","summary":"Text to Video","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"prompt":{"type":"string","minLength":1,"maxLength":2500,"description":"Text prompt describing the video. Max 2500 chars."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"kling","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."},"duration":{"type":"integer","minimum":1,"maximum":15,"default":5,"description":"Clip length in seconds. Allowed values depend on the model/tier and audio — see the capabilities block on GET /v1/products."},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1"],"default":"16:9","description":"Output aspect ratio."},"audio":{"type":"boolean","default":false,"description":"Generate native audio (where the model supports it)."},"disable_safety_checker":{"type":"boolean","default":false,"description":"Vidom only: false (default) keeps safety on (SFW); true allows adult (18+). Minors/illegal are always blocked."},"multi_shot":{"type":"boolean","default":false,"description":"Native multi-shot; requires provider=vidom and model=vidom-max."}},"required":["prompt"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/effects":{"post":{"operationId":"post_v1_video_effects","summary":"Video Effects","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"image_url":{"type":"string","nullable":true,"default":null,"description":"Single input image (https URL or base64 data URI); provide this or `images`."},"images":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"nullable":true,"default":null,"description":"1-10 input images for effects that take multiple; provide this or `image_url`."},"effect":{"type":"string","minLength":1,"description":"Effect key to apply; see GET /v1/effects for the catalog."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"kling","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."}},"required":["effect"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/reframe":{"post":{"operationId":"post_v1_video_reframe","summary":"Video Reframe","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"video_url":{"type":"string","description":"Source video to reframe (https URL or base64 data URI); up to 30s / 100MB."},"aspect_ratio":{"type":"string","enum":["1:1","3:4","4:3","9:16","16:9","9:21","21:9"],"description":"Target aspect ratio; output is always 720p."}},"required":["video_url","aspect_ratio"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/frames":{"post":{"operationId":"post_v1_video_frames","summary":"Frame-to-Frame Video","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"start_image_url":{"type":"string","description":"Start frame (https URL or base64 data URI) the video morphs from."},"end_image_url":{"type":"string","description":"End frame (https URL or base64 data URI) the video morphs to."},"prompt":{"type":"string","maxLength":2500,"default":"","description":"Optional text prompt guiding the morph. Max 2500 chars."},"model":{"type":"string","nullable":true,"default":null,"description":"Quality tier: frames-fast (1080p, silent) or frames-max (1080p, optional audio); null = default."},"duration":{"type":"integer","default":5,"description":"Clip length in seconds. Allowed values depend on the model/tier and audio — see the capabilities block on GET /v1/products."},"audio":{"type":"boolean","default":false,"description":"Generate native audio; requires frames-max."}},"required":["start_image_url","end_image_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/upscale":{"post":{"operationId":"post_v1_video_upscale","summary":"Video Upscale","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"video_url":{"type":"string","description":"Source video to upscale (https URL or base64 data URI)."},"resolution":{"type":"string","enum":["1080p","4k"],"default":"1080p","description":"Target output resolution."},"frame_rate":{"type":"number","enum":[30,60],"default":30,"description":"Target output frame rate."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"replicate","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."}},"required":["video_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/edit":{"post":{"operationId":"post_v1_video_edit","summary":"Video Edit","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"video_url":{"type":"string","description":"Source video to edit (https URL or base64 data URI); 3-15.5s, max 200MB. Its own audio is preserved."},"prompt":{"type":"string","minLength":1,"maxLength":2500,"description":"Text instruction describing the edit. Max 2500 chars."},"model":{"type":"string","nullable":true,"default":null,"description":"Quality tier: edit-fast (720p) or edit-max (1080p); null = default."}},"required":["video_url","prompt"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/restyle":{"post":{"operationId":"post_v1_video_restyle","summary":"Restyle Video","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"video_url":{"type":"string","description":"Source video to restyle (https URL or base64 data URI); priced per second of the source."},"style":{"type":"string","minLength":1,"description":"Preset style key; see GET /v1/styles for the catalog."},"model":{"type":"string","enum":["fast","max"],"default":"fast","description":"Quality tier: fast (720p) or max (1080p)."}},"required":["video_url","style"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/motion-control":{"post":{"operationId":"post_v1_video_motion-control","summary":"Motion Control","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"image_url":{"type":"string","description":"Character image to animate (https URL or base64 data URI)."},"video_url":{"type":"string","description":"Reference video supplying the motion (https URL or base64 data URI)."},"prompt":{"type":"string","maxLength":2500,"default":"","description":"Optional text prompt guiding the result. Max 2500 chars."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"kling","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."},"character_orientation":{"type":"string","enum":["image","video"],"default":"image","description":"Whether the character's orientation follows the image or the reference video."},"audio":{"type":"boolean","default":true,"description":"Generate native audio (where the model supports it)."}},"required":["image_url","video_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/extend":{"post":{"operationId":"post_v1_video_extend","summary":"Extend Video","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"video_url":{"type":"string","description":"Source video to extend (https URL or base64 data URI); the continuation starts from its last frame."},"prompt":{"type":"string","maxLength":2500,"default":"","description":"Optional text prompt guiding the continuation. Max 2500 chars."},"model":{"type":"string","nullable":true,"default":null,"description":"Quality tier: vidom-fast (default) or vidom-max."},"duration":{"type":"integer","minimum":1,"maximum":15,"default":5,"description":"Length of the added continuation in seconds. Allowed values depend on the tier and audio — see the capabilities block on GET /v1/products."},"audio":{"type":"boolean","default":false,"description":"Generate native audio for the continuation."},"disable_safety_checker":{"type":"boolean","default":false,"description":"Vidom only: false (default) keeps safety on (SFW); true allows adult (18+). Minors/illegal are always blocked."}},"required":["video_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/avatar":{"post":{"operationId":"post_v1_video_avatar","summary":"Avatar","tags":["Video"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"image_url":{"type":"string","description":"Image of the person to animate; jpg/png, <=10MB, >=300px, aspect ratio 1:2.5 to 2.5:1."},"audio_url":{"type":"string","description":"Speech audio to perform; mp3/wav/m4a/aac, <=5MB, 2-300s. Output length and price follow the audio."},"prompt":{"type":"string","maxLength":2500,"default":"","description":"Optional creative direction (actions, emotions, camera); auto-generated when omitted."},"mode":{"type":"string","enum":["std","pro"],"default":"std","description":"Quality mode: std (cost-effective) or pro (higher quality, 2x price)."}},"required":["image_url","audio_url"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/video/{generationId}":{"get":{"operationId":"get_v1_video__generationId","summary":"Get Generation","tags":["Video"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"generationId","required":true}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"delete":{"operationId":"delete_v1_video__generationId","summary":"Cancel Generation","tags":["Video"],"parameters":[{"schema":{"type":"string"},"in":"path","name":"generationId","required":true}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/image/generate":{"post":{"operationId":"post_v1_image_generate","summary":"Generate Image","tags":["Image"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"prompt":{"type":"string","minLength":1,"maxLength":2500,"description":"Text prompt describing the image. Max 2500 chars."},"aspect_ratio":{"type":"string","enum":["1:1","16:9","9:16","4:3","3:4","3:2","2:3"],"default":"1:1","description":"Output aspect ratio; supported values are advertised on GET /v1/products."},"provider":{"type":"string","enum":["kling","veo","replicate","vidom"],"default":"replicate","description":"Generation provider."},"model":{"type":"string","nullable":true,"default":null,"description":"Model/tier name; null selects the provider default."},"disable_safety_checker":{"type":"boolean","default":false,"description":"Vidom only: false (default) keeps safety on (SFW); true allows adult (18+). Minors/illegal are always blocked."},"sync":{"type":"boolean","default":false,"description":"When true, hold the connection and return status=completed with output.url (falls back to async if it runs long)."}},"required":["prompt"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/image/restyle":{"post":{"operationId":"post_v1_image_restyle","summary":"Restyle Image","tags":["Image"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","format":"uri","nullable":true,"default":null,"description":"HTTPS URL we POST to when the generation finishes (skip polling)."},"image_url":{"type":"string","description":"Source image to restyle (https URL or base64 data URI); runs synchronously."},"style":{"type":"string","minLength":1,"description":"Preset style key; see GET /v1/styles for the catalog."},"aspect_ratio":{"type":"string","enum":["1:1","16:9","9:16","4:3","3:4","3:2","2:3"],"description":"Omit to preserve the input's shape; set to force an output aspect ratio."}},"required":["image_url","style"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique generation ID; use it to poll GET /v1/generations/:id."},"status":{"type":"string","enum":["pending","processing","completed","failed","cancelled"],"description":"Lifecycle state: pending, processing, completed, failed, or cancelled."},"provider":{"type":["null","string"],"default":null,"description":"Provider that fulfilled the generation."},"model":{"type":["null","string"],"default":null,"description":"Model/tier used."},"type":{"type":"string","enum":["image-to-video","text-to-video","text-to-image","effect","lip-sync","reframe","frames","upscale","video-edit","extend","motion-control","avatar","restyle-video","restyle-image"],"description":"Feature that produced this generation."},"parent_generation_id":{"type":["null","string"],"default":null,"description":"Source generation ID this was derived from (e.g. an extend), if any."},"prompt":{"type":["null","string"],"default":null,"description":"The prompt as submitted by the client."},"translated_prompt":{"type":["null","string"],"default":null,"description":"English translation of the prompt, when translation ran."},"api_key_id":{"type":["null","string"],"default":null,"description":"ID of the API key that created this."},"image_url":{"type":["null","string"],"default":null,"description":"Primary input image URL, for image-based features."},"output":{"anyOf":[{"type":"object","properties":{"url":{"type":"string","description":"Download URL for the generated media."},"type":{"type":"string","default":"video/mp4","description":"MIME type of the output."},"duration_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Duration of the output in seconds, if known."},"width":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output width in pixels, if known."},"height":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Output height in pixels, if known."},"expires_at":{"type":["string","null"],"default":null,"description":"ISO timestamp after which the download URL expires, if applicable."}},"required":["url"],"additionalProperties":false},{"type":"null"}],"default":null,"description":"The generated result; null until status=completed."},"error":{"anyOf":[{"anyOf":[{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable failure reason."}},"required":["code","message"],"additionalProperties":false},{"type":"string"}]},{"type":"null"}],"default":null,"description":"Failure details; null unless status=failed."},"remote_id":{"type":["null","string"],"default":null,"description":"Upstream provider's job ID."},"thumbnail_url":{"type":["null","string"],"default":null,"description":"URL of a preview thumbnail, when available."},"cost":{"type":"number","default":0,"description":"Credits charged for this generation."},"credits_charged":{"type":"number","default":0,"description":"Credits charged for this generation."},"created_at":{"type":"string","description":"ISO timestamp when the generation was created."},"processing_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when processing started, if reached."},"completed_at":{"type":["null","string"],"default":null,"description":"ISO timestamp when the generation finished, if reached."},"estimated_duration_seconds":{"type":"integer","default":180,"description":"Rough expected wall-clock time to completion, in seconds."},"webhook_url":{"type":["null","string"],"default":null,"description":"Callback URL notified when the generation finishes, if provided."},"audio":{"type":"boolean","default":false,"description":"Whether native audio was generated."},"input":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}],"default":null,"description":"The original request parameters as submitted."},"input_files":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}],"default":null,"description":"Our durable copies of the request's input media, keyed by request field."},"classification":{"anyOf":[{"type":"string","enum":["sfw","nsfw","nsfw_blocked"]},{"type":"null"}],"default":null,"description":"Vidom classifier verdict: sfw, nsfw (adult), or nsfw_blocked; null for non-vidom."}},"required":["id","status","type","created_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/products":{"get":{"operationId":"get_v1_products","summary":"List available products and pricing","tags":["Products"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"feature","required":false}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","description":"Feature this product prices (e.g. text-to-video)."},"model":{"type":["null","string"],"description":"Model/tier name, or null for the feature default."},"variant":{"type":["null","string"],"description":"Pricing variant (e.g. audio), or null."},"default":{"type":"boolean","description":"Whether this is the default product for the feature."},"price":{"type":"object","properties":{"credits":{"type":"number","description":"Credit price in the unit given by `per`."},"per":{"type":"string","description":"Unit the credit price applies to (e.g. second, 5 seconds, image)."}},"required":["credits","per"],"additionalProperties":false},"capabilities":{"anyOf":[{"type":"object","properties":{"audio":{"type":"boolean"},"durations":{"anyOf":[{"type":"array","items":{"type":"number"}},{"type":"null"}]},"durations_with_audio":{"anyOf":[{"type":"array","items":{"type":"number"}},{"type":"null"}]},"aspect_ratios":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"resolutions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"frame_rates":{"anyOf":[{"type":"array","items":{"type":"number"}},{"type":"null"}]},"input":{"anyOf":[{"type":"object","properties":{"min_seconds":{"type":"number"},"max_seconds":{"type":"number"},"max_mb":{"type":"number"}},"additionalProperties":false},{"type":"null"}]}},"required":["audio","durations","durations_with_audio","aspect_ratios","resolutions","frame_rates","input"],"additionalProperties":false},{"type":"null"}]}},"required":["feature","model","variant","default","price","capabilities"],"additionalProperties":false}}}}}}}},"/v1/effects":{"get":{"operationId":"get_v1_effects","summary":"List available video effects","tags":["Effects"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"category","required":false},{"schema":{"type":"string"},"in":"query","name":"tag","required":false}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object","properties":{"credits":{"type":"number"}},"required":["credits"],"additionalProperties":false},"output":{"type":"object","properties":{"duration_seconds":{"type":["null","number"]},"resolution":{"type":["null","string"]},"aspect_ratio":{"type":["null","string"]}},"required":["duration_seconds","resolution","aspect_ratio"],"additionalProperties":false},"input":{"type":"object","properties":{"count":{"type":"integer"},"subject":{"type":["null","string"]},"constraint":{"type":["null","string"]},"hints":{"type":"array","items":{"type":"string"}}},"required":["count","subject","constraint","hints"],"additionalProperties":false},"preview":{"type":"object","properties":{"image":{"type":["null","string"]},"image_heif":{"type":["null","string"]},"video":{"type":["null","string"]},"video_hevc":{"type":["null","string"]},"thumb":{"type":["null","string"]},"thumb_heif":{"type":["null","string"]},"has_audio":{"type":"boolean"},"sample_inputs":{"type":"array","items":{"type":"string"}}},"required":["image","image_heif","video","video_hevc","thumb","thumb_heif","has_audio","sample_inputs"],"additionalProperties":false},"first_seen":{"type":["null","string"]}},"required":["key","name","category","tags","pricing","output","input","preview","first_seen"],"additionalProperties":false}}}}}}}},"/v1/styles":{"get":{"operationId":"get_v1_styles","summary":"List available restyle presets","tags":["Styles"],"parameters":[{"schema":{"type":"string"},"in":"query","name":"category","required":false}],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"category":{"type":["null","string"]},"pricing":{"type":"object","properties":{"fast":{"type":"number"},"max":{"type":"number"},"per":{"type":"string"}},"required":["fast","max","per"],"additionalProperties":false},"preview":{"type":"object","properties":{"image":{"type":"string"},"image_heif":{"type":"string"},"video":{"type":"string"},"video_hevc":{"type":"string"},"thumb":{"type":"string"},"thumb_heif":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"}},"required":["image","image_heif","video","video_hevc","thumb","thumb_heif","width","height"],"additionalProperties":false}},"required":["key","name","category","pricing","preview"],"additionalProperties":false}}}}}}}},"/v1/uploads":{"post":{"operationId":"post_v1_uploads","summary":"Create a direct-to-R2 upload URL","tags":["Uploads"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content_type":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/heic","image/gif","video/mp4","video/quicktime","video/webm","audio/mpeg","audio/wav","audio/mp4","audio/aac"],"description":"MIME type of the file you'll upload; must match the PUT's Content-Type header."},"size":{"type":"integer","minimum":1,"maximum":209715200,"description":"Exact file size in bytes; must match the PUT's Content-Length. Max 200MB."}},"required":["content_type","size"],"additionalProperties":false}}}},"security":[{"apiKey":[]}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"upload_url":{"type":"string"},"file_url":{"type":"string"},"expires_at":{"type":"string"}},"required":["upload_url","file_url","expires_at"],"additionalProperties":false}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable error description."}},"required":["code","message"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/v1/credits":{"get":{"operationId":"get_v1_credits","summary":"Get your remaining credit balance","tags":["Account"],"security":[{"apiKey":[]}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"credits":{"type":"number","description":"Current credit balance for the account."}},"required":["credits"],"additionalProperties":false}}}}}}}}}