Docs

Start translations

Starts AI translation of the source subtitle into one or more target languages. Each language is produced asynchronously: poll List translations or Get translation until status becomes ready. Starting a translation consumes credits proportional to the video duration, per language; an insufficient balance returns 402.

POST
/v1/videos/{id}/translations

Authorization

BearerAuth
AuthorizationBearer <token>

Pass the raw API key as a Bearer token (Authorization: Bearer <key>). Publishable keys start with mvi_pub_ (playback-scoped). Other prefixes denote private/admin keys for general REST routes. GET /v1/embeds/{embedId}/playback accepts publishable keys only.

In: header

Path Parameters

id*string

Video UUID.

Formatuuid

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.moviie.ai/v1/videos/497f6eca-6276-4993-bfeb-53cbbbba6f08/translations" \  -H "Content-Type: application/json" \  -d '{    "targetLanguages": [      "es",      "fr"    ]  }'
{
  "started": [
    {
      "language": "es",
      "status": "pending"
    }
  ],
  "skipped": [
    {
      "language": "fr",
      "reason": "already_exists"
    }
  ]
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}
{
  "error": "Resource not found",
  "code": "NOT_FOUND"
}