{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio Transcription - Speech to Text, Podcast RSS, SRT",
    "description": "Audio transcription and speech to text with faster-whisper (tiny, base or small model, language auto-detect). Give mp3, m4a, wav, ogg or mp4 URLs or a public podcast RSS feed: one row per audio minute (text, start, end, language) plus the full TXT, SRT and VTT. Only-new mode for feeds.",
    "version": "0.1",
    "x-build-id": "Ho7Lcwzfq4pPDKSBN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/martin10291~audio-podcast-transcriber/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-martin10291-audio-podcast-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/martin10291~audio-podcast-transcriber/runs": {
      "post": {
        "operationId": "runs-sync-martin10291-audio-podcast-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/martin10291~audio-podcast-transcriber/run-sync": {
      "post": {
        "operationId": "run-sync-martin10291-audio-podcast-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": "Audio file or podcast RSS URLs",
            "type": "array",
            "description": "Direct links to audio or video files (mp3, m4a, wav, ogg, flac, mp4, webm, ...) or public podcast RSS feed URLs, or Apple Podcasts show links (podcasts.apple.com/.../id123; the public RSS feed is found automatically). For a feed the newest episodes are transcribed (see Max episodes per feed). YouTube, TikTok and Instagram links are not supported.",
            "default": [
              "https://archive.org/download/childrensshortworks09_1010_librivox/childrensshortworks009_lionandthehare_ab.mp3"
            ],
            "items": {
              "type": "string"
            }
          },
          "maxEpisodes": {
            "title": "Max episodes per feed",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many of the newest episodes to transcribe from each podcast RSS feed. Ignored for direct file URLs. Long episodes take long: about 1 hour of audio per few minutes of run time.",
            "default": 1
          },
          "episodesSince": {
            "title": "Episodes published since",
            "type": "string",
            "description": "Podcast feeds only: keep episodes published on or after this date (YYYY-MM-DD) or within a period like '30 days', '2 weeks' or '3 months'. Applied before Max episodes per feed. Empty = no date filter.",
            "default": ""
          },
          "titleIncludes": {
            "title": "Episode title must contain",
            "type": "array",
            "description": "Podcast feeds only: transcribe only episodes whose title contains one of these texts (case-insensitive). * matches anything, e.g. interview*ceo. Empty = all titles.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "titleExcludes": {
            "title": "Skip episode titles containing",
            "type": "array",
            "description": "Podcast feeds only: skip episodes whose title contains one of these texts (case-insensitive), e.g. trailer, rerun, best of.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "model": {
            "title": "Whisper model",
            "enum": [
              "tiny",
              "base",
              "small"
            ],
            "type": "string",
            "description": "Speech recognition model (faster-whisper, runs on CPU inside the actor). tiny = fastest, base = good English quality at high speed (default), small = better accuracy and other languages, slower.",
            "default": "base"
          },
          "language": {
            "title": "Language",
            "type": "string",
            "description": "Two-letter language code of the audio, for example en, de, es, fr, bg. Leave empty to detect the language automatically for each file.",
            "default": ""
          },
          "vocabulary": {
            "title": "Vocabulary (names and terms)",
            "type": "string",
            "description": "Names, brands or special terms spoken in the audio, comma separated, e.g. Apify, Kubernetes, Varna. Whisper uses them as a hint to spell them correctly. Max 400 characters. Empty = no hint.",
            "default": ""
          },
          "maxMinutesPerFile": {
            "title": "Max minutes per file",
            "minimum": 0,
            "type": "integer",
            "description": "Transcribe only the first N minutes of each file or episode (0 = the whole file). Use it to limit cost on very long recordings. You pay per transcribed minute.",
            "default": 0
          },
          "subtitleMaxChars": {
            "title": "Subtitle line length",
            "minimum": 20,
            "maximum": 80,
            "type": "integer",
            "description": "Max characters per subtitle line in the SRT and VTT files (2 lines per cue, max 7 seconds per cue, cut at sentence ends and pauses, timed from word timestamps). 42 is the broadcast standard; use 30-35 for vertical TikTok/Reels/Shorts videos.",
            "default": 42
          },
          "onlyNew": {
            "title": "Only new episodes since last run",
            "type": "boolean",
            "description": "For monitoring feeds: skip every file or episode that was already transcribed in an earlier run with the same Monitor ID and return only new ones. The first run transcribes everything it is asked for. Each minute is paid for once.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Separate memory for each watch list (used with only-new mode). Use a different ID per podcast or feed list.",
            "default": "default"
          },
          "datasetId": {
            "title": "Dataset (integration input)",
            "type": "string",
            "description": "Optional. Pick a dataset (or paste its ID) to read the input from, for example the result of Google Maps Scraper. When this actor runs as an integration, the dataset of the triggering run is used automatically (payload.resource.defaultDatasetId), so you can leave this empty. If set, the values found in the dataset replace the main input list."
          },
          "datasetField": {
            "title": "Dataset field",
            "type": "string",
            "description": "Optional. The item field that holds the value, for example website, url or videoUrl (dot paths like author.url work). Empty = detected automatically."
          },
          "datasetMaxItems": {
            "title": "Max values from the dataset",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper limit of unique values taken from the dataset, to keep the cost under control.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}