Videoslash API
Tools

Create Creative Studio generation

Start an async Creative Studio image or video job. Returns id + status=processing quickly — do not wait for pixels in this call. In Claude Connectors an inline MCP App widget shows loading then the image/video; do NOT paste CDN links, markdown images, or use “show/visualize file” tools for the result — the widget is the preview. Wait ~8–15s then call get_creative_generation sparingly (5–10s apart) until status is completed or failed. Workflow: (1) list_creative_models if model unknown, (2) get_creative_model when you need exact parameter names, (3) confirm the plan with the user if any detail (scope, aspect ratio, model choice) was not fully specified by them, (4) create with modelId + prompt + parameters, (5) poll sparingly. Call this ONCE per intended output — if the user provided several reference images and wants a single combined result, use one supportsMultiReferenceMedia model with all images in one mediaUrls entry instead of calling this once per image; only generate multiple separate outputs if the user explicitly asked for that. mediaUrls may include prior outputUrl values for image-to-video / edit chains. Attached/local files: prefer omitting mediaUploads and using mediaIntent (for optional params the user clearly wants) so the Creative Studio widget can collect the file in-browser without base64 through your context; coding agents with network access may use request_creative_media_upload (presigned PUT) or upload_creative_media only when bytes never surface in your response. IMPORTANT — optional media params: get_creative_model often marks image/video reference params as required=false (the model can also run as pure text-to-X). That does NOT mean you can skip a param the user clearly wants used — if they say "use this exact image" / "edit this photo" and you have no bytes for it, you MUST include its name in mediaIntent, or the job silently runs text-only and produces a fabricated result that only superficially resembles their photo instead of erroring. Requires creative:generate scope.

Create Creative Studio generation

Tool name: create_creative_generation

Required scope: creative:generate

Start an async Creative Studio image or video job. Returns id + status=processing quickly — do not wait for pixels in this call. In Claude Connectors an inline MCP App widget shows loading then the image/video; do NOT paste CDN links, markdown images, or use “show/visualize file” tools for the result — the widget is the preview. Wait ~8–15s then call get_creative_generation sparingly (5–10s apart) until status is completed or failed. Workflow: (1) list_creative_models if model unknown, (2) get_creative_model when you need exact parameter names, (3) confirm the plan with the user if any detail (scope, aspect ratio, model choice) was not fully specified by them, (4) create with modelId + prompt + parameters, (5) poll sparingly. Call this ONCE per intended output — if the user provided several reference images and wants a single combined result, use one supportsMultiReferenceMedia model with all images in one mediaUrls entry instead of calling this once per image; only generate multiple separate outputs if the user explicitly asked for that. mediaUrls may include prior outputUrl values for image-to-video / edit chains. Attached/local files: prefer omitting mediaUploads and using mediaIntent (for optional params the user clearly wants) so the Creative Studio widget can collect the file in-browser without base64 through your context; coding agents with network access may use request_creative_media_upload (presigned PUT) or upload_creative_media only when bytes never surface in your response. IMPORTANT — optional media params: get_creative_model often marks image/video reference params as required=false (the model can also run as pure text-to-X). That does NOT mean you can skip a param the user clearly wants used — if they say "use this exact image" / "edit this photo" and you have no bytes for it, you MUST include its name in mediaIntent, or the job silently runs text-only and produces a fabricated result that only superficially resembles their photo instead of erroring. Requires creative:generate scope.

Parameters

NameTypeRequiredDescription
modelIdstringrequiredPublic model ID from list_creative_models. Never invent model IDs. If the user did not name a model, call list_creative_models first, pick the best fit, and tell the user which modelId you chose.
promptstringoptionalGeneration prompt. Required for most text-to-image/video models. Keep it concrete and visual.
parametersobjectoptionalModel-specific settings from get_creative_model (aspect_ratio, duration, mode, generate_audio, etc.). Prefer values the user asked for; otherwise use sensible defaults from the model schema.
mediaUrlsobjectoptionalReference media as HTTPS URLs keyed by media parameter name (for example start_image). Prefer prior Videoslash outputUrl values on cdn.videoslash.com. Hotlinked CDN URLs from other sites may fail; ask the user to upload when download fails.
mediaUploadsobjectoptionalReference media by uploadId from request_creative_media_upload (after PUTing bytes to the presigned URL) or upload_creative_media (inline base64, no PUT needed).
mediaIntentarray of stringoptionalMedia parameter names (from get_creative_model) the user clearly wants filled from a file they attached in this chat, when you have no literal byte access to it and are therefore omitting it from mediaUrls/mediaUploads. Required media params are already caught automatically — this is only for OPTIONAL media params (for example an image-edit model's image_input marked required=false, which otherwise silently runs text-only and produces a plausible-looking but fabricated result instead of editing the user's actual photo). Only include a name here if the user's own words imply using that specific attached file (e.g. 'use this exact image', 'edit this photo') — never for a generic style-reference param they never mentioned.

On this page