{
  "openapi": "3.0.1",
  "info": {
    "title": "Transcribe Audio & Video to Text - Speech to Text, Whisper SRT",
    "description": "Transcribe audio and video files to text with OpenAI Whisper: transcript, timestamped segments, SRT and VTT subtitle files, word timings, 99 languages with auto-detect. $0.008 per audio minute.",
    "version": "1.1",
    "x-build-id": "bBaobbnYceRxuWGad"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kantolabs~audio-video-to-text/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kantolabs-audio-video-to-text",
        "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/kantolabs~audio-video-to-text/runs": {
      "post": {
        "operationId": "runs-sync-kantolabs-audio-video-to-text",
        "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/kantolabs~audio-video-to-text/run-sync": {
      "post": {
        "operationId": "run-sync-kantolabs-audio-video-to-text",
        "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": {
          "fileUrls": {
            "title": "Audio or video file URLs",
            "type": "array",
            "description": "Direct links to audio or video files (MP3, WAV, M4A, AAC, OGG, OPUS, FLAC, MP4, MOV, WEBM, MKV, AVI...), one per line. Your own storage, S3/R2/GCS (public or pre-signed URLs), CDNs, Dropbox and Google Drive share links (shared as 'anyone with the link') all work. Pages of platforms such as YouTube, TikTok or Instagram are refused. For podcasts, use 'Podcast RSS feed URLs' below.",
            "default": [
              "https://archive.org/download/gettysburg_johng_librivox/gettysburg_address_64kb.mp3"
            ],
            "items": {
              "type": "string"
            }
          },
          "rssFeedUrls": {
            "title": "Podcast RSS feed URLs",
            "type": "array",
            "description": "Public podcast RSS or Atom feed URLs, one per line (e.g. https://feeds.example.com/show.xml). The audio file of each episode (its enclosure) is transcribed, newest episodes first, with the podcast and episode title, date, GUID and link in each result. Apple Podcasts, Spotify and YouTube pages are not feeds - use the show's own RSS URL.",
            "items": {
              "type": "string"
            }
          },
          "maxEpisodesPerFeed": {
            "title": "Max episodes per feed",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "How many of the newest episodes of each feed to consider per run. With 'Only new episodes' on, the ones among them that were already transcribed are skipped for free.",
            "default": 5
          },
          "episodeDateFrom": {
            "title": "Only episodes published since",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$|^\\d+ ?days?$",
            "type": "string",
            "description": "Optional. Leave out episodes published before this date: an absolute date like 2026-10-01, or a relative age like '7 days'."
          },
          "onlyNewEpisodes": {
            "title": "Only new episodes (for scheduled runs)",
            "type": "boolean",
            "description": "Remember which episodes were transcribed, so the next run of the same feed only transcribes and charges NEW episodes. Already-done episodes produce no result row. Made for daily/weekly schedules. Applies to RSS feeds only.",
            "default": false
          },
          "stateStoreName": {
            "title": "Memory store name",
            "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,62}$",
            "type": "string",
            "description": "Named key-value store in your account where 'Only new episodes' remembers transcribed episodes. Use a different name per schedule to keep them separate; delete the store (or change the name) to start over.",
            "default": "kanto-transcriber-state"
          },
          "language": {
            "title": "Spoken language",
            "pattern": "^(auto|[a-zA-Z]{2,3})$",
            "type": "string",
            "description": "'auto' detects the language of each file. Or give a 2-letter ISO 639-1 code (en, es, de, fr, pt, it, nl, pl, ru, uk, tr, ja, zh, ko, ar...) to skip detection - recommended for short clips and strong accents. 99 languages are accepted; accuracy is best for English and the major European and Asian languages.",
            "default": "auto"
          },
          "outputFormats": {
            "title": "Files to save",
            "type": "array",
            "description": "Files saved to the run's key-value store, with download links in each result. The transcript text and timestamped segments are always in the dataset.",
            "items": {
              "type": "string",
              "enum": [
                "txt",
                "srt",
                "vtt",
                "json"
              ],
              "enumTitles": [
                "Plain text (.txt)",
                "SRT subtitles (.srt)",
                "WebVTT subtitles (.vtt)",
                "Full JSON (.json)"
              ]
            },
            "default": [
              "txt",
              "srt",
              "vtt"
            ]
          },
          "wordTimestamps": {
            "title": "Word-level timestamps",
            "type": "boolean",
            "description": "Also return the start and end time of every word (karaoke captions, search, editing).",
            "default": false
          },
          "subtitleMaxChars": {
            "title": "Max characters per subtitle",
            "minimum": 20,
            "maximum": 200,
            "type": "integer",
            "description": "Longest subtitle cue (shown as up to 2 lines). 84 = two lines of 42, the common broadcast limit. Chinese, Japanese and Thai always use 32.",
            "default": 84
          },
          "maxDurationMinutes": {
            "title": "Max duration per file (minutes)",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Longer files are skipped (free). Up to 300 minutes.",
            "default": 180
          },
          "maxFileSizeMb": {
            "title": "Max file size (MB)",
            "minimum": 1,
            "maximum": 4000,
            "type": "integer",
            "description": "Larger files are skipped (free).",
            "default": 1000
          },
          "downloadTimeoutSecs": {
            "title": "Download timeout (seconds)",
            "minimum": 10,
            "maximum": 3600,
            "type": "integer",
            "description": "Give up on a file that does not download within this time (free).",
            "default": 600
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}