Introduction
The Dockora API lets you generate professional AI videos programmatically using Runway Gen-4 Turbo. Send an image or text prompt, get back a 10-second HD video in one of 8 cinematic styles.
Base URL
https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1| Endpoint | Method | Description |
|---|---|---|
/api-generate | POST | Start image/text/video generation task |
/api-generateGen-4 | POST | Video-to-video with Runway Gen-4 Aleph |
/api-status | GET | Poll task status & get video URL |
curl -X POST \
https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-generate \
-H "X-API-Key: dk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"mode": "image_to_video",
"image_url": "https://images.unsplash.com/photo-1523275335684-37898b6baf30?w=800",
"prompt": "Cinematic product reveal, slow zoom in",
"style": "cinematic"
}'Click Run to see the response
Add your API key above for real requests
Authentication
All requests require an API key passed in the X-API-Key header. API keys follow the format dk_xxxxxxxxxxxxxxxx.
curl -X POST https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-generate \ -H "X-API-Key: dk_your_key_here" \ -H "Content-Type: application/json"
Security: Never expose your API key in client-side code or public repos. Always call the API from your backend server.
Generate Video
POST/api-generateStart a new video generation task. Returns a task_id immediately. Poll /api-status every 4 seconds until complete.
| Parameter | Type | Required | Description |
|---|---|---|---|
mode | string | Yes | "image_to_video" or "text_to_video" |
image_url | string | No | Public URL of image (JPEG/PNG/WebP). Required for image_to_video. |
prompt | string | No | Motion description or text prompt for generation. |
style | string | No | One of: cinematic, dramatic, dreamy, energetic, minimal, vintage, corporate, luxury |
webhook_url | string | No | URL to POST when video is ready. Growth/Enterprise only. |
curl -X POST \
https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-generate \
-H "X-API-Key: dk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"mode": "image_to_video",
"image_url": "https://cdn.example.com/product.jpg",
"prompt": "Cinematic product reveal, slow zoom",
"style": "cinematic",
"webhook_url": "https://yourapp.com/webhook"
}'{
"task_id": "task_abc123xyz",
"status": "pending",
"mode": "image_to_video",
"style": "cinematic",
"credits_remaining": 249,
"poll_url": "https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-status?task_id=task_abc123xyz",
"message": "Video generation started. Poll every 4 seconds."
}Video to Video
POST/api-generateRunway Gen-4 AlephTransform an existing video using Runway Gen-4 Aleph. Unlike scratch-based generators, Gen-4 Aleph is an in-context model that preserves the structural and temporal consistency of your source video while applying targeted transformations.
Upload source video
MP4, MOV or WEBM up to 100MB. Best results with 5–30 sec clips at 720p+.
Describe transformation
Write a prompt describing the change. Be specific about style, lighting, or objects.
Get transformed video
Poll /api-status every 4s. Receive the output URL when complete.
| Parameter | Type | Required | Description |
|---|---|---|---|
mode | string | Yes | Must be "video_to_video" |
video_url | string | Yes | Public URL of source video (MP4/MOV/WEBM, max 100MB) |
prompt | string | Yes | Describe the transformation. Be specific. Max 500 chars. |
transform_style | string | No | One of: restyle, background, relight, add_objects, color_grade, cinematic |
duration | number | No | 5 or 10 (seconds). Default: 5. Cost: $0.18/sec. |
webhook_url | string | No | URL to POST when transformation is complete. Growth/Enterprise only. |
transform_style values
cinematicHollywood color grade + depth of field
restyleFull visual style transformation
backgroundReplace/transform background
relightChange lighting mood & atmosphere
add_objectsAdd new elements to the scene
color_gradeProfessional color grading preset
Pricing — $0.18 per second of output
A 5-second transformation costs $0.90 and a 10-second one costs $1.80. Credits are deducted from your plan balance. Available on all plans.
curl -X POST \
https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-generate \
-H "X-API-Key: dk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"mode": "video_to_video",
"video_url": "https://cdn.example.com/source.mp4",
"prompt": "Transform into Studio Ghibli animation style",
"transform_style": "restyle",
"duration": 5,
"webhook_url": "https://yourapp.com/webhook"
}'{
"task_id": "task_gen4_xyz789",
"status": "pending",
"mode": "video_to_video",
"model": "gen4_aleph",
"duration": 5,
"credits_remaining": 241,
"poll_url": "https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-status?task_id=task_gen4_xyz789",
"message": "Gen-4 Aleph transformation started. Poll every 4 seconds."
}Gen-4 Aleph capabilities
Check Status
GET/api-statusPoll the status of a generation task. Call every 4 seconds until status issucceeded orfailed.
pendingQueued
processingGenerating
succeededReady ✓
failedError
curl -X GET \ "https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-status?task_id=task_abc123xyz" \ -H "X-API-Key: dk_your_key_here"
{
"task_id": "task_abc123xyz",
"status": "succeeded",
"video_url": "https://runway-output.s3.amazonaws.com/abc123.mp4",
"duration": 10,
"style": "cinematic",
"completed_at": "2026-04-29T14:32:00Z"
}Webhooks
Growth+Pass a webhook_url in your generate request. Dockora will POST the result to your URL when the video is ready — no polling needed. Your endpoint must respond with HTTP 200 within 10 seconds.
# Dockora sends this POST to your webhook_url:
POST https://yourapp.com/webhook
Content-Type: application/json
{
"task_id": "task_abc123xyz",
"status": "succeeded",
"video_url": "https://runway-output.s3.amazonaws.com/abc123.mp4",
"mode": "image_to_video",
"style": "cinematic",
"completed_at": "2026-04-29T14:32:00Z"
}Error Codes
All errors return a JSON body with error,code and afix suggestion.
| Code | Name |
|---|---|
| 401 | Unauthorized |
| 402 | Payment Required |
| 403 | Forbidden |
| 422 | Unprocessable Entity |
| 429 | Too Many Requests |
| 500 | Internal Server Error |
| 503 | Service Unavailable |
{
"error": "No credits remaining",
"code": 402,
"fix": "Upgrade your plan or wait for monthly reset",
"credits_remaining": 0,
"plan": "starter"
}Rate Limits
Rate limits are enforced per API key. Exceeding limits returns HTTP 429. All responses include rate limit headers.
| Plan | Req/min | Req/day | Concurrent | Queue |
|---|---|---|---|---|
| Starter | 10 | 50 | 2 | Standard |
| Growth | 30 | 300 | 5 | Priority |
| Enterprise | 100 | 2000 | 20 | Dedicated |
Response Headers
X-RateLimit-LimitMax requests per minuteX-RateLimit-RemainingRequests remaining this minuteX-RateLimit-ResetUnix timestamp when limit resetsX-Credits-RemainingMonthly credits remainingReady to integrate?
Get your API key and start generating videos in minutes.