Rask AI Translation API

Translate transcribed media into 130+ destination languages as part of the project generation workflow, with optional glossary support for consistent terminology and multi-speaker handling.

OpenAPI Specification

rask-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Rask AI API
  description: >-
    Rask AI is an AI video and audio localization platform. The REST API lets
    developers upload media, transcribe and translate it, create localization
    (dubbing) projects across 130+ languages, manage voices and speakers, and
    poll project status to retrieve translated video, translated audio, and
    voiceover artifacts. Projects are processed asynchronously. Authentication
    uses an OAuth2-issued Bearer token (an API Client ID and API Code are
    generated in the Rask app and exchanged for a token). Endpoints and schemas
    below reflect Rask's public API v2 documentation; consult
    https://docs.api.rask.ai for the authoritative reference.
  termsOfService: https://www.rask.ai/terms-of-service
  contact:
    name: Rask AI API Support
    email: api@rask.ai
    url: https://docs.api.rask.ai
  version: '2'
servers:
  - url: https://api.rask.ai
    description: Rask AI production API
security:
  - bearerAuth: []
tags:
  - name: Media
    description: Upload and retrieve source media (video and audio).
  - name: Transcription
    description: Create and retrieve transcriptions from uploaded media or SRT files.
  - name: Projects
    description: Create, retrieve, update, and delete localization (dubbing) projects.
  - name: Voices
    description: Retrieve project voices and speakers.
paths:
  /api/library/v1/media:
    post:
      operationId: uploadMediaFile
      tags:
        - Media
      summary: Upload a media file
      description: >-
        Upload a video or audio file (mp4, mov, webm, mkv, mp3, wav) to the
        media library. Returns a media identifier used when creating a
        transcription or project.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The media file to upload.
      responses:
        '200':
          description: Media uploaded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Media'
  /v2/transcriptions:
    post:
      operationId: createTranscription
      tags:
        - Transcription
      summary: Create a transcription
      description: >-
        Transcribe uploaded media into editable text segments, or provide an SRT
        file for higher dubbing accuracy. Returns a transcription identifier used
        when creating a project.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTranscriptionRequest'
      responses:
        '200':
          description: Transcription created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcription'
  /v2/projects:
    post:
      operationId: createProject
      tags:
        - Projects
      summary: Create a project (dubbing job)
      description: >-
        Create a localization project from an uploaded video, specifying the
        destination language and optional source language, speaker count,
        transcription, and glossary. Processing is asynchronous; poll the project
        to retrieve output artifacts.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
      responses:
        '200':
          description: Project created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /v2/projects/{project_id}:
    get:
      operationId: getProject
      tags:
        - Projects
      summary: Get a project (status and artifacts)
      description: >-
        Retrieve a single project to monitor its asynchronous processing status
        and obtain output artifact links once localization completes.
      parameters:
        - name: project_id
          in: path
          required: true
          description: The UUID of the project to retrieve.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Project details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        OAuth2-issued Bearer token. Generate an API Client ID and API Code in the
        Rask app, exchange them for an OAuth2 token, and send it as
        `Authorization: Bearer {token}`.
  schemas:
    Media:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Uploaded media identifier.
        kind:
          type: string
          description: Media kind (e.g., video or audio).
    CreateTranscriptionRequest:
      type: object
      required:
        - media_id
      properties:
        media_id:
          type: string
          format: uuid
          description: ID of the uploaded media to transcribe.
        src_lang:
          type: string
          description: Source language code without dialect (e.g., en).
    Transcription:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Transcription identifier.
        status:
          type: string
          description: Transcription processing status.
    CreateProjectRequest:
      type: object
      required:
        - video_id
        - dst_lang
      properties:
        video_id:
          type: string
          format: uuid
          description: Uploaded media ID with video kind.
        dst_lang:
          type: string
          description: Destination language code.
        name:
          type: string
          description: Project name; autogenerated if empty.
        src_lang:
          type: string
          description: Source language code without dialect (e.g., en).
        num_speakers:
          type: integer
          description: Number of speakers; defined automatically if empty.
        transcript_id:
          type: string
          format: uuid
          description: ID of an uploaded transcription.
        glossary_id:
          type: string
          format: uuid
          description: ID of a created glossary.
    Project:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Project identifier.
        name:
          type: string
          description: Project name.
        source_type:
          type: string
          enum:
            - youtube
            - gdrive
            - vimeo
            - s3
            - local
            - any
          description: Origin of the source media.
        status:
          type: string
          description: Current processing state of the project.
        dst_lang:
          type: string
          description: Destination language code.
        created_at:
          type: string
          format: date-time
          description: Creation timestamp.
        translated_video:
          type: string
          description: Link to the translated (dubbed) video artifact.
        translated_audio:
          type: string
          description: Link to the translated audio artifact.
        voiceover:
          type: string
          description: Link to the voiceover artifact.