{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video to Text Transcription (Whisper): Speech to Text",
    "description": "Speech to text for audio and video files and podcast RSS feeds: MP3, MP4, WAV, M4A and more to text, timestamps and SRT/VTT subtitles in 99 languages. Open-source Whisper, no API key. Optional AI summary and chapters. Pay per audio minute.",
    "version": "1.0",
    "x-build-id": "8ZzZ9qrk83PzAeWgf"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fguiraud~audio-video-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fguiraud-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/fguiraud~audio-video-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-fguiraud-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/fguiraud~audio-video-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-fguiraud-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": {
          "sources": {
            "title": "Audio or video URLs",
            "type": "array",
            "description": "Direct links to media files: MP3, WAV, M4A, AAC, OGG, OPUS, FLAC, WEBM, MP4, MOV, MKV and more. Google Drive, Dropbox, OneDrive and GitHub share links work too (shared as 'Anyone with the link'). Pages of video platforms (YouTube, Vimeo...) are not supported.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "base64Files": {
            "title": "Files as base64 (optional)",
            "type": "array",
            "description": "Short media files without a URL, e.g. from an AI agent: [{\"fileName\": \"memo.m4a\", \"content\": \"<base64>\"}]. Keep the total input under ~9 MB; use URLs for longer recordings."
          },
          "podcastFeeds": {
            "title": "Podcasts (name, Apple Podcasts link or RSS feed)",
            "type": "array",
            "description": "Podcast names (e.g. 'Lex Fridman Podcast'), Apple Podcasts links or RSS feed URLs. Names and Apple links are matched to the podcast's public RSS feed automatically. The newest episodes of each podcast are transcribed (see 'Episodes per feed'); results include the podcast name, episode title and publish date.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "Episodes per feed",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each podcast feed.",
            "default": 3
          },
          "onlyNewEpisodes": {
            "title": "Only new episodes",
            "type": "boolean",
            "description": "Skip episodes already transcribed by previous runs of this Actor in your account (remembered in a key-value store named 'audio-transcriber-podcast-state'). Ideal for a daily schedule: you only pay for new episodes.",
            "default": true
          },
          "model": {
            "title": "Model",
            "enum": [
              "base",
              "small",
              "tiny"
            ],
            "type": "string",
            "description": "'base': good accuracy, fast (recommended). 'small': best accuracy, especially for accents, noisy audio and non-English speech; slower and billed at a higher per-minute price. 'tiny': fastest draft quality.",
            "default": "base"
          },
          "language": {
            "title": "Spoken language",
            "type": "string",
            "description": "ISO code of the spoken language (en, es, de, fr, pt, it, ja, zh, ...) or 'auto' to detect it. Setting it avoids misdetection on short clips.",
            "default": "auto"
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "'transcribe': text in the spoken language. 'translate': translate the speech to English text.",
            "default": "transcribe"
          },
          "vocabulary": {
            "title": "Vocabulary (names, jargon)",
            "type": "array",
            "description": "Words the speech recognition should favour: people and company names, product names, technical terms (e.g. 'Kubernetes', 'Dr. Nguyen', 'Apify'). Improves spelling of rare words.",
            "items": {
              "type": "string"
            }
          },
          "outputs": {
            "title": "What to return",
            "type": "array",
            "description": "'text': full transcript split into paragraphs at pauses. 'segments': timestamped segments. 'srt' / 'vtt': ready-to-use subtitle files. 'chunks': ~chunkSize-character passages with start/end times and a token estimate, ready for vector databases. 'markdown': paragraphs prefixed with their start time, e.g. '**[00:01:23]** ...'.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "markdown",
                "segments",
                "srt",
                "vtt",
                "chunks"
              ],
              "enumTitles": [
                "Text",
                "Markdown with timestamps",
                "Timestamped segments",
                "SRT subtitles",
                "WebVTT subtitles",
                "RAG chunks with timestamps"
              ]
            },
            "default": [
              "text",
              "segments"
            ]
          },
          "aiInsights": {
            "title": "AI summary, chapters and action items",
            "type": "boolean",
            "description": "Analyse each transcript with Claude: title, summary, key points, chapters with start times, action items and topics (in 'insights'). Requires your Anthropic API key; Claude usage is billed to your Anthropic account, plus one small 'AI insights' event per file.",
            "default": false
          },
          "anthropicApiKey": {
            "title": "Anthropic API key",
            "type": "string",
            "description": "Your key from console.anthropic.com. Stored as a secret input; used only to call Claude for this run."
          },
          "insightsModel": {
            "title": "Claude model",
            "enum": [
              "claude-opus-5",
              "claude-sonnet-5",
              "claude-haiku-4-5"
            ],
            "type": "string",
            "description": "'claude-opus-5': best quality (default). 'claude-sonnet-5': cheaper, great for meetings and podcasts. 'claude-haiku-4-5': cheapest (transcripts up to ~2 hours).",
            "default": "claude-opus-5"
          },
          "insightsInstructions": {
            "title": "Insights instructions",
            "type": "string",
            "description": "Optional, e.g. 'Summarise in Spanish', 'Focus on decisions and owners', 'Chapters every ~10 minutes'."
          },
          "saveFiles": {
            "title": "Also save downloadable files",
            "type": "boolean",
            "description": "Save the transcript (.txt) and subtitles (.srt / .vtt, if selected in outputs) as files in the run's key-value store; the result includes their download links.",
            "default": false
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Add start/end times for every word inside each segment (for karaoke-style captions or precise search). Slightly slower.",
            "default": false
          },
          "chunkSize": {
            "title": "Chunk size (characters)",
            "minimum": 200,
            "maximum": 20000,
            "type": "integer",
            "description": "Target size of 'RAG chunks'.",
            "default": 1000
          },
          "skipSilence": {
            "title": "Skip silence",
            "type": "boolean",
            "description": "Detect speech first and skip silent parts. Faster and reduces hallucinated text in long pauses.",
            "default": true
          },
          "maxDurationMinutes": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Only the first N minutes of each file are transcribed (and billed).",
            "default": 240
          },
          "maxFileSizeMb": {
            "title": "Max file size (MB)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Larger files are skipped (not billed).",
            "default": 1000
          },
          "failOnError": {
            "title": "Fail the run if any file fails",
            "type": "boolean",
            "description": "Mark the run as FAILED when a file cannot be transcribed. Useful for pipelines and monitoring.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}