XRToken API Docs

Create a video task (ARK alias)

API Configuration
After saving, the Try It panel below sends real requests with this key.
Base: api.xrtoken.ai

Same handler as POST /v1/videos/generations, but the response body matches the official Volcengine Ark seedance shape: id is the upstream task id, no extra upstream_id wrapper.

Lets clients already wired up to the official Ark SDK switch to XRToken by changing only base_url and api_key. The official SDK prefix is /api/v3; XRToken also accepts /api/v3, /v3, /api/v1, and /v1. Auth, billing, model routing, and channel selection are shared with the OpenAI path. Seedance 2.5 draft mode uses this path too: the create response id is the draft task ID to pass as draft_task.id.

POST
/v1/contents/generations/tasks

Authorization

BearerAuth
AuthorizationBearer <token>

API key authentication (OpenAI format). Pass in the Authorization header:

Authorization: Bearer tr-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X post "https://api.xrtoken.ai/v1/contents/generations/tasks" \  -H "Content-Type: application/json" \  -d '{    "model": "volcengine/doubao-seedance-2-0-260128",    "content": [      {        "type": "text"      }    ]  }'
{
  "id": "string",
  "model": "string",
  "status": "queued",
  "created_at": "2019-08-24T14:15:22Z"
}
{
  "error": "model field is required",
  "type": "invalid_request_error"
}
{
  "error": "invalid or missing API key",
  "type": "auth_error"
}
{
  "error": "insufficient balance -- please top up or upgrade your plan",
  "type": "billing_error"
}
{
  "error": "rate limit exceeded",
  "type": "rate_limit_error"
}
{
  "error": "upstream provider error",
  "type": "server_error"
}