Jimeng video (native format)
Submit Jimeng (Volcengine) video tasks using the official Jimeng request format.
/jimeng/
Use this endpoint if your code already calls the official Jimeng (即梦, Volcengine Visual) API. The body keeps Jimeng's field names; RuToken signs the request for you and returns a task ID. For new integrations, the unified video API is simpler and works with every provider.
Authentication
Send your RuToken key in the Authorization: Bearer sk-xxxx header. You do not need Volcengine AccessKey/SecretKey signing — the gateway handles that.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Action |
string | Yes | CVSync2AsyncSubmitTask to submit a task. |
Version |
string | Yes | API version, 2022-08-31. |
Request body
Content type: application/json. Fields not listed below are also passed through to Jimeng.
| Parameter | Type | Required | Description |
|---|---|---|---|
req_key |
string | Yes | Jimeng model (service) ID, e.g. jimeng_vgfm_t2v_l20, jimeng_v30, jimeng_v30_pro. It is also the model name used for billing. |
prompt |
string | Yes | Text description of the video. |
image_urls |
string[] | No | Image URLs for image-to-video. |
binary_data_base64 |
string[] | No | Base64-encoded images for image-to-video (use either this or image_urls). |
aspect_ratio |
string | No | Text-to-video aspect ratio, e.g. 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. |
frames |
integer | No | Video length in frames: 121 (5 s, default) or 241 (10 s). |
seed |
integer | No | Random seed. -1 for random. |
For jimeng_v30 the gateway picks the right Jimeng 3.0 service from the input: no image → text-to-video, one image → image-to-video (first frame), two images → first-and-last-frame video. jimeng_v30_pro always uses the 3.0 Pro service.
Request example
curl "https://rutoken.ai/jimeng/?Action=CVSync2AsyncSubmitTask&Version=2022-08-31" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"req_key": "jimeng_v30",
"prompt": "A paper boat drifting down a rainy street, warm evening light",
"aspect_ratio": "16:9",
"frames": 121,
"seed": -1
}'
import requests
resp = requests.post(
"https://rutoken.ai/jimeng/",
params={"Action": "CVSync2AsyncSubmitTask", "Version": "2022-08-31"},
headers={"Authorization": "Bearer sk-xxxx"},
json={
"req_key": "jimeng_v30",
"prompt": "A paper boat drifting down a rainy street, warm evening light",
"aspect_ratio": "16:9",
},
)
print(resp.json()["task_id"])
Response
{
"id": "task_6Fh2kVb0mQ9xYzA1pL3sT8uWcR4nE7dJ",
"task_id": "task_6Fh2kVb0mQ9xYzA1pL3sT8uWcR4nE7dJ",
"object": "video",
"model": "jimeng_v30",
"status": "queued",
"progress": 0,
"created_at": 1760000000
}
task_id is a RuToken task ID, not the Jimeng task ID.
Query a task
Query the result with the unified endpoint:
curl https://rutoken.ai/v1/video/generations/task_6Fh2kVb0mQ9xYzA1pL3sT8uWcR4nE7dJ \
-H "Authorization: Bearer $API_KEY"
The response contains status (SUBMITTED, QUEUED, IN_PROGRESS, SUCCESS, FAILURE), result_url with the video when the task has succeeded, and fail_reason when it has failed. See Video generation for the full format.
See also: Errors.