Use the OpenAI Videos protocol with video models configured on this site. Pass the site's public model code as model.

Endpoints

MethodPathPurpose
POST/v1/videosCreate an asynchronous video task
GET/v1/videos/{video_id}Retrieve its local status
GET/v1/videos/{video_id}/contentStream the completed video

All endpoints require Authorization: Bearer <site API key>. Retrieve and download with the same API key that created the task.

Create a video

curl https://51kik.com/v1/videos \
  -H 'Authorization: Bearer sk-xxxxxxxx' \
  -H 'Content-Type: application/json' \
  -d '{"model":"doubao-seedance-1-0-pro-250528","prompt":"A golden retriever running across a field","seconds":"8","size":"1280x720"}'

model and prompt are required. seconds defaults to "4"; size defaults to "720x1280". Duration must be a positive integer and size must be WIDTHxHEIGHT. The selected model determines which durations and dimensions are supported.

For image-guided JSON requests, use input_reference: {"image_url":"https://example.com/frame.png"} or an image data URL. Multipart requests can upload one PNG, JPEG, or WebP with -F 'input_reference=@frame.png', up to 20 MiB. Native video drivers reject file_id. Pass native driver options in upstream_options; its duration must agree with seconds.

Responses use the OpenAI video object with an opaque local id and queued, in_progress, completed, or failed status. Native drivers without real progress telemetry report 0 while pending or running and 100 after completion.

curl https://51kik.com/v1/videos/VIDEO_ID \
  -H 'Authorization: Bearer sk-xxxxxxxx'

curl https://51kik.com/v1/videos/VIDEO_ID/content \
  -H 'Authorization: Bearer sk-xxxxxxxx' --output video.mp4

Routing and billing

Native video routing is tried first, reusing Seedance, Bailian, MiniMax, same-program providers, and their existing billing. Only a missing model or unavailable unbound candidates may enter general model routing and call the configured upstream using the OpenAI Videos protocol. Authentication, balance, model allowlist, strict-group and provider-binding errors never trigger fallback. Native execution failures do not cross into the general branch. After an asynchronous creation is submitted, errors, including HTTP 5xx and connection loss, never trigger another candidate submission. Failures after submission include x-should-retry: false to prevent the OpenAI SDK from replaying the creation request.

General fallback uses the existing general consumption pipeline and records only token usage actually returned by the upstream. Missing usage does not become fabricated tokens or per-second charges. Cached input and reasoning tokens retain their separate prices in the existing billing formula. Invalid upstream accounting fails the task while preserving the original response. Configure models requiring duration or modality-token billing under native video drivers.

Background polling and a durable usage outbox continue after task creation even if the client stops polling. Retrieval and downloading do not generate or bill again. General tasks keep the original upstream URL and credential source; deleting or rotating that credential produces an error instead of switching credentials.

Supported scope

This entry point implements creation, retrieval, and video downloading. Native drivers support only variant=video; general upstreams may also support thumbnail and spritesheet. Downloads allow the configured upstream's own origin; other result URLs and cross-origin redirects must resolve to public addresses. Listing, deletion, editing, extensions, characters, and Batch are outside the current scope. Artifact availability remains subject to the upstream provider's retention period.