{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio & Video Transcriber: Transcription of Any URL to Text",
    "description": "Transcribe any audio or video link to text: YouTube, TikTok, Instagram, Facebook, X, Reddit, Vimeo, Loom, MP3 and MP4 files, Apple Podcasts and Spotify. Audio transcription, podcast transcription and speech to text with Whisper, 99 languages, timestamps and SRT. No API key. Errors are free.",
    "version": "0.2",
    "x-build-id": "Cy7vnJZkoHBZuIAVZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~media-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-media-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/scrapewise~media-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-media-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/scrapewise~media-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-media-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": {
          "urls": {
            "title": "Links",
            "type": "array",
            "description": "Links to transcribe, one per line. Accepts direct audio or video files (mp3, m4a, mp4, wav, webm, ogg...), YouTube, TikTok, Instagram reels and posts, Facebook, X (Twitter), Reddit, Vimeo, Dailymotion, SoundCloud, Loom, Twitch clips and 1,000+ other video sites, podcast RSS feeds, Apple Podcasts shows or episodes, and Spotify podcast links (transcribed from the show's public RSS feed). For example https://www.youtube.com/watch?v=... or https://feeds.example.com/podcast.xml. Each file becomes one row with the full text. Leave empty to run a 24-second example clip. Also accepts 'mediaUrls', 'startUrls' or 'links' from other transcription Actors.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "Episodes per podcast feed or playlist",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each podcast RSS feed, Apple Podcasts show or playlist link (1 to 500, default 3). Single video or audio links ignore this. Each episode is billed as its own file, so a feed with 50 at 30 minutes each costs about 50 x 30 minutes: start low and raise it after checking the first rows.",
            "default": 3
          },
          "onlyNewEpisodes": {
            "title": "Only new episodes",
            "type": "boolean",
            "description": "Remembers what this input already transcribed (in a key-value store on your account) and skips it on the next run: no download, no charge. Schedule a Task on a podcast feed or channel to get only the new episodes. A run with nothing new returns one free row with errorCode NO_NEW_MEDIA.",
            "default": false
          },
          "memoryName": {
            "title": "Memory name (optional)",
            "type": "string",
            "description": "Name of the list of already transcribed media used by 'Only new episodes'. Leave empty to derive it from the links of this input. Set it to share one memory between different inputs."
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Spoken language. Default 'auto' detects it for each file and reports it in the 'language' column. If you know it, type a 2-letter code (en, es, pt, fr, de, it, ja, hi, ar...): detection is skipped, the run is a little faster and short clips are not misread as another language. The transcript stays in the spoken language; nothing is translated.",
            "default": "auto"
          },
          "model": {
            "title": "Accuracy",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "Speech recognition model. 'base' (default) is right for most clear speech. 'small' is more accurate for non-English speech, accents and noisy audio, but uses about 3 times more compute, so each extra minute counts twice (see Pricing). 'tiny' is the fastest and least accurate, for quick drafts. The model used is saved in the 'model' column.",
            "default": "base"
          },
          "preferCaptions": {
            "title": "Use YouTube captions when available",
            "type": "boolean",
            "description": "For YouTube links, uses the video's own captions (written by the creator, or YouTube's automatic captions in the spoken language) when they exist: faster and without the YouTube minute charge. Without captions, the audio is transcribed as usual. Translation, word timestamps and vocabulary always transcribe the audio. The 'transcriptSource' column says which was used.",
            "default": true
          },
          "task": {
            "title": "Output language",
            "enum": [
              "transcribe",
              "translate"
            ],
            "type": "string",
            "description": "'Translate to English' turns speech in any of the 99 languages into English text in one step; 'language' still reports the spoken language.",
            "default": "transcribe"
          },
          "vocabulary": {
            "title": "Vocabulary (optional)",
            "type": "array",
            "description": "Names, brands and terms that appear in the audio, one per line (for example product names or guest names). Helps the model spell them right.",
            "items": {
              "type": "string"
            }
          },
          "includeSegments": {
            "title": "Include timestamps",
            "type": "boolean",
            "description": "On by default: adds 'segments', a list with the start and end second and the text of each phrase, for quotes, chapters or jumping to a moment in the video. Turn off to get only the full text and smaller rows. No effect on price.",
            "default": true
          },
          "includeSrt": {
            "title": "Include SRT subtitles",
            "type": "boolean",
            "description": "Adds an 'srt' column with the transcript as ready-to-use SRT subtitles (numbered cues with 00:00:01,000 --> 00:00:04,000 timestamps) that you can save as a .srt file and upload to YouTube or a video editor. Off by default. No effect on price.",
            "default": false
          },
          "includeVtt": {
            "title": "Include WebVTT subtitles",
            "type": "boolean",
            "description": "Adds a 'vtt' column with the transcript as WebVTT subtitles, the format of web video players (HTML5, Vimeo, LinkedIn).",
            "default": false
          },
          "includeWords": {
            "title": "Include word timestamps",
            "type": "boolean",
            "description": "Adds a 'words' list to every segment with the start and end second and the confidence of each word, for karaoke-style captions, precise clips or search inside the audio. Transcription takes a little longer.",
            "default": false
          },
          "maxDurationMinutes": {
            "title": "Skip media longer than (minutes)",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Files longer than this many minutes (1 to 600, default 120) are not transcribed: they come back as a free row with errorCode MEDIA_TOO_LONG and their duration. Use it to cap the cost of a run with long podcasts or livestreams. Raise it to 600 to transcribe anything up to 10 hours.",
            "default": 120
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy, on by default. It is used only when a site refuses the first request. YouTube and Instagram may also go through Apify residential proxy when the datacenter IP is refused; on YouTube that carries a small per-minute fee (see Pricing). Keep the default unless you have your own proxy.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}