{
  "openapi": "3.0.1",
  "info": {
    "title": "Speech to Text & Audio Transcription - Video to Text (Whisper)",
    "description": "Speech to text for audio and video URLs: returns the transcript, timestamped segments and SRT subtitles, made with Whisper. For podcasters, video editors, researchers and developers. $0.015 per audio minute (Free plan), $0.014 on Silver+; failed files never charged.",
    "version": "0.3",
    "x-build-id": "c36HEMqfEJl6QJ33D"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/eliai~audio-transcriber-whisper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-eliai-audio-transcriber-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/eliai~audio-transcriber-whisper/runs": {
      "post": {
        "operationId": "runs-sync-eliai-audio-transcriber-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/eliai~audio-transcriber-whisper/run-sync": {
      "post": {
        "operationId": "run-sync-eliai-audio-transcriber-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": {
          "audioUrls": {
            "title": "Audio / video file URLs",
            "type": "array",
            "description": "Links to transcribe, one per line. Accepts direct audio or video files (mp3, wav, m4a, ogg, flac, mp4, webm, mov, …), podcast RSS feeds (the newest episode by default, see maxEpisodesPerFeed), Apple Podcasts show or episode links, and Google Drive or Dropbox share links (shared as 'anyone with the link'). Each file becomes one dataset record with text, segments, SRT and VTT. YouTube and TikTok pages are not media files: use the YouTube or TikTok transcript Actors instead.",
            "default": [
              "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address_64kb.mp3"
            ],
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language (leave empty to auto-detect)",
            "type": "string",
            "description": "ISO 639-1 code of the spoken language, e.g. `en`, `es`, `de`, `fr`, `ja`. Leave empty to auto-detect (the detected language and its probability are included in every record).",
            "default": ""
          },
          "format": {
            "title": "Output format",
            "enum": [
              "both",
              "text",
              "segments"
            ],
            "type": "string",
            "description": "`both` returns plain text AND timestamped segments + SRT. `text` returns only the plain text. `segments` returns only the timestamped segments + SRT.",
            "default": "both"
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Add a `words` list to every segment: each word with its own start, end and probability, for karaoke captions, clip cutting or search-to-the-second. Needs `format` set to `both` or `segments`. Takes a little longer; the price per audio-minute is the same.",
            "default": false
          },
          "translateToEnglish": {
            "title": "Translate to English",
            "type": "boolean",
            "description": "Translate the speech into English instead of transcribing in the original language (Whisper's built-in translate task).",
            "default": false
          },
          "accuracy": {
            "title": "Accuracy",
            "enum": [
              "fast",
              "accurate"
            ],
            "type": "string",
            "description": "`fast` (default) decodes greedily and is the right choice for clear speech: podcasts, meetings, interviews, lectures. `accurate` runs beam search with 5 beams, which can help on noisy audio, heavy accents or unusual vocabulary, and takes a little longer. The price per audio-minute is the same either way.",
            "default": "fast"
          },
          "maxFileSizeMb": {
            "title": "Max file size (MB)",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Downloads larger than this are skipped (recorded as failed, never charged).",
            "default": 500
          },
          "maxDurationMinutes": {
            "title": "Max audio duration (minutes)",
            "minimum": 1,
            "maximum": 1440,
            "type": "integer",
            "description": "Audio longer than this is refused up front, before any compute is spent, and never charged. You rarely need to change it: length no longer costs memory (audio is transcribed in 10-minute windows), so the practical limit is the run TIMEOUT, not the file. About 145 minutes fit inside the default 3600s timeout; if the timeout arrives first you still get the transcript so far, flagged `truncated`, charged only for the minutes actually transcribed. Lower this if you would rather a long file be refused outright than partially transcribed.",
            "default": 600
          },
          "maxEpisodesPerFeed": {
            "title": "Episodes per podcast feed",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "When a link is a podcast RSS feed or an Apple Podcasts show page, transcribe this many of its newest episodes, one record each (each billed by its own audio minutes). Default 1, the latest episode.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}