{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video Transcriber: Whisper Speech to Text (SRT, VTT)",
    "description": "Transcribe audio and video files, podcast RSS feeds and media pages to text with Whisper. Get plain text, timestamps, SRT, VTT and JSON. 90+ languages, auto language detection, optional translation to English. From $0.003 per minute, failed files are free.",
    "version": "1.0",
    "x-build-id": "XUkDJIBQA9SMGm01M"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/northledgertools~audio-video-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-northledgertools-audio-video-transcriber",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/northledgertools~audio-video-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-northledgertools-audio-video-transcriber",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/northledgertools~audio-video-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-northledgertools-audio-video-transcriber",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mediaUrls"
        ],
        "properties": {
          "mediaUrls": {
            "title": "Media URLs",
            "type": "array",
            "description": "Links to audio or video files (MP3, M4A, WAV, MP4, MOV, WebM and more), podcast RSS feeds, or media pages (best effort via yt-dlp). One transcript is produced per file. Only public http(s) URLs are allowed.",
            "items": {
              "type": "string"
            }
          },
          "model": {
            "title": "Model",
            "enum": [
              "base",
              "small",
              "distil-small.en",
              "large-v3-turbo"
            ],
            "type": "string",
            "description": "Whisper model. 'base' is the fastest and cheapest but makes more mistakes. 'small' (default) is a good balance of accuracy and price. 'distil-small.en' is English-only and about as accurate as small but much faster. 'large-v3-turbo' is the most accurate and handles accents and noisy audio best, but runs slowly on CPU.",
            "default": "small"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Spoken language as a two-letter ISO code (en, es, fr, de, pt, ja, ...). Leave as 'auto' to detect it from the first 30 seconds. Setting it explicitly is slightly faster and avoids detection mistakes.",
            "default": "auto"
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "'Transcribe' writes the speech in its original language. 'Translate to English' writes an English translation of non-English speech.",
            "default": "transcribe"
          },
          "outputFormats": {
            "title": "Files to save",
            "type": "array",
            "description": "Transcript files saved in the key-value store, with a direct link in each dataset item. The text and timestamped segments are always included in the dataset as well.",
            "items": {
              "type": "string",
              "enum": [
                "txt",
                "srt",
                "vtt",
                "json"
              ],
              "enumTitles": [
                "Plain text (.txt)",
                "SubRip subtitles (.srt)",
                "WebVTT subtitles (.vtt)",
                "JSON with segments (.json)"
              ]
            },
            "default": [
              "txt",
              "srt"
            ]
          },
          "includeSegments": {
            "title": "Include timestamped segments in dataset",
            "type": "boolean",
            "description": "Add a 'segments' array (start, end, text) to every dataset item. Turn off for smaller items.",
            "default": true
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Add start and end times for each word inside every segment. Slower (about 20-30% longer runs).",
            "default": false
          },
          "skipSilence": {
            "title": "Skip silence (voice activity detection)",
            "type": "boolean",
            "description": "Skip long silent or music-only parts. Faster and prevents invented text in silence. Turn off for very quiet speech.",
            "default": true
          },
          "initialPrompt": {
            "title": "Vocabulary hint",
            "type": "string",
            "description": "Optional. A short sentence with names, jargon or spelling you expect, e.g. 'Interview with Dr. Okonkwo about Kubernetes and PostgreSQL.' Helps with rare words."
          },
          "maxMinutesPerFile": {
            "title": "Maximum minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Cost cap per file. Longer media is cut after this many minutes, and only the minutes transcribed are charged.",
            "default": 120
          },
          "rssMaxEpisodes": {
            "title": "Episodes per podcast feed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "When a URL is a podcast RSS feed, transcribe this many of the newest episodes.",
            "default": 1
          },
          "maxFiles": {
            "title": "Maximum files per run",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Safety limit on the total number of media files transcribed in one run (feed episodes count individually).",
            "default": 100
          },
          "beamSize": {
            "title": "Beam size",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Search width. 1 is fastest. Higher values (up to 5) can slightly improve accuracy on difficult audio but are slower.",
            "default": 1
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}