XRToken API Docs

Create a meeting-minutes task

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

Submit a publicly reachable audio/video URL and receive a task ID immediately. Poll GET /v1/audio/minutes/{taskId} (interval ≥ 30s).

CN only. Same endpoints; switch model.

  • xrtoken-minutes: file ASR 2.0 + DeepSeek V4 Flash summary. Only model + file_url are required. Returns full transcription and report (version=2): overview, key points, nested topics, chapters, todos, decisions, verbatim quotes, review items and content-appropriate visual data. Legacy summary/chapters/extraction remain available. features / all_activate are ignored. ASR is billed by duration; summary by Flash tokens. See the model marketplace for rates.
  • doubao-minutes: official Lark Minutes. Transcription plus at least one extra, or all_activate=true for summary/chapters/todos/qa/translate. Billed by duration. See the model marketplace for rates.

file_url must be http(s) and fetchable by the upstream (you can POST /v1/files first). File < 1GB, duration ≤ 2 hours. Reserve on submit; settle completed ASR and observed summary tokens, releasing the remainder. For xrtoken-minutes, summary generation has its own 30-minute limit after ASR succeeds. A failed summary retains transcription and settles observed usage without automatic retry. ASR failure releases the reservation.

POST
/v1/audio/minutes

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/audio/minutes" \  -H "Content-Type: application/json" \  -d '{    "model": "xrtoken-minutes",    "file_url": "https://example.com/meeting.mp3"  }'
{
  "id": "string",
  "request_id": "string",
  "model": "string",
  "status": "processing",
  "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"
}