Start AI Lab run
Start an asynchronous AI Lab run. The body is the tool's input: read its inputSchema from GET /v1/ai-lab/tools/{tool}.
File fields take an upload ID from POST /v1/creative-studio/media-uploads (presigned PUT) or the URL of one of your earlier outputs.
Requires an API key with the creative:generate scope and an active plan (same rule as the dashboard: pay-per-use credits alone do not unlock generation). Credits are charged when the run starts; outputs that fail are refunded.
The response is the run with its outputs still processing. Poll GET /v1/ai-lab/runs/{id}.
Authorization
bearerAuth API key authentication. Create a key in your Account settings.
Pass the full key in the Authorization header:
Authorization: Bearer vsl_...Keys are shown only once at creation. Treat them like passwords.
In: header
Path Parameters
AI Lab tool identifier.
Value in
- "recast"
- "reshoot"
- "erase"
- "extend"
- "edit"
- "recreate"
- "thumbnail"
- "upscale"
- "lipsync"
- "voice"
- "translate"
- "background"
- "sound"
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
The tool's input. Each tool has its own fields: read its inputSchema from GET /v1/ai-lab/tools/{tool}.
File fields take an upload ID from POST /v1/creative-studio/media-uploads or the URL of one of your earlier outputs.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/ai-lab/recast/runs" \ -H "Content-Type: application/json" \ -d '{ "video": "UPLOAD_ID_FROM_MEDIA_UPLOADS", "resolution": "1080p", "fps": 30 }'{ "id": "cmh4x2k9p0001ab12cdef3456", "tool": "upscale", "title": "Upscale", "status": "processing", "credits": 5.3, "createdAt": "2026-10-24T10:15:00.000Z", "items": [ { "id": "cmh4x2k9p0001ab12cdef3456", "status": "processing", "type": "video", "url": null, "label": null, "error": null, "credits": 5.3, "createdAt": "2026-10-24T10:15:00.000Z" } ]}{ "error": { "code": "validation_error", "message": "resolution: Invalid option: expected one of \"720p\"|\"1080p\"|\"4k\"" }}{ "error": { "code": "missing_api_key", "message": "string" }}{ "error": { "code": "subscription_required", "message": "An active Videoslash plan is required to generate. Subscribe to keep creating: https://www.videoslash.com/dashboard/billing." }}{ "error": { "code": "missing_api_key", "message": "string" }}{ "error": { "code": "missing_api_key", "message": "string" }}{ "error": { "code": "rate_limited", "message": "Too many runs started. Wait a minute and try again." }}{ "error": { "code": "missing_api_key", "message": "string" }}