rreAPI Docs
rreAPI Docs
HomeWelcome

Image

midjourney-v8flux-2z-imageqwen-image-2midjourney-v7wan-2-7-imagegpt-image-2gpt-image-2-officialgemini-2.5-flash-image-previewgemini-3-pro-image-previewgemini-3.1-flash-image-previewdoubao-seedream-5-0-liteimagen-4-0

Audio

Mureka V9 Song APIVocal Remover APIMusic Extractor APIVoice Cleaner APIMultistem Splitter APIVoice Changer API

Video

topaz-video-upscalerkling-3-0-turbokling-3-0music-video-1-0wan-2-7-videokling-motion-controlpixverse-v6doubao-seedance-2.0doubao-seedance-2.0-officialseedance-2-0-minidoubao-seedance-2.0-betahappyhorse-1-1happyhorse-1.0happyhorse-1.0-officialviduq3grok-imagine-video-1.5-betagrok-imagine-1.0-videoVeo 3.1gemini-omni

Chat

claude-fable-5minimax-m3deepseek-v4gpt-5.5gpt-5.4claude-opus-4-8claude-opus-4-7claude-sonnet-4-6

Text

ai-essay-writerhumanizeai-text-detector

Tools

enhance-video-1.0
X (Twitter)

seedance-2-0-mini

ByteDance Seedance 2.0 Mini — the low-cost tier of Seedance 2.0. One async video endpoint that auto-routes text-to-video, image-to-video, and reference-to-video by request shape, at 480p / 720p.

ByteDance Seedance 2.0 Mini — the low-cost tier of the Seedance 2.0 family. A single async video endpoint that auto-routes between T2V / I2V / R2V based on which media field your request carries. 480p or 720p, 4–15 second outputs. See current pricing on the model page.

Generation is asynchronous: the POST returns a task id, then poll GET /api/v1/tasks/{id} until status is completed.

URL-only media. All media inputs must be public http(s) URLs. base64 / data: URI media is not accepted by ReAPI — even where upstream docs show base64 examples.

Quick example

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer rk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-mini",
    "prompt": "A kitten yawning at the camera, soft morning light",
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "duration": 5
  }'
import requests

resp = requests.post(
    "https://reapi.ai/api/v1/videos/generations",
    headers={
        "Authorization": "Bearer rk_live_xxx",
        "Content-Type": "application/json",
    },
    json={
        "model": "seedance-2.0-mini",
        "prompt": "A kitten yawning at the camera, soft morning light",
        "resolution": "720p",
        "aspect_ratio": "16:9",
        "duration": 5,
    },
    timeout=30,
)
print(resp.json())
const r = await fetch("https://reapi.ai/api/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer rk_live_xxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "seedance-2.0-mini",
    prompt: "A kitten yawning at the camera, soft morning light",
    resolution: "720p",
    aspect_ratio: "16:9",
    duration: 5,
  }),
});
console.log(await r.json());
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	body, _ := json.Marshal(map[string]any{
		"model":        "seedance-2.0-mini",
		"prompt":       "A kitten yawning at the camera, soft morning light",
		"resolution":   "720p",
		"aspect_ratio": "16:9",
		"duration":     5,
	})
	req, _ := http.NewRequest("POST",
		"https://reapi.ai/api/v1/videos/generations", bytes.NewReader(body))
	req.Header.Set("Authorization", "Bearer rk_live_xxx")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
	var out map[string]any
	json.NewDecoder(resp.Body).Decode(&out)
	fmt.Println(out)
}

Endpoint

POST /api/v1/videos/generations
Authorization: Bearer rk_live_xxx
Content-Type: application/json

Submitting returns a task id; poll GET /api/v1/tasks/{id} for the result. Polling does not consume credits.

Parameters

Exactly 12 input fields. The mode is implicit — which media fields you set decides text-to-video, image-to-video, or reference-driven generation.

