{
  "openapi": "3.0.1",
  "info": {
    "title": "Podcast Transcript Generator & API: Audio & Video to Text",
    "description": "Transcribe podcasts and audio / video files to text: paste an Apple Podcasts, Spotify or RSS link, a podcast name, or any MP3 / MP4 URL. Uses the podcast's own transcript when published, Whisper AI in 99 languages when not. Timestamps, speakers, SRT and VTT.",
    "version": "0.1",
    "x-build-id": "Va0XP04FBm0ZJijHC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/s_actors~audio-video-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-s_actors-audio-video-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/s_actors~audio-video-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-s_actors-audio-video-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/s_actors~audio-video-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-s_actors-audio-video-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": {
          "sources": {
            "title": "🎙️ Audio / video links, podcasts",
            "type": "array",
            "description": "One per line, any mix of: a direct file link (MP3, M4A, WAV, OGG, FLAC, MP4, MOV, WebM...), a Dropbox or Google Drive share link, a web page with an audio / video player, a podcast RSS feed, an Apple Podcasts or Spotify podcast link (show or episode), or simply a podcast's name (\"Lex Fridman Podcast\"). Public files only.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodes": {
            "title": "Episodes per podcast",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "For a podcast (feed, show link or name): how many of its latest episodes to transcribe. 0 = all (up to 1,000). Episode links always give that one episode.",
            "default": 1
          },
          "postedAfter": {
            "title": "Only episodes published after",
            "type": "string",
            "description": "Podcasts only. A date (2026-10-01) or a period back from now (\"7 days\", \"24 hours\", \"2 weeks\", \"3 months\"). Empty = no date limit."
          },
          "onlyNew": {
            "title": "🔔 Only new episodes (monitoring)",
            "type": "boolean",
            "description": "Podcasts only: skip episodes that an earlier run with the same monitor name already saw. The first run takes the latest episodes as usual.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Keeps separate \"already seen\" lists for different schedules. Same name = same list.",
            "default": "default"
          },
          "usePublishedTranscripts": {
            "title": "📄 Use the podcast's own transcript when it has one",
            "type": "boolean",
            "description": "On: episodes with a transcript published in their podcast feed get it (one flat price per episode, speakers included). Off: every file goes through AI (per minute).",
            "default": true
          },
          "transcribeWithAI": {
            "title": "🤖 Transcribe with AI when there is no published transcript",
            "type": "boolean",
            "description": "On: files and episodes without a published transcript are transcribed by Whisper AI (charged per started minute). Off: only published transcripts; the rest come back free without text.",
            "default": true
          },
          "language": {
            "title": "Spoken language",
            "type": "string",
            "description": "Two-letter code of the spoken language (en, es, de, fr, pt, hi, ar...). Empty = detected automatically from the first minutes of each file (recommended)."
          },
          "maxMinutesPerFile": {
            "title": "Max file length (minutes)",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Longer files are skipped (free row) instead of transcribed by AI, so one 10-hour recording cannot eat your budget. Published transcripts are used at any length.",
            "default": 300
          },
          "includeSegments": {
            "title": "Timed segments",
            "type": "boolean",
            "description": "Add the transcript as segments with start and end seconds (and speaker, when known).",
            "default": true
          },
          "includeSubtitles": {
            "title": "SRT and VTT subtitles in the dataset",
            "type": "boolean",
            "description": "Add ready subtitles (SRT and WebVTT text) to every row.",
            "default": true
          },
          "saveFiles": {
            "title": "Save .srt, .vtt and .txt files",
            "type": "boolean",
            "description": "Also save each transcript as downloadable files in the run's key-value store (links in the row).",
            "default": false
          },
          "debugLog": {
            "title": "Debug log",
            "type": "boolean",
            "description": "Log every request attempt (for support).",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}