{
  "openapi": "3.0.1",
  "info": {
    "title": "Audio to Text & RAG Chunks: Offline Whisper, SRT, Timestamps",
    "description": "Transcribe MP3, WAV, FLAC and OGG audio offline with Whisper. Timestamped RAG chunks, SRT and VTT subtitles, language detection. No API key needed.",
    "version": "1.0",
    "x-build-id": "Di0Tf2gUVD06vLtho"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/bongo-seakhoa~audio-to-text-rag-chunks/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-bongo-seakhoa-audio-to-text-rag-chunks",
        "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/bongo-seakhoa~audio-to-text-rag-chunks/runs": {
      "post": {
        "operationId": "runs-sync-bongo-seakhoa-audio-to-text-rag-chunks",
        "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/bongo-seakhoa~audio-to-text-rag-chunks/run-sync": {
      "post": {
        "operationId": "run-sync-bongo-seakhoa-audio-to-text-rag-chunks",
        "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 file URLs",
            "type": "array",
            "description": "Direct links to MP3, WAV, FLAC or Ogg Vorbis files (http or https), at most 500. Redirects are followed and checked. Links to YouTube, TikTok, Instagram, Vimeo, X/Twitter, Facebook, Twitch, SoundCloud and Spotify are refused by design. Linked text files of URLs are not supported; paste the URLs.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyValueStoreId": {
            "title": "Key-value store with audio files (optional)",
            "type": "string",
            "description": "Pick a key-value store that holds audio files. Without record keys below, every record whose key ends in .mp3, .wav, .flac, .ogg or .oga (or whose content type is audio) is transcribed, up to 1,000."
          },
          "keyValueStoreKeys": {
            "title": "Record keys (optional)",
            "type": "array",
            "description": "Keys of audio records in the store picked above. Leave empty to use every audio record.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "rssFeedUrl": {
            "title": "Podcast RSS feed URL (optional)",
            "type": "string",
            "description": "A public podcast RSS 2.0 feed. Its newest episodes (by publication date) are transcribed from their audio enclosures. Feeds that need a login are not supported. Only process audio you have the rights to."
          },
          "rssMaxEpisodes": {
            "title": "Newest episodes to take from the feed",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "How many of the feed's newest episodes to transcribe.",
            "default": 5
          },
          "model": {
            "title": "Model",
            "enum": [
              "accurate",
              "fast"
            ],
            "type": "string",
            "description": "'accurate' uses Whisper base; 'fast' uses Whisper tiny (several times faster, less accurate, cheaper per minute). Both are multilingual and run on CPU inside the Actor.",
            "default": "accurate"
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "af",
              "am",
              "ar",
              "as",
              "az",
              "ba",
              "be",
              "bg",
              "bn",
              "bo",
              "br",
              "bs",
              "ca",
              "cs",
              "cy",
              "da",
              "de",
              "el",
              "en",
              "es",
              "et",
              "eu",
              "fa",
              "fi",
              "fo",
              "fr",
              "gl",
              "gu",
              "ha",
              "haw",
              "he",
              "hi",
              "hr",
              "ht",
              "hu",
              "hy",
              "id",
              "is",
              "it",
              "ja",
              "jw",
              "ka",
              "kk",
              "km",
              "kn",
              "ko",
              "la",
              "lb",
              "ln",
              "lo",
              "lt",
              "lv",
              "mg",
              "mi",
              "mk",
              "ml",
              "mn",
              "mr",
              "ms",
              "mt",
              "my",
              "ne",
              "nl",
              "nn",
              "no",
              "oc",
              "pa",
              "pl",
              "ps",
              "pt",
              "ro",
              "ru",
              "sa",
              "sd",
              "si",
              "sk",
              "sl",
              "sn",
              "so",
              "sq",
              "sr",
              "su",
              "sv",
              "sw",
              "ta",
              "te",
              "tg",
              "th",
              "tk",
              "tl",
              "tr",
              "tt",
              "uk",
              "ur",
              "uz",
              "vi",
              "yi",
              "yo",
              "zh"
            ],
            "type": "string",
            "description": "'auto' detects the spoken language from the first speech in the file. Set an ISO code (for example 'en', 'de', 'es') when you know it: detection can be wrong on short or noisy clips.",
            "default": "auto"
          },
          "wordTimestamps": {
            "title": "Word timestamps",
            "type": "boolean",
            "description": "Adds start and end times for every word to the segments JSON file. They are approximate (about 0.2-0.5 s).",
            "default": false
          },
          "vad": {
            "title": "Skip silence (voice activity detection)",
            "type": "boolean",
            "description": "Runs Silero VAD first and transcribes only the parts with speech: faster, and fewer made-up words on silence and music. Billing is by audio duration either way.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "transcribe",
              "estimate"
            ],
            "type": "string",
            "description": "'transcribe' produces the transcript and the files. 'estimate' downloads each file and only reads its duration and shows the minutes and price a transcription would cost. Estimate charges none of this Actor's events (Apify's standard Actor start fee still applies).",
            "default": "transcribe"
          },
          "outputs": {
            "title": "Outputs",
            "type": "array",
            "description": "Which outputs to produce. The plain transcript text is always in the file's dataset row. These add the Markdown transcript with [hh:mm:ss] stamps, the segments JSON, SRT and WebVTT subtitle files, and RAG chunk rows.",
            "items": {
              "type": "string",
              "enum": [
                "transcript",
                "segments",
                "srt",
                "vtt",
                "chunks"
              ],
              "enumTitles": [
                "Markdown transcript",
                "Segments JSON",
                "SRT subtitles",
                "WebVTT subtitles",
                "RAG chunks"
              ]
            },
            "default": [
              "transcript",
              "segments",
              "srt",
              "vtt",
              "chunks"
            ]
          },
          "chunkSize": {
            "title": "Chunk size (characters)",
            "minimum": 200,
            "maximum": 20000,
            "type": "integer",
            "description": "Maximum characters per RAG chunk. Chunks end on segment boundaries, so most are a little shorter.",
            "default": 1500
          },
          "chunkOverlap": {
            "title": "Chunk overlap (characters)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Up to this many characters of whole trailing segments are repeated at the start of the next chunk. At most half the chunk size.",
            "default": 150
          },
          "maxMinutesPerFile": {
            "title": "Maximum minutes per file",
            "minimum": 1,
            "maximum": 600,
            "type": "integer",
            "description": "Longer files are cut here and marked partial (TRUNCATED_AT_MAX_MINUTES); you pay only for the minutes transcribed.",
            "default": 180
          },
          "maxFileSizeMb": {
            "title": "Maximum file size (MB)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Larger files fail with FILE_TOO_LARGE and are not charged. The limit is also capped at a quarter of the run's memory (512 MB at the default 2 GB).",
            "default": 500
          },
          "perFileTimeoutSecs": {
            "title": "Time limit per file (seconds, optional)",
            "minimum": 60,
            "maximum": 7200,
            "type": "integer",
            "description": "Leave empty to let the Actor set it from the file's duration and the model (2 minutes plus 3 times the expected time, at most 7,200 s). When a file reaches 80% of it, the transcript so far is kept, marked partial (TIME_LIMIT) and billed only for the minutes transcribed."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}