{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video Transcriber (Whisper): MP3, MP4, Podcasts to Text",
    "description": "Transcribe audio and video to text with Whisper: MP3 to text, MP4 transcription, podcast transcripts from an RSS feed, meeting recordings. Timestamps, SRT and VTT subtitles, 99 languages, no API key. Never charges for a failed or empty result.",
    "version": "0.1",
    "x-build-id": "3QsM7cU7KO54WmnEB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pavel.tashev~audio-video-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pavel.tashev-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/pavel.tashev~audio-video-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-pavel.tashev-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/pavel.tashev~audio-video-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-pavel.tashev-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",
        "properties": {
          "mediaUrls": {
            "title": "Audio and video file links",
            "type": "array",
            "description": "Direct links to audio or video files: MP3, M4A, WAV, FLAC, OGG, OPUS, AAC, MP4, M4V, MOV, WEBM or MKV. Dropbox and Google Drive share links work too. Web pages such as YouTube, TikTok or Spotify links are not supported.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "podcastFeeds": {
            "title": "Podcast RSS feeds",
            "type": "array",
            "description": "RSS feed links of podcasts. The newest episodes of each feed are transcribed.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "Episodes per feed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each podcast feed.",
            "default": 3
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "en",
              "de",
              "fr",
              "es",
              "it",
              "pt",
              "nl",
              "pl",
              "bg",
              "ro",
              "cs",
              "el",
              "sv",
              "da",
              "fi",
              "hu",
              "ru",
              "uk",
              "tr",
              "ar",
              "he",
              "hi",
              "ja",
              "ko",
              "zh"
            ],
            "type": "string",
            "description": "Spoken language. Leave on automatic detection unless the language is misdetected, for example in short clips.",
            "default": "auto"
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "Transcribe in the original language, or translate the speech into English text.",
            "default": "transcribe"
          },
          "quality": {
            "title": "Quality",
            "enum": [
              "fast",
              "accurate"
            ],
            "type": "string",
            "description": "\"Fast\" suits clear speech and is the cheapest. \"Accurate\" searches harder for the best wording, which takes about a third longer and costs you nothing extra, and helps with noisy audio, accents and overlapping speakers.",
            "default": "fast"
          },
          "initialPrompt": {
            "title": "Names and jargon",
            "type": "string",
            "description": "Optional list of names, brands or technical terms that appear in the audio, for example \"Apify, Crawlee, Richmal Crompton\". Whisper uses them as a hint and spells them correctly far more often. Keep it to a short list: a long prompt can make Whisper skip wording that resembles it. Up to 800 characters."
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Add a start and end time and a confidence score for every word, inside each segment. Useful for captions and search; makes transcription about 15% slower.",
            "default": false
          },
          "includeSegments": {
            "title": "Include timestamped segments",
            "type": "boolean",
            "description": "Add a list of phrases with start and end times in seconds.",
            "default": true
          },
          "includeSubtitles": {
            "title": "Create SRT and VTT subtitle files",
            "type": "boolean",
            "description": "Save subtitle files to the run's key-value store and link them in the output.",
            "default": true
          },
          "maxMinutesPerFile": {
            "title": "Maximum minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Longer files are skipped and not charged. The limit is checked again on the decoded audio, so files whose length is missing from the file itself are also stopped. Files over 2 hours need at least 4 GB of memory.",
            "default": 240
          },
          "maxFileSizeMb": {
            "title": "Maximum file size (MB)",
            "minimum": 1,
            "maximum": 2048,
            "type": "integer",
            "description": "Larger files are skipped and not charged.",
            "default": 1024
          },
          "paragraphs": {
            "title": "Readable paragraphs",
            "type": "boolean",
            "description": "Also return the transcript broken into paragraphs on the natural pauses in speech, instead of one unbroken block of text. Costs nothing extra.",
            "default": true
          },
          "chunkMode": {
            "title": "Split into chunks for RAG",
            "enum": [
              "off",
              "on"
            ],
            "type": "string",
            "description": "Split the transcript into overlapping chunks ready for an embedder or vector database. Each chunk keeps the start and end time of the audio it came from, so an answer can cite and replay the exact moment. Chunks are extra dataset rows (rowType \"chunk\") and are not charged.",
            "default": "off"
          },
          "chunkSize": {
            "title": "Chunk size (characters)",
            "minimum": 100,
            "maximum": 20000,
            "type": "integer",
            "description": "Target size of each chunk. Whole segments are kept together, so a chunk can be a little over.",
            "default": 1200
          },
          "chunkOverlap": {
            "title": "Chunk overlap (characters)",
            "minimum": 0,
            "maximum": 19999,
            "type": "integer",
            "description": "How much of the previous chunk to repeat at the start of the next one, so a sentence split across two chunks is still retrievable. Must be smaller than the chunk size.",
            "default": 150
          },
          "onlyNewEpisodes": {
            "title": "Only new podcast episodes",
            "type": "boolean",
            "description": "Remember which episodes have already been transcribed and skip them on the next run. Turns a scheduled run into podcast monitoring: a quiet day costs nothing. Only applies to podcast feeds.",
            "default": false
          },
          "memoryKey": {
            "title": "Memory name",
            "type": "string",
            "description": "A name for this feed’s memory, so separate feeds never mix. Letters, numbers, dots, dashes and underscores. Leave empty to use \"default\".",
            "default": "default"
          },
          "fileFormats": {
            "title": "Transcript files",
            "type": "array",
            "description": "Downloadable transcript files saved next to the subtitles, with a link in the output. Markdown adds a heading and the source, language and duration. JSON holds the whole result including segments and chunks. Costs nothing extra.",
            "items": {
              "type": "string",
              "enum": [
                "txt",
                "md",
                "json"
              ],
              "enumTitles": [
                "Plain text (.txt)",
                "Markdown (.md)",
                "JSON (.json)"
              ]
            },
            "default": [
              "txt"
            ]
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}