Transcribe audio or video to text

August 8, 2024 (October 11, 2026)

As of October 11, 2026 this endpoint is retired: Runway has removed video transcription, and every request returns 410.

Table of contents

  1. Request Headers
  2. Query Parameters
  3. Responses
  4. Model
  5. Examples
  6. Try It

Runway AI Tools » Audio tools » Transcript.

This endpoint provides free and unlimited audio/video to text transcription services. It works with free accounts without any limitations as well.

https://api.useapi.net/v1/runwayml/transcribe/?…

Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
Query Parameters
  • assetId is required. Specify the audio or video assetId you want to transcribe. Use GET /assets to see the list of assets. To upload a new audio/video asset use POST /assets.
  • language is required. Specify value from table below:
Value Title
en English
en_au English (Australian)
en_uk English (United Kingdom)
en_us English (United States)
es Spanish
fr French
de German
it Italian
pt Portuguese
nl Dutch
Responses
  • 200 OK

    {
      "id": "<uuid>",
      "createdAt": "2024-08-01T01:02:03.456Z",
      "updatedAt": "2024-08-01T01:02:03.456Z",
      "userId": 123455,
      "mediaUrl": "<media url>",
      "languageCode": "en",
      "words": [
        {
          "start": 1400,
          "end": 1560,
          "text": "Hi",
          "confidence": 1,
          "speaker": null
        },
        {
          "start": 1560,
          "end": 1872,
          "text": "there",
          "confidence": 0.89742,
          "speaker": null
        }
      ],
      "status": "completed",
      "utterances": null
    }
    
  • 400 Bad Request

    {
        "error": "<Error message>",
        "code": 400
    }
    
  • 401 Unauthorized

    {
      "error": "Unauthorized",
      "code": 401
    }
    
  • 404 Not Found

    {
        "error": "Not found.",
        "code": 404
    }
    
Model
{ // TypeScript, all fields are optional
  id: string,
  createdAt: string,
  updatedAt: string,
  userId: number,
  mediaUrl: string,
  languageCode: string,
  words: {
    start: number,
    end: number,
    text: string,
    confidence: number,
    speaker: string
  }[],
  status: string
}
Examples
  • curl "https://api.useapi.net/v1/runwayml/transcribe/?assetId=user:user_id-runwayml:account_email-asset:asset_uuid&language=en" \
       -H "Accept: application/json" \
       -H "Authorization: Bearer …" 
    
  • const token = "API token";
    const assetId = "audio or video assetId"; 
    const language = "en";
    const apiUrl = `https://api.useapi.net/v1/runwayml/transcribe/?assetId=${assetId}&language=${language}`; 
    const response = await fetch(apiUrl, {
      headers: {
        "Authorization": `Bearer ${token}`,
        "Content-Type": "application/json"
      },
    });
    const result = await response.json();
    console.log("response", {response, result});
    
  • import requests
    token = "API token"
    assetId = "audio or video assetId"
    language = "en"
    apiUrl = f"https://api.useapi.net/v1/runwayml/transcribe/?assetId={assetId}&language={language}"; 
    headers = {
        "Content-Type": "application/json", 
        "Authorization" : f"Bearer {token}"
    }
    response = requests.get(apiUrl, headers=headers)
    print(response, response.json())
    
Try It