Skip to content
llms.party

Video generation

Video is an asynchronous task API on the same key, under /v1/videos. The shape follows OpenAI's video routes:

  1. POST /v1/videos creates a job and returns its id immediately.
  2. GET /v1/videos/{id} is polled until the job finishes.
  3. Download the finished clip from GET /v1/videos/{id}/content.

The gateway serves two video families:

GroupProviderResolutionsDuration
minimax-h3MiniMax768P, 2K4–15 s
minimax-h3-maxMiniMax480P, 768P5–15 s
seedanceBytePlus480p, 720p, 1080p4–30 s

Try it

Generate a video

POST /v1/videos

MiniMax H3 · billed per second

Create a job

curl -sS "https://llms.party/v1/videos" \
  -H "Authorization: Bearer $LLMS_PARTY_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "minimax-h3",
    "prompt": "A glass city at sunset, slow aerial push-in.",
    "seconds": 4,
    "resolution": "768P",
    "ratio": "16:9"
  }'
{
  "id": "video_...",
  "object": "video",
  "model": "minimax-h3",
  "status": "queued",
  "progress": 0,
  "created_at": 1760000000
}
FieldValues
modelA video group or one of its aliases.
promptText description of the shot.
secondsH3: 4–15. H3-Max: 5–15. Seedance: 4–30.
resolutionGroup-specific; see the table above (Seedance is lowercase).
ratio16:9, 9:16, 1:1, 4:3, 3:4, 21:9.
input_referenceOptional image URL for image-to-video.

Poll

curl -sS "https://llms.party/v1/videos/$VIDEO_ID" \
  -H "Authorization: Bearer $LLMS_PARTY_KEY"

Statuses are normalized across providers: the gateway maps running to in_progress and succeeded to completed, but older payloads may still say succeeded. Terminal states are completed, failed and cancelled.

StatusMeaning
queuedAccepted, not started upstream yet.
in_progressRendering; progress may be populated.
completedReady to download.
failederror.message explains why.
cancelledCancelled upstream.

Polling every 2–5 s is plenty; renders take tens of seconds to a few minutes.

Download

curl -sS "https://llms.party/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $LLMS_PARTY_KEY" \
  -o clip.mp4

The response is video/mp4. The gateway streams the clip from the provider as it downloads (Range requests are supported), so large 720p/1080p files are not buffered.

MiniMax H3

MiniMax H3 and H3-Max render on the MiniMax platform and meter per second of output. H3 handles 768P and 2K; H3-Max handles 480P and 768P at a lower price.

Group480P768P2K
minimax-h3n/a$0.08/s$0.13/s
minimax-h3-max$0.05/s$0.08/sn/a

BytePlus Seedance

seedance serves BytePlus ModelArk's Dreamina Seedance 2.5 on the same /v1/videos API. It supports clips up to 30 seconds at 480p, 720p or 1080p, from text or a single first-frame image.

curl -sS "https://llms.party/v1/videos" \
  -H "Authorization: Bearer $LLMS_PARTY_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "seedance",
    "prompt": "A glass city at sunset, slow aerial push-in.",
    "seconds": 5,
    "resolution": "720p",
    "ratio": "16:9"
  }'
FieldSeedance values
seconds4–30, integer.
resolution480p, 720p (default) or 1080p, lowercase.
ratio16:9, 4:3, 1:1, 3:4, 9:16, 21:9; image input follows the image.
input_referenceOne image URL for the first frame.

Reference video input and the editing and extension surfaces are not exposed through the gateway. One first-frame image is the supported input.

What Seedance costs

BytePlus bills Seedance by tokens, not per second. The price is per million tokens:

ResolutionUSD per 1M tokens5 s at 16:930 s at 16:9
480p$10.70$0.514$3.08
720p$10.70$1.156$6.94
1080p$11.70$2.843$17.06
tokens = (input video seconds + output seconds) × width × height × fps / 1024

For text-to-video the input-video term is zero. The polled task's usage.total_tokens is the real token count. Only successful generations are billed; failures, including moderation rejections, are free.

A 4 s 480p job took around two minutes in testing; longer clips take longer.

Rates: BytePlus ModelArk pricing. MiniMax rates are vendor list prices too; see MiniMax pricing.

Status and errors

A moderation rejection surfaces as failed, usually quickly. A 422 from create means the request was rejected before a task existed (budget, model access or validation), not a provider failure.