{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Podcast Transcription - Whisper (Bulk), $6/1K Minutes",
    "description": "Transcribe audio, video and podcast RSS episodes to text with open-source Whisper: full transcript, timestamps, language detection and SRT/VTT subtitles. $0.006 per audio minute ($6 per 1,000), no API key needed, or bring your OpenAI key.",
    "version": "0.1",
    "x-build-id": "dMdtAMAGWonjVNZVs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/plotpointtech~audio-podcast-transcription-whisper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-plotpointtech-audio-podcast-transcription-whisper",
        "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/plotpointtech~audio-podcast-transcription-whisper/runs": {
      "post": {
        "operationId": "runs-sync-plotpointtech-audio-podcast-transcription-whisper",
        "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/plotpointtech~audio-podcast-transcription-whisper/run-sync": {
      "post": {
        "operationId": "run-sync-plotpointtech-audio-podcast-transcription-whisper",
        "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 or video file URLs",
            "type": "array",
            "description": "Direct links to media files (MP3, M4A, WAV, FLAC, OGG, OPUS, AAC, MP4, MOV, WEBM, MKV...). One result per file. YouTube, TikTok, Instagram, Vimeo, Spotify and other platform pages are NOT supported.",
            "default": [
              {
                "url": "https://www.nasa.gov/wp-content/uploads/2015/01/590331main_ringtone_smallStep.mp3"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "rssFeeds": {
            "title": "Podcast RSS feeds",
            "type": "array",
            "description": "Podcast RSS/Atom feed URLs. The latest episodes' audio enclosures are transcribed; episode title, date and feed title are added to each result.",
            "items": {
              "type": "string"
            }
          },
          "episodesPerFeed": {
            "title": "Latest episodes per feed",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each feed.",
            "default": 3
          },
          "keyValueStoreId": {
            "title": "Uploaded files (key-value store)",
            "type": "string",
            "description": "Transcribe media files stored in an Apify key-value store (for example files you uploaded). Pick the store or paste its ID."
          },
          "keyPrefix": {
            "title": "Key prefix",
            "type": "string",
            "description": "Only use key-value store records whose key starts with this text."
          },
          "engine": {
            "title": "Engine",
            "enum": [
              "local",
              "openai"
            ],
            "type": "string",
            "description": "Local runs open-source faster-whisper on the run's CPU. OpenAI sends audio to OpenAI with your key: OpenAI bills you directly and this Actor charges only a small per-minute fee.",
            "default": "local"
          },
          "model": {
            "title": "Whisper model (local engine)",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "Bigger models are more accurate, especially for accents and non-English audio, but slower. The price per minute is the same.",
            "default": "base"
          },
          "openaiModel": {
            "title": "OpenAI model (OpenAI engine)",
            "enum": [
              "whisper-1",
              "gpt-4o-mini-transcribe",
              "gpt-4o-transcribe"
            ],
            "type": "string",
            "description": "whisper-1 returns timestamped segments. The gpt-4o models return text only (one segment per 10-minute chunk).",
            "default": "whisper-1"
          },
          "openaiApiKey": {
            "title": "OpenAI API key (OpenAI engine)",
            "type": "string",
            "description": "Required only for the OpenAI engine. Stored encrypted, never logged."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Leave empty to auto-detect, or force a language with its ISO 639-1 code (en, es, de, fr, pt, ja...). Forcing the language improves accuracy on short or noisy files.",
            "default": ""
          },
          "translateToEnglish": {
            "title": "Translate to English",
            "type": "boolean",
            "description": "Output an English translation instead of the original-language transcript (Whisper translate task).",
            "default": false
          },
          "includeSegments": {
            "title": "Include timestamped segments",
            "type": "boolean",
            "description": "Each phrase with start and end time in seconds.",
            "default": true
          },
          "outputSrt": {
            "title": "Include SRT subtitles",
            "type": "boolean",
            "description": "Add an SRT subtitle file as text to each result.",
            "default": false
          },
          "outputVtt": {
            "title": "Include WebVTT subtitles",
            "type": "boolean",
            "description": "Add a WebVTT subtitle file as text to each result.",
            "default": false
          },
          "wordTimestamps": {
            "title": "Word-level timestamps (local engine)",
            "type": "boolean",
            "description": "Add every word with its time to each segment. About 20-40% slower and much larger output.",
            "default": false
          },
          "maxDurationMinutes": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Protects your budget on very long files. What happens to longer files is set below.",
            "default": 120
          },
          "whenTooLong": {
            "title": "Files longer than the limit",
            "enum": [
              "truncate",
              "skip"
            ],
            "type": "string",
            "description": "Choose whether to transcribe the beginning or skip over-long files.",
            "default": "truncate"
          },
          "maxFiles": {
            "title": "Max files in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many files. 0 means no limit.",
            "default": 0
          },
          "vocabularyPrompt": {
            "title": "Vocabulary hint",
            "type": "string",
            "description": "Optional names, jargon or spellings to guide the model, e.g. 'Plot Point Technologies, Apify, Kubernetes'."
          },
          "skipSilence": {
            "title": "Skip silence (voice activity detection)",
            "type": "boolean",
            "description": "Skips long silent stretches and music-only parts (local engine). Faster and avoids made-up text in silence. You are billed by file length either way.",
            "default": true
          },
          "beamSize": {
            "title": "Beam size (local engine)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "1 = fast greedy decoding. 5 = slightly more accurate, about 2x 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}