{"openapi":"3.1.0","info":{"title":"Transcribe","version":"0.1.0","contact":{"name":"Transcribe","email":"hello@youraitools.co","url":"https://api.youraitools.co/transcribe/"},"license":{"name":"MIT"},"x-service-name":"Transcribe by YourAITools","x-category":"media","x-categories":["media","audio","speech-to-text","agent-tools","x402"],"x-tags":["speech-to-text","transcription","audio","subtitles"],"x-logo":{"url":"https://youraitools.co/favicon-192.png"},"description":"Transcribe: pay-per-minute speech-to-text for AI agents over x402. MP3 or WAV in (upload, URL or base64, up to 30 minutes), transcript + language + timestamped segments + SRT/VTT out. The duration is read from the file before payment, so the 402 quotes the exact price. Machine transcription can contain errors; check important content. Audio is processed in memory and not stored or logged.","x-guidance":"POST the MP3/WAV file as the body to https://api.youraitools.co/transcribe/v1/transcribe (optional ?language=&task=translate&format=srt), or GET /v1/transcribe?audio_url=https://... , or POST JSON {\"audio_url\"} / {\"audio_base64\"}. The 402 quotes billed minutes x $0.003 (started minutes, min 1; a request with no audio gets the 1-minute minimum quote); pay with x402 v2 (USDC on Base, Polygon, Arbitrum One, Solana) or a prepaid credits key, charged only on HTTP 200. Free: GET https://api.youraitools.co/transcribe/v1/capacity, sample audio https://api.youraitools.co/transcribe/sample.mp3."},"servers":[{"url":"https://api.youraitools.co/transcribe"}],"paths":{"/v1/transcribe":{"post":{"operationId":"transcribe_audio","summary":"Transcribe audio ($0.003 per minute)","description":"Speech-to-text API (audio transcription) for AI agents. Send MP3 or WAV (body, audio_url or base64, up to 30 min); get transcript, language, timestamped segments, optional SRT/VTT; task=translate gives English. $0.003 per audio minute, rounded up; the 402 quotes your file's exact total. Search intents: speech to text api, transcribe audio file, mp3 to text, wav to text, pay per minute transcription api, srt vtt subtitles, podcast transcription.","tags":["paid"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","amount":"0.003","unit":"audio minute (rounded up, min 1)"},"protocols":[{"x402":{}}]},"x-x402":{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F","amount":"3000","amountUnit":"per billed audio minute","assetSymbol":"USDC","x402Versions":[2],"networks":[{"network":"eip155:8453","name":"Base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:137","name":"Polygon","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:42161","name":"Arbitrum One","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","name":"Solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","payTo":"FH73WbbUe2UyNzfy72MJs5nT3NxyDf9GrqE7kzjL2Jte"}]},"parameters":[{"name":"audio_url","in":"query","required":false,"schema":{"type":"string"},"description":"Public https URL of an MP3 or WAV file (up to 30 minutes / 30 MB). Or POST the file as the raw body (Content-Type audio/mpeg or audio/wav), or JSON audio_base64."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Optional ISO 639-1 code of the spoken language (e.g. en, es, de); detected when omitted"},{"name":"task","in":"query","required":false,"schema":{"type":"string","enum":["transcribe","translate"]},"description":"transcribe (default) or translate (to English)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","srt","vtt"]},"description":"json (default); srt or vtt also returns subtitles in the srt / vtt field"},{"name":"vad","in":"query","required":false,"schema":{"type":"boolean"},"description":"Skip silence with voice activity detection (default false)"},{"name":"prompt","in":"query","required":false,"schema":{"type":"string"},"description":"Optional context words or spellings (max 500 chars)"}],"requestBody":{"required":true,"content":{"audio/mpeg":{"schema":{"type":"string","format":"binary"}},"audio/wav":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"type":"object","properties":{"audio_url":{"type":"string","description":"Public https URL of an MP3 or WAV file (up to 30 minutes / 30 MB). Or POST the file as the raw body (Content-Type audio/mpeg or audio/wav), or JSON audio_base64."},"language":{"type":"string","description":"Optional ISO 639-1 code of the spoken language (e.g. en, es, de); detected when omitted"},"task":{"type":"string","enum":["transcribe","translate"],"description":"transcribe (default) or translate (to English)"},"format":{"type":"string","enum":["json","srt","vtt"],"description":"json (default); srt or vtt also returns subtitles in the srt / vtt field"},"vad":{"type":"boolean","description":"Skip silence with voice activity detection (default false)"},"prompt":{"type":"string","description":"Optional context words or spellings (max 500 chars)"},"audio_base64":{"type":"string","description":"Base64 MP3 or WAV bytes (alternative to audio_url)"}}}}}},"responses":{"200":{"description":"Transcript (payment settled)","content":{"application/json":{"example":{"schema":"transcribe/1","text":"Agents can pay per minute for transcription using x402. This is a short test of the speech-to-text route.","language":"en","language_probability":0.999,"duration_seconds":10.79,"billed_minutes":1,"price_per_minute_usd":"0.003","total_usd":"0.003","task":"transcribe","source":{"type":"url","format":"mp3","bytes":43520},"pieces":1,"segments":[{"start":0,"end":3.4,"text":"Agents can pay per minute for transcription using x402."},{"start":3.6,"end":7.9,"text":"This is a short test of the speech-to-text route."}],"srt":null,"vtt":null,"processing_ms":1400},"schema":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":["string","null"]},"duration_seconds":{"type":"number"},"billed_minutes":{"type":"integer"},"total_usd":{"type":"string"},"segments":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"text":{"type":"string"}}}},"srt":{"type":["string","null"]},"vtt":{"type":["string","null"]}}}}}},"400":{"description":"Invalid input, or a paid request with no audio (never charged)"},"402":{"description":"Payment Required: PAYMENT-REQUIRED header quotes billed minutes x price; X-Audio-Duration-Seconds and X-Billed-Minutes headers. With no audio in the request: minimum quote (1 minute, X-Quote: minimum); send audio for the exact per-file quote"},"413":{"description":"Audio too large or longer than 30 minutes (never charged)"},"415":{"description":"Unsupported audio format; send MP3 or WAV (never charged)"},"422":{"description":"audio_url could not be fetched (never charged)"},"502":{"description":"Speech model failed on a piece after a retry (never charged)"},"503":{"description":"Daily capacity full or model unavailable (never charged)"}}},"get":{"operationId":"transcribe_audio_url","summary":"Transcribe audio from a URL ($0.003 per minute)","description":"Speech-to-text API (audio transcription) for AI agents. Send MP3 or WAV (body, audio_url or base64, up to 30 min); get transcript, language, timestamped segments, optional SRT/VTT; task=translate gives English. $0.003 per audio minute, rounded up; the 402 quotes your file's exact total. Search intents: speech to text api, transcribe audio file, mp3 to text, wav to text, pay per minute transcription api, srt vtt subtitles, podcast transcription.","tags":["paid"],"x-payment-info":{"price":{"mode":"dynamic","currency":"USD","amount":"0.003","unit":"audio minute (rounded up, min 1)"},"protocols":[{"x402":{}}]},"x-x402":{"scheme":"exact","network":"eip155:8453","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F","amount":"3000","amountUnit":"per billed audio minute","assetSymbol":"USDC","x402Versions":[2],"networks":[{"network":"eip155:8453","name":"Base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:137","name":"Polygon","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:42161","name":"Arbitrum One","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","name":"Solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","payTo":"FH73WbbUe2UyNzfy72MJs5nT3NxyDf9GrqE7kzjL2Jte"}]},"parameters":[{"name":"audio_url","in":"query","required":true,"schema":{"type":"string"},"description":"Public https URL of an MP3 or WAV file (up to 30 minutes / 30 MB). Or POST the file as the raw body (Content-Type audio/mpeg or audio/wav), or JSON audio_base64."},{"name":"language","in":"query","required":false,"schema":{"type":"string"},"description":"Optional ISO 639-1 code of the spoken language (e.g. en, es, de); detected when omitted"},{"name":"task","in":"query","required":false,"schema":{"type":"string","enum":["transcribe","translate"]},"description":"transcribe (default) or translate (to English)"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["json","srt","vtt"]},"description":"json (default); srt or vtt also returns subtitles in the srt / vtt field"},{"name":"vad","in":"query","required":false,"schema":{"type":"boolean"},"description":"Skip silence with voice activity detection (default false)"},{"name":"prompt","in":"query","required":false,"schema":{"type":"string"},"description":"Optional context words or spellings (max 500 chars)"}],"responses":{"200":{"description":"Transcript (payment settled)","content":{"application/json":{"example":{"schema":"transcribe/1","text":"Agents can pay per minute for transcription using x402. This is a short test of the speech-to-text route.","language":"en","language_probability":0.999,"duration_seconds":10.79,"billed_minutes":1,"price_per_minute_usd":"0.003","total_usd":"0.003","task":"transcribe","source":{"type":"url","format":"mp3","bytes":43520},"pieces":1,"segments":[{"start":0,"end":3.4,"text":"Agents can pay per minute for transcription using x402."},{"start":3.6,"end":7.9,"text":"This is a short test of the speech-to-text route."}],"srt":null,"vtt":null,"processing_ms":1400},"schema":{"type":"object","properties":{"text":{"type":"string"},"language":{"type":["string","null"]},"duration_seconds":{"type":"number"},"billed_minutes":{"type":"integer"},"total_usd":{"type":"string"},"segments":{"type":"array","items":{"type":"object","properties":{"start":{"type":"number"},"end":{"type":"number"},"text":{"type":"string"}}}},"srt":{"type":["string","null"]},"vtt":{"type":["string","null"]}}}}}},"400":{"description":"Invalid input, or a paid request with no audio (never charged)"},"402":{"description":"Payment Required: PAYMENT-REQUIRED header quotes billed minutes x price; X-Audio-Duration-Seconds and X-Billed-Minutes headers. With no audio in the request: minimum quote (1 minute, X-Quote: minimum); send audio for the exact per-file quote"},"413":{"description":"Audio too large or longer than 30 minutes (never charged)"},"415":{"description":"Unsupported audio format; send MP3 or WAV (never charged)"},"422":{"description":"audio_url could not be fetched (never charged)"},"502":{"description":"Speech model failed on a piece after a retry (never charged)"},"503":{"description":"Daily capacity full or model unavailable (never charged)"}}}},"/v1/capacity":{"get":{"operationId":"transcribe_capacity","summary":"Free: audio minutes left today (UTC)","tags":["free"],"security":[],"responses":{"200":{"description":"Capacity"}}}},"/sample.mp3":{"get":{"operationId":"transcribe_sample","summary":"Free: 11 s sample MP3 for testing","tags":["free"],"security":[],"responses":{"200":{"description":"audio/mpeg"}}}}},"x-x402-networks":[{"network":"eip155:8453","name":"Base","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:137","name":"Polygon","asset":"0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"eip155:42161","name":"Arbitrum One","asset":"0xaf88d065e77c8cC2239327C5EDb3A432268e5831","symbol":"USDC","payTo":"0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F"},{"network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","name":"Solana","asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","symbol":"USDC","payTo":"FH73WbbUe2UyNzfy72MJs5nT3NxyDf9GrqE7kzjL2Jte"}]}