{
  "openapi": "3.0.1",
  "info": {
    "title": "Speech to Text: Audio Transcriber, Whisper, SRT & VTT",
    "description": "Audio transcriber and speech to text: transcribe mp3, wav, m4a, mp4, webm, mov URLs or podcast RSS with Whisper, timestamps, SRT and VTT. No API key. $6 per 1,000 audio minutes, first 2 minutes of each run free, failed files free.",
    "version": "0.1",
    "x-build-id": "LPvbOvNPTp7gPZw5Q"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/pennydata~audio-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-pennydata-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/pennydata~audio-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-pennydata-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/pennydata~audio-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-pennydata-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": {
          "feedUrl": {
            "title": "Podcast RSS/Atom feed URL",
            "type": "string",
            "description": "Podcast feed (RSS or Atom with audio enclosures). The newest episodes are transcribed, one dataset item per episode with title, pubDate and audio URL. Can be combined with the file URLs below."
          },
          "maxEpisodes": {
            "title": "Max episodes from feed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from the feed.",
            "default": 3
          },
          "podcastName": {
            "title": "Podcast name (looked up in Apple Podcasts)",
            "type": "string",
            "description": "Show name, e.g. Planet Money. The best match in the Apple Podcasts directory is resolved to its RSS feed and the newest episodes are transcribed. Ignored if feedUrl is set."
          },
          "podcastUrl": {
            "title": "Apple Podcasts URL",
            "type": "string",
            "description": "A podcasts.apple.com show link (contains /id123456789). Resolved to the show's RSS feed. Ignored if feedUrl is set."
          },
          "urls": {
            "title": "Video or audio file URLs (mp4, webm, mov, mp3, wav ...)",
            "type": "array",
            "description": "Direct http(s) links to audio or video files (mp3, wav, m4a, ogg, flac, mp4, webm, mov ...). Pages such as YouTube or podcast web players are not supported; link the file itself.",
            "default": [
              "https://upload.wikimedia.org/wikipedia/commons/d/d1/En-uk-hello-6.ogg"
            ],
            "items": {
              "type": "string"
            }
          },
          "audioUrls": {
            "title": "Audio URLs (alias of urls)",
            "type": "array",
            "description": "Alias of urls, for compatibility with other transcriber actors. Merged with urls.",
            "items": {
              "type": "string"
            }
          },
          "audioUrl": {
            "title": "Audio URL (alias, single)",
            "type": "string",
            "description": "Alias for a single audio or video file URL. Merged with urls."
          },
          "url": {
            "title": "URL (alias, single)",
            "type": "string",
            "description": "Alias for a single audio or video file URL. Merged with urls."
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "en",
              "es",
              "fr",
              "de",
              "it",
              "pt",
              "nl",
              "pl",
              "ru",
              "tr",
              "ar",
              "hi",
              "ja",
              "ko",
              "zh",
              "sv",
              "uk",
              "cs",
              "id"
            ],
            "type": "string",
            "description": "Spoken language, or auto to let the model detect it.",
            "default": "auto"
          },
          "task": {
            "title": "Task",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "transcribe keeps the spoken language; translate outputs English text from any supported language (Whisper translate). Same price.",
            "default": "transcribe"
          },
          "wordTimestamps": {
            "title": "Word timestamps",
            "type": "boolean",
            "description": "Add words: [{word, start, end}] (seconds) to every row. Subtitle segments are then built from the words.",
            "default": false
          },
          "model": {
            "title": "Model",
            "enum": [
              "base",
              "tiny",
              "small",
              "medium"
            ],
            "type": "string",
            "description": "base is more accurate; tiny is about 1.5x faster. Same price.",
            "default": "base"
          },
          "translate": {
            "title": "translate (alias of task=translate)",
            "type": "boolean",
            "description": "Compatibility with media-transcriber input; true is the same as task translate.",
            "default": false
          },
          "mediaUrls": {
            "title": "mediaUrls (alias of urls)",
            "type": "array",
            "description": "Compatibility with sauliusautomatesit/media-transcriber input; merged into urls.",
            "items": {
              "type": "string"
            }
          },
          "source_url": {
            "title": "source_url (alias of urls)",
            "type": "string",
            "description": "Compatibility with donjuan_mime/audio-video-to-text input; one direct file URL, merged into urls."
          },
          "rssFeedUrls": {
            "title": "rssFeedUrls (alias of feedUrl)",
            "type": "array",
            "description": "Compatibility with media-transcriber input; the first feed is used as feedUrl.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "maxEpisodesPerFeed (alias of maxEpisodes)",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Compatibility with media-transcriber input."
          },
          "maxDurationMinutes": {
            "title": "maxDurationMinutes (alias of maxMinutesPerFile)",
            "minimum": 1,
            "type": "integer",
            "description": "Compatibility with media-transcriber input; capped at 120."
          },
          "outputFormats": {
            "title": "Output formats",
            "type": "array",
            "description": "text always stays in the dataset. Add srt and/or vtt to also get subtitle files (from the segment timestamps) stored in the key-value store, with their URLs on each dataset item.",
            "items": {
              "type": "string",
              "enum": [
                "text",
                "segments",
                "srt",
                "vtt",
                "markdown",
                "rag"
              ],
              "enumTitles": [
                "Plain text",
                "Segments (always included)",
                "SRT subtitles",
                "WebVTT subtitles",
                "markdown (compatibility: ignored)",
                "rag (compatibility: ignored)"
              ]
            },
            "default": [
              "text"
            ]
          },
          "maxMinutesPerFile": {
            "title": "Max minutes per file",
            "minimum": 1,
            "maximum": 120,
            "type": "integer",
            "description": "Files longer than this are skipped (not transcribed, not charged).",
            "default": 60
          },
          "maxCostUsd": {
            "title": "Max cost per run (USD)",
            "minimum": 0.02,
            "type": "number",
            "description": "Spending guard: a file that would exceed this is skipped and the run stops. Leave empty for no cap."
          },
          "translateToEnglish": {
            "title": "translateToEnglish (alias of task=translate)",
            "type": "boolean",
            "description": "Compatibility with lergassy/mp3-to-text input; true is the same as task translate.",
            "default": false
          },
          "subtitleFormat": {
            "title": "subtitleFormat (alias of outputFormats)",
            "enum": [
              "none",
              "srt",
              "vtt",
              "both"
            ],
            "type": "string",
            "description": "Compatibility with lergassy/mp3-to-text input; srt, vtt or both add subtitle files, like outputFormats."
          },
          "quality": {
            "title": "quality (compatibility, ignored)",
            "type": "string",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "diarize": {
            "title": "diarize (compatibility, ignored)",
            "type": "boolean",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "speakerCount": {
            "title": "speakerCount (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "vocabularyHint": {
            "title": "vocabularyHint (compatibility, ignored)",
            "type": "string",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "includeSubtitles": {
            "title": "includeSubtitles (alias: adds an SRT file)",
            "type": "boolean",
            "description": "Compatibility with tidydata/audio-video-transcription input: true writes an SRT subtitle file per transcript (same as outputFormats containing srt)."
          },
          "includeSegments": {
            "title": "includeSegments (compatibility, ignored)",
            "type": "boolean",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "chunkForRag": {
            "title": "chunkForRag (compatibility, ignored)",
            "type": "boolean",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "chunkSize": {
            "title": "chunkSize (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "chunkOverlapSeconds": {
            "title": "chunkOverlapSeconds (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "apiKey": {
            "title": "apiKey (compatibility, ignored)",
            "type": "string",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "maxConcurrency": {
            "title": "maxConcurrency (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "maxFileSizeMb": {
            "title": "maxFileSizeMb (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          },
          "timeoutPerFileSecs": {
            "title": "timeoutPerFileSecs (compatibility, ignored)",
            "type": "integer",
            "description": "Accepted so lergassy/mp3-to-text input runs unchanged; not used here."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}