ParameterTypeRequiredDefaultDescription
promptstringT2V: yes · I2V / R2V: no—Text prompt. Required for text-to-video; optional when a first_frame_url or reference_image_urls is set.
first_frame_urlstringI2V—First-frame image, a single public http(s) URL. Presence selects image-to-video.
last_frame_urlstringno—Optional last-frame image, a public http(s) URL.
reference_image_urlsstring[]R2V—1–9 reference image URLs. Presence selects reference-to-video.
reference_video_urlsstring[]no—Up to 3 reference video URLs.
reference_audio_urlsstring[]no—Up to 3 reference audio URLs.
generate_audiobooleannofalseGenerate an audio track for the output video.
resolutionenumno720p480p · 720p.
aspect_ratioenumno16:916:9 9:16 1:1 4:3 3:4 21:9 adaptive.
durationintegerno5Output length in seconds, 4–15.
web_searchbooleannofalseAllow the model to ground the prompt with web search.
nsfw_checkerbooleannotrueRun the upstream NSFW content check.

All media inputs (first_frame_url, last_frame_url, reference_image_urls, reference_video_urls, reference_audio_urls) must be public HTTP(S) URLs — base64 / data: URIs are rejected.

Modes

Mode is implicit — selected by which inputs you send:

ModeTriggerprompt
Text-to-video (T2V)no mediarequired
Image-to-video (I2V)first_frame_url (optionally last_frame_url)optional
Reference-to-video (R2V)reference_image_urls (1–9)optional
// I2V — animate a first frame
{ "model": "seedance-2.0-mini", "first_frame_url": "https://…/frame.jpg", "resolution": "720p", "duration": 5 }

// R2V — keep subjects consistent across the clip
{ "model": "seedance-2.0-mini", "prompt": "the woman walks through the plaza", "reference_image_urls": ["https://…/a.jpg", "https://…/b.jpg"], "resolution": "720p", "duration": 5 }

More examples

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer rk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-mini",
    "first_frame_url": "https://example.com/frame.jpg",
    "resolution": "720p",
    "duration": 5
  }'
curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer rk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.0-mini",
    "prompt": "the subject walks through a neon-lit street at night",
    "reference_image_urls": [
      "https://example.com/a.jpg",
      "https://example.com/b.jpg"
    ],
    "resolution": "720p",
    "duration": 5
  }'

Pricing

Per-second, billed by resolution × whether a reference video is uploaded. A request that carries reference_video_urls bills at a cheaper reference tier. See current 480p / 720p rates on the model page.

Bill formula (1 credit = $0.001):

InputBillable seconds
No reference_video_urls (text / image / first-last-frame / reference-image)duration you sent (default 5)
With reference_video_urlsduration + ceil(sum of source video seconds) — the vendor processes the input clip(s) AND produces the output; both are billable. Failed probe → 400 PRICING_UNAVAILABLE, no charge.

Final bill: ceil(per_second_usd × billable_seconds × 1000) credits. Failed jobs refund automatically.

Output

On success, GET /api/v1/tasks/{id} returns:

{
  "id": "task_…",
  "model": "seedance-2.0-mini",
  "status": "completed",
  "output": { "video_urls": ["https://cdn.reapi.ai/media/tasks/…/0.mp4"] },
  "error": null
}

Errors

HTTPcodeWhen
40020002Missing / invalid parameter (e.g. prompt required in T2V, value out of range)
40080007Upstream content rejection (e.g. a flagged source image)
40110001 – 10005Auth missing / invalid / revoked
40230001Insufficient credits
42950001Per-user rate limit exceeded

Pattern-match on the numeric code, not the message string. Failed generations are surfaced under error in the polling response and are refunded automatically. Full catalog: Errors.

Tips

  • Pick the mode by inputs, not a flag. Sending reference_image_urls switches to R2V; sending first_frame_url switches to I2V; neither → T2V.
  • Seedance 2.0 Mini is the low-cost tier — for higher resolutions (1080p / 4k) use seedance-2-0 or its official channel.
  • Longer duration scales the bill linearly; start at 5s while iterating.

Related

  • seedance-2-0 — full reference
  • seedance-2-0-official — Official channel
  • Tasks — universal polling endpoint
  • Errors — full error catalog

Table of Contents

Quick example
Endpoint
Parameters
Modes
More examples
Pricing
Output
Errors
Tips
Related