# Seedance Video 2.0 Mini API

> Seedance Video 2.0 Mini is a model from MiniMax that you can call through the ScalingTensor API.

- Model ID: `eva-video-2.0-mini`
- Provider: MiniMax
- Price: Provider cost USD / 1M tokens; varies by resolution and video input
- Web page: https://scalingtensor.com/models/eva-video-2.0-mini

## How to call it

Authenticate with the `apiKey` request header. Submit a job, then poll for the result:

1. `POST https://restapi.scalingtensor.com/api/media/generate` with JSON `{ "model": "<model ID>", "params": { ... } }`. The response `data.jobId` identifies the job.
2. `GET https://restapi.scalingtensor.com/api/media/result?jobId=<jobId>` until the status is `completed` or `failed`.
3. A response `code` of 0 means success; otherwise read `msg`.

```bash
curl --request POST 'https://restapi.scalingtensor.com/api/media/generate' \
  --header 'apiKey: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "model": "eva-video-2.0-mini",
  "params": {
    "seed": -1,
    "model": "eva-video-2.0-mini",
    "ratio": "9:16",
    "content": [
      {
        "text": "Use first-person POV composition from Video 1 throughout, and use Audio 1 as background music throughout. First-person fruit tea promo ad for Seedance'\''s limited-edition '\''Apple Peace'\'' apple fruit tea. Opening frame is Image 1: your hand picks a dew-covered Aksu red apple, with a crisp apple-snap sound. Seconds 2-4: quick cut, your hand drops apple chunks into a shaker, adds ice and tea base, and shakes vigorously — the clinking ice and shaking sounds synced to an upbeat drum beat, voiceover: '\''fresh-cut, fresh-shaken'\''. Seconds 4-6: first-person close-up of the finished product, layered fruit tea poured into a transparent cup, your hand gently squeezes cream foam to spread across the top, then sticks a pink label on the cup, camera zooms in on the layered texture of cream foam and fruit tea. Seconds 6-8: first-person hand holding the cup up, you raise the fruit tea from Image 2 in front of the camera (simulating handing it to the viewer), with the cup label clearly visible, voiceover: '\''take a fresh sip'\'', ending frame freezes on Image 2. All voiceover in a female voice.",
        "type": "text"
      },
      {
        "role": "reference_image",
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/your-image.jpg"
        }
      },
      {
        "role": "reference_image",
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/your-image.jpg"
        }
      },
      {
        "role": "reference_video",
        "type": "video_url",
        "video_url": {
          "url": "https://example.com/your-video.mp4"
        }
      },
      {
        "role": "reference_audio",
        "type": "audio_url",
        "audio_url": {
          "url": "https://example.com/your-audio.mp3"
        }
      }
    ],
    "duration": 8,
    "watermark": false,
    "resolution": "720p",
    "generate_audio": true,
    "return_last_frame": false
  }
}'
```

## Input parameters

Parameters go inside the `params` object.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | true | Model identifier. This file documents eva-video-2.0-mini. |
| `content` | array<object> | true | Multimodal input items. Supported combinations include text alone, text with image, video, or image and video, and text with image, video, and audio. Audio must be paired with at least one text, image, or video item. |
| `content[].type` | string | true | Input item type: text, image_url, video_url, or audio_url. |
| `content[].text` | string | conditional | Text prompt describing the desired video. Required for a text item. |
| `content[].image_url` | object | conditional | Image reference object. Required for an image_url item. |
| `content[].image_url.url` | string | conditional | Public image URL or inline data:image/...;base64,... value. |
| `content[].video_url` | object | conditional | Video reference object. Required for a video_url item. Including this item enables video-to-video mode. |
| `content[].video_url.url` | string | conditional | Public URL of the reference video. |
| `content[].audio_url` | object | conditional | Audio reference object. Required for an audio_url item. Audio cannot be the only input modality. |
| `content[].audio_url.url` | string | conditional | Public URL of the reference audio. |
| `content[].role` | string | false | Optional role tag for a reference item, such as first_frame, reference_image, reference_video, or reference_audio. |
| `callback_url` | string | false | Webhook URL notified when the task transitions to queued, running, succeeded, failed, or expired. |
| `return_last_frame` | boolean | false | Whether to include the generated video last frame in the task result. Defaults to false. |
| `service_tier` | string | false | Service tier. Defaults to default. The EVA video series does not support flex. |
| `execution_expires_after` | integer | false | Task timeout in seconds. Defaults to 172800; allowed range is 3600 to 259200. |
| `generate_audio` | boolean | false | Whether to generate synchronized audio, voice, sound effects, or background music. Defaults to true. |
| `safety_identifier` | string | false | Unique end-user identifier, recommended to be a hashed user ID or email. Maximum length is 64 characters. |
| `resolution` | string | false | Output resolution: 480p or 720p. Defaults to 720p. This model does not support 1080p or 4k. |
| `ratio` | string | false | Output aspect ratio: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, or adaptive. Defaults to adaptive. |
| `duration` | integer | false | Output duration in seconds. Defaults to 5. Allowed values are 4 to 15 or -1. Use -1 to let the model choose the duration. |
| `seed` | integer | false | Random seed from -1 to 2^32-1. Defaults to -1 for a random seed. |
| `watermark` | boolean | false | Whether to add an AI-generation watermark. Defaults to false. |
| `output_format` | string | false | Output video format: mp4 or mov. Supported only by eva-video-2.5. |

## FAQ

### How much does the Seedance Video 2.0 Mini API cost?

Seedance Video 2.0 Mini is billed at the provider's actual cost for each job (USD / 1M tokens; varies by resolution and video input). The charge is deducted from your prepaid ScalingTensor wallet.

### How do I call the Seedance Video 2.0 Mini API?

Send POST /api/media/generate with "model": "eva-video-2.0-mini" and the parameters in a params object, using your apiKey header. The call returns a jobId. Poll GET /api/media/result?jobId=... until the status is completed, then read the output URL from the result.

### Which parameters does Seedance Video 2.0 Mini accept?

Required: model and content. Optional: callback_url, return_last_frame, service_tier, execution_expires_after, generate_audio, safety_identifier, resolution, ratio, duration and seed and 2 more. The parameter table on this page describes each one.

### Do I need a MiniMax account to use Seedance Video 2.0 Mini?

No. You call Seedance Video 2.0 Mini with your ScalingTensor API key and pay from your ScalingTensor wallet. The same key works for every other model in the catalog.
