{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video Transcriber: Whisper Speech to Text, SRT, VTT",
    "description": "Transcribe audio, video and podcast episodes (file links or RSS feeds) to text, SRT and VTT with Whisper, privately on Apify. Optional speaker labels (who spoke when). 99 languages, timestamps. $0.006 per audio minute (+$0.013 with speakers); failed files free.",
    "version": "0.1",
    "x-build-id": "NNWNQNU6ygR2QzlrN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/webstack-labs~audio-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-webstack-labs-audio-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/webstack-labs~audio-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-webstack-labs-audio-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/webstack-labs~audio-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-webstack-labs-audio-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": {
          "audioUrls": {
            "title": "Audio or video file URLs",
            "type": "array",
            "description": "One direct file link per line: MP3, WAV, M4A, AAC, OGG, OPUS, FLAC, WEBM, MP4, MOV, MKV and more (anything FFmpeg reads). Podcast episode links from an RSS feed work. Pages of YouTube, TikTok, Instagram, Spotify and similar platforms are not supported (their terms do not allow downloading). Empty = free short sample.",
            "items": {
              "type": "string"
            }
          },
          "podcastFeedUrls": {
            "title": "Podcast RSS feeds",
            "type": "array",
            "description": "Optional. RSS or Atom feed links of podcasts (for example https://feeds.example.com/show.xml). The newest episodes of each feed are transcribed (see Episodes per feed), and each row gets the show and episode title, date and link. Pages of Apple Podcasts, Spotify or YouTube are not feeds and are refused. Feeds that cannot be read come back as free rows.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Spoken language as a code (en, ja, de, es, fr, pt, zh, ...), or empty to detect it from the first 30 seconds. Setting it improves accuracy for short or mixed files.",
            "default": ""
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "transcribe = text in the spoken language; translate = English text from any language.",
            "default": "transcribe"
          },
          "model": {
            "title": "Whisper model",
            "enum": [
              "base",
              "tiny"
            ],
            "type": "string",
            "description": "base (default) is more accurate; tiny is about twice as fast. Same price per minute.",
            "default": "base"
          },
          "speakerLabels": {
            "title": "Speaker labels (who spoke when)",
            "type": "boolean",
            "description": "Find the different speakers (speaker diarization) and label every segment Speaker 1, Speaker 2, ... Adds a dialogue transcript, speaking time per speaker, and speaker names in SRT and VTT. Runs privately with open models (pyannote segmentation, 3D-Speaker). Extra $0.013 per audio minute.",
            "default": false
          },
          "numSpeakers": {
            "title": "Number of speakers",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "How many people speak, if you know it (for example 2 for an interview). 0 = detect automatically. Setting it turns speaker labels on.",
            "default": 0
          },
          "speakerThreshold": {
            "title": "Speaker grouping threshold (advanced)",
            "type": "string",
            "description": "How different two voices must be to count as different speakers when numSpeakers is 0. Higher = fewer speakers. Default 1.1."
          },
          "wordTimestamps": {
            "title": "Word timestamps",
            "type": "boolean",
            "description": "Add start and end times and a confidence score for every word (in segments[].words).",
            "default": false
          },
          "includeSegments": {
            "title": "Include segments",
            "type": "boolean",
            "description": "Add the timed segments (start, end, text) to each dataset row. TXT, SRT and VTT files are always saved and linked.",
            "default": true
          },
          "includeSubtitlesInDataset": {
            "title": "Include SRT and VTT text in the dataset",
            "type": "boolean",
            "description": "Also put the full SRT and VTT subtitles into each dataset row (handy for API and no-code tools). They are always available as files.",
            "default": false
          },
          "skipSilence": {
            "title": "Skip silence",
            "type": "boolean",
            "description": "Skip long silent parts with voice activity detection (faster, fewer made-up words in silence). Billing uses the full file length either way.",
            "default": true
          },
          "maxEpisodesPerFeed": {
            "title": "Episodes per feed",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each podcast feed (1-200). Each episode is billed by its length like any other file.",
            "default": 3
          },
          "maxMinutesPerFile": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 240,
            "type": "integer",
            "description": "Longer files are cut at this length (marked truncated: true) and billed only up to it (1-240).",
            "default": 120
          },
          "maxFileSizeMb": {
            "title": "Max file size",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Files larger than this are skipped for free (1-2000).",
            "default": 500
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt",
            "type": "boolean",
            "description": "Skip files that the site's robots.txt closes to automated access (returned as free rows). Turn off only for files you own or may download.",
            "default": true
          },
          "beamSize": {
            "title": "Beam size (advanced)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Whisper decoding beam size (1-5). 1 (default) is fast with nearly the same words; 5 searches more and is slower. Same price per minute.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}