dockora.aiDeveloper Portal

API Reference & Documentation

Everything you need to integrate Dockora's AI video generation into your app. REST API · Webhooks · SDKs · Playground.

API Operational
Get API Key

Base URL

supabase.co/functions/v1

Auth

X-API-Key header

Format

JSON

Version

v1.3.0

Overview

Dockora API lets you generate professional AI videos programmatically using Runway Gen-4 Turbo.

Image → Video

Animate any product photo into a 10-second cinematic video.

Text → Video

Generate videos from text prompts with full creative control.

Webhooks

Get notified automatically when your video is ready.

Base URL

https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1
MethodEndpointDescription
POST/api-generateStart a video generation task
GET/api-statusPoll task status & get video URL

Quick Start

From zero to your first generated video in under 5 minutes.

1

Get your API Key

Request an API key from the API for Business page. You'll receive it via email within 24 hours. Format: dk_xxxxxxxxxxxxxxxx

2

Make your first request

Send a POST to /api-generate with your image URL, prompt and style. You'll get back a task_id immediately.

3

Poll for the result

Every 4 seconds, GET /api-status?task_id=xxx until status is "succeeded". Then download from video_url.

Complete Quick StartcURL
# 1. Generate a video
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"
  }'

# 2. Poll for result (every 4 seconds)
curl -X GET \
  "https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-status?task_id=task_abc123" \
  -H "X-API-Key: dk_your_key_here"

Authentication

All API requests require authentication via your API key.

Option 1 — Header (Recommended)

X-API-Key: dk_your_key_here

Option 2 — Bearer Token

Authorization: Bearer dk_your_key_here

Security Warning

Never expose your API key in client-side code or public repositories. Always make API calls from your backend server. Rotate your key immediately if compromised.

POST /api-generate

POST/api-generate

Start a new video generation task. Returns a task_id for polling.

Request Body

ParameterTypeRequired
modestringYes
image_urlstringNo
promptstringNo
stylestringNo
webhook_urlstringNo

Available Styles

"cinematic""dramatic""dreamy""energetic""minimal""vintage""corporate""luxury"

Response 200

200 OK
{
  "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."
}
Request ExamplecURL
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": "Slow cinematic zoom, golden hour lighting",
    "style": "cinematic",
    "webhook_url": "https://yourapp.com/webhooks/video-ready"
  }'

GET /api-status

GET/api-status

Poll the status of a video generation task. Call every 4 seconds until status is 'succeeded' or 'failed'.

Query Parameters

ParameterTypeRequired
task_idstringYes

Status Values

pendingQueued, not started yet
processingRunway is generating frames
succeededVideo ready at video_url
failedGeneration failed, check error

Response — Processing

200 Processing
{
  "task_id": "task_abc123xyz",
  "status": "processing",
  "progress": 45,
  "message": "Generating video frames..."
}

Response — Succeeded

200 Succeeded
{
  "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",
  "message": "Video ready. Download or stream from video_url."
}
Request ExamplecURL
curl -X GET \
  "https://nhvqzogqwlrnzigmimpg.supabase.co/functions/v1/api-status?task_id=task_abc123xyz" \
  -H "X-API-Key: dk_your_key_here"

Webhooks

Instead of polling, receive an automatic POST callback when your video is ready. Available on Growth and Enterprise plans.

Pass a webhook_url in your /api-generate request. When the video is ready, Dockora will POST the result to your URL. Your endpoint must respond with HTTP 200 within 10 seconds.

Webhook Payload

{
  "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"
}
Webhook Handler ExamplecURL
# Dockora POSTs this payload to your webhook_url when video is ready:
# {
#   "task_id": "task_abc123xyz",
#   "status": "succeeded",
#   "video_url": "https://runway-output.s3.amazonaws.com/video.mp4",
#   "mode": "image_to_video",
#   "style": "cinematic",
#   "completed_at": "2026-04-29T14:32:00Z"
# }
# Your endpoint must return HTTP 200 within 10 seconds.

Error Codes

All errors return a JSON body with code, message and a fix suggestion.

CodeName
401Unauthorized
402Payment Required
403Forbidden
422Unprocessable Entity
429Too Many Requests
500Internal Server Error
503Service Unavailable

Error Response Format

{
  "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.

PlanReq / minReq / dayConcurrentQueue
Starter10502Standard
Growth303005Priority
Enterprise100200020Dedicated

Rate Limit Headers

X-RateLimit-LimitMax requests per minute
X-RateLimit-RemainingRequests remaining this minute
X-RateLimit-ResetUnix timestamp when limit resets
X-Credits-RemainingMonthly credits remaining

SDKs & Libraries

Official and community SDKs to speed up your integration.

Python

Coming Soon

Official Python SDK with async support, automatic polling and type hints.

pip install dockora

Node.js

Coming Soon

Official Node.js SDK with Promise/async-await, TypeScript types included.

npm install @dockora/sdk

PHP

Community

Community-maintained PHP SDK. Supports Laravel and Symfony.

composer require dockora/php-sdk

REST (OpenAPI)

Available

Full OpenAPI 3.0 spec. Import into any REST client for instant testing.

Import into Postman / Insomnia

Postman Collection

Pre-configured collection with all endpoints, example requests and environment variables.

API Playground

Interactive

Build and test your request visually. The generated cURL updates in real time.

Generated cURLcURL
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"
}'

Click "Run Request" to see the simulated response

Changelog

API version history and release notes.

v1.3.0feature2026-04-15
  • Added webhook_url parameter to /api-generate
  • Email notification when video is ready
  • New style: "luxury" added
  • Credits alert at 80% and 95% usage
v1.2.0feature2026-03-01
  • Added text_to_video mode
  • New styles: corporate, vintage
  • Improved error messages with fix suggestions
  • Rate limit headers in all responses
v1.1.0improvement2026-02-10
  • Reduced average generation time by 40%
  • Added credits_remaining to all responses
  • Bearer token auth support added
  • Improved webhook reliability
v1.0.0launch2026-01-20
  • Initial public API launch
  • POST /api-generate endpoint
  • GET /api-status endpoint
  • 6 cinematic styles
  • image_to_video mode

Ready to build?

Get your API key and start generating videos in minutes. No setup fees, cancel anytime.

Tienes dudas? Revisa las preguntas frecuentes o habla con nosotros

We use cookies

We use essential cookies to make our site work, and optional cookies for analytics and personalized ads (Google AdSense). · Cookie Policy