{"openapi":"3.0.3","info":{"title":"STT.ai API","description":"Speech-to-text transcription, real-time streaming, AI summarization, translation, and more. GPU-powered, 100+ languages, speaker diarization, word-level timestamps.\n\n## Authentication\nSend your API key as a Bearer token in the `Authorization` header. Get your key from [Account Settings](https://stt.ai/account/) or create one via the `/v1/keys` endpoint.\n\n## Base URLs\n- **GPU API** (transcription, streaming, AI): `https://api.stt.ai`\n- **REST API** (account, transcripts, keys): `https://stt.ai/api`\n\n## Credits\nCredits are deducted based on audio duration: 1 credit = 1 minute. Summarization, analysis, and content generation cost 1 credit each. Anonymous users get 10 free minutes per day per IP.","version":"1.0.0","contact":{"name":"STT.ai Support","url":"https://stt.ai/contact/","email":"hello@stt.ai"},"termsOfService":"https://stt.ai/terms/","license":{"name":"Proprietary"}},"servers":[{"url":"https://api.stt.ai","description":"GPU API (transcription, streaming, AI processing)"},{"url":"https://stt.ai/api","description":"REST API (account, transcripts, API keys)"}],"security":[{"BearerAuth":[]}],"tags":[{"name":"Transcription","description":"Audio/video transcription and streaming"},{"name":"AI Processing","description":"Summarization, analysis, translation, content generation"},{"name":"Audio","description":"Audio enhancement and text-to-speech"},{"name":"Transcripts","description":"Manage saved transcripts"},{"name":"Account","description":"Account info, credits, and usage"},{"name":"API Keys","description":"Create and manage API keys"},{"name":"Reference","description":"Models, languages, and health"}],"paths":{"/v1/transcribe":{"post":{"tags":["Transcription"],"summary":"Transcribe audio/video file","description":"Upload an audio or video file for transcription with speaker diarization, language detection, and word-level timestamps.","operationId":"transcribe","security":[{"BearerAuth":[]},{}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Audio or video file (MP3, WAV, FLAC, OGG, M4A, AAC, OPUS, WMA, MP4, WebM, MKV, AVI, MOV, etc.)"},"model":{"type":"string","default":"large-v3-turbo","enum":["large-v3-turbo","large-v3","medium","small","stt-ai-enhanced"],"description":"Transcription model. `stt-ai-enhanced` requires a paid plan."},"language":{"type":"string","default":"auto","description":"ISO 639-1 language code or `auto` for detection"},"diarize":{"type":"string","default":"true","enum":["true","false"],"description":"Enable speaker diarization"},"speakers":{"type":"string","default":"0","description":"Expected number of speakers (0 = auto-detect)"},"response_format":{"type":"string","default":"json","enum":["json","txt","srt","vtt"],"description":"Response format"}}}}}},"responses":{"200":{"description":"Transcription result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptionResult"}}}},"400":{"description":"No file provided or invalid input"},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (anonymous: 10 min/day)"},"503":{"description":"GPU API unavailable"},"504":{"description":"Processing timeout"}}}},"/v1/stream":{"get":{"tags":["Transcription"],"summary":"Real-time streaming (WebSocket)","description":"WebSocket endpoint for real-time speech-to-text. Send raw PCM audio frames (16-bit, 16kHz, mono) and receive live transcription results.\n\n**Connection:** `wss://api.stt.ai/v1/stream?language=auto&model=large-v3-turbo`\n\n**Send:** Binary audio frames (2730 bytes recommended)\n\n**Receive:** JSON with `text` (final) and `partial` (interim) fields","operationId":"stream","parameters":[{"name":"language","in":"query","schema":{"type":"string","default":"auto"},"description":"ISO 639-1 language code or `auto`"},{"name":"model","in":"query","schema":{"type":"string","default":"large-v3-turbo"},"description":"Transcription model"}],"responses":{"101":{"description":"WebSocket upgrade","content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","description":"Final transcription"},"partial":{"type":"string","description":"Interim partial result"}}}}}}}}},"/v1/summarize":{"post":{"tags":["AI Processing"],"summary":"Summarize text","description":"Summarize transcript text using an on-device LLM. Costs 1 credit.","operationId":"summarize","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to summarize"},"style":{"type":"string","default":"brief","enum":["brief","detailed","executive"],"description":"Summary style"}}}}}},"responses":{"200":{"description":"Summary result","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"},"word_count":{"type":"integer"}}}}}},"400":{"description":"No text provided"},"401":{"description":"Authentication required"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"},"504":{"description":"Processing timeout"}}}},"/v1/translate":{"post":{"tags":["AI Processing"],"summary":"Translate text","description":"Translate text between 400+ languages using MadLAD-400 model on-device. Costs 1 credit.","operationId":"translate","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","target_language"],"properties":{"text":{"type":"string","description":"Text to translate"},"target_language":{"type":"string","description":"Target language ISO 639-1 code"},"source_language":{"type":"string","default":"auto","description":"Source language (auto-detected if omitted)"}}}}}},"responses":{"200":{"description":"Translation result","content":{"application/json":{"schema":{"type":"object","properties":{"translated_text":{"type":"string"},"source_language":{"type":"string"},"target_language":{"type":"string"}}}}}},"400":{"description":"Missing text or target language"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"}}}},"/v1/analyze":{"post":{"tags":["AI Processing"],"summary":"Analyze text","description":"Run AI analysis on text: sentiment, topics, entities, action items, or questions. Costs 1 credit.","operationId":"analyze","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","type"],"properties":{"text":{"type":"string","description":"Text to analyze"},"type":{"type":"string","enum":["sentiment","topics","entities","action_items","questions"],"description":"Analysis type"}}}}}},"responses":{"200":{"description":"Analysis result","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"result":{"type":"object"}}}}}},"400":{"description":"Invalid analysis type"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"}}}},"/v1/generate":{"post":{"tags":["AI Processing"],"summary":"Generate content from text","description":"Generate derived content from transcript text. Costs 1 credit.","operationId":"generate","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","type"],"properties":{"text":{"type":"string","description":"Source text"},"type":{"type":"string","enum":["blog_post","social_media","meeting_notes","study_guide","flashcards","quiz","chapter_markers","key_quotes","show_notes"],"description":"Content type to generate"}}}}}},"responses":{"200":{"description":"Generated content","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"result":{"type":"object","properties":{"content":{"type":"string"},"word_count":{"type":"integer"}}}}}}}},"400":{"description":"Invalid type or empty text"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"}}}},"/v1/enhance-audio":{"post":{"tags":["Audio"],"summary":"Enhance audio quality","description":"Improve audio quality by reducing noise and enhancing speech clarity.","operationId":"enhanceAudio","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","description":"Audio file to enhance"}}}}}},"responses":{"200":{"description":"Enhanced audio file","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"No file provided"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"}}}},"/v1/tts":{"post":{"tags":["Audio"],"summary":"Text-to-speech / voice cloning","description":"Convert text to speech using voice cloning. Provide a reference audio sample for voice cloning.","operationId":"textToSpeech","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["text","reference_audio"],"properties":{"text":{"type":"string","description":"Text to synthesize"},"reference_audio":{"type":"string","format":"binary","description":"Reference voice audio sample"}}}}}},"responses":{"200":{"description":"Synthesized audio","content":{"audio/wav":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"Missing text or reference audio"},"402":{"description":"Insufficient credits"},"503":{"description":"GPU API unavailable"}}}},"/v1/embed":{"post":{"tags":["AI Processing"],"summary":"Generate text embeddings","description":"Generate sentence embeddings for semantic search and RAG applications.","operationId":"embed","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","description":"Text to embed (or array of strings)"}}}}}},"responses":{"200":{"description":"Embedding vectors","content":{"application/json":{"schema":{"type":"object","properties":{"embeddings":{"type":"array","items":{"type":"array","items":{"type":"number"}}}}}}}},"400":{"description":"No text provided"},"503":{"description":"GPU API unavailable"}}}},"/v1/models":{"get":{"tags":["Reference"],"summary":"List available models","description":"Returns all available transcription models with their capabilities.","operationId":"listModels","security":[],"responses":{"200":{"description":"Model list","content":{"application/json":{"schema":{"type":"object","properties":{"models":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"large-v3-turbo"},"name":{"type":"string","example":"Whisper Large v3 Turbo"},"provider":{"type":"string","example":"OpenAI"},"languages":{"type":"integer","example":99},"license":{"type":"string","example":"MIT"},"tier":{"type":"string","enum":["free","premium"]}}}}}}}}}}}},"/v1/languages":{"get":{"tags":["Reference"],"summary":"List supported languages","description":"Returns all supported languages with ISO codes.","operationId":"listLanguages","security":[],"responses":{"200":{"description":"Language list","content":{"application/json":{"schema":{"type":"object","properties":{"languages":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"en"},"name":{"type":"string","example":"English"},"native_name":{"type":"string","example":"English"}}}}}}}}}}}},"/v1/credits":{"get":{"tags":["Account"],"summary":"Check remaining credits","description":"Returns credit balance for authenticated users or daily remaining minutes for anonymous users.","operationId":"getCredits","security":[{"BearerAuth":[]},{}],"responses":{"200":{"description":"Credit info","content":{"application/json":{"schema":{"type":"object","properties":{"plan":{"type":"string","example":"pro"},"credits":{"type":"number","example":500.0},"is_active":{"type":"boolean"},"daily_limit":{"type":"number","description":"Anonymous only"},"used_today":{"type":"number","description":"Anonymous only"},"remaining_today":{"type":"number","description":"Anonymous only"}}}}}}}}},"/health":{"get":{"tags":["Reference"],"summary":"Health check","description":"Check GPU API status, queue length, and available VRAM.","operationId":"healthCheck","security":[],"responses":{"200":{"description":"Health status","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"ok"},"gpu":{"type":"object","properties":{"status":{"type":"string"},"queue_length":{"type":"integer"},"gpu_memory_free_mb":{"type":"integer"}}},"version":{"type":"string"}}}}}}}}},"/v1/account":{"get":{"tags":["Account"],"summary":"Get account info","description":"Returns account details, plan, credits, and email preferences.","operationId":"getAccount","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Account info","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string"},"plan":{"type":"string"},"is_plan_active":{"type":"boolean"},"credits":{"type":"number"},"next_billing_date":{"type":"string","format":"date-time","nullable":true},"lang":{"type":"string"},"is_confirmed":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"}}}}}},"401":{"description":"Authentication required"}}},"put":{"tags":["Account"],"summary":"Update email preferences","operationId":"updateAccount","security":[{"BearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email_preferences":{"type":"object","properties":{"marketing":{"type":"boolean"},"newsletter":{"type":"boolean"},"product_updates":{"type":"boolean"},"usage_alerts":{"type":"boolean"}}}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"updated":{"type":"array","items":{"type":"string"}}}}}}},"401":{"description":"Authentication required"}}}},"/v1/transcripts":{"get":{"tags":["Transcripts"],"summary":"List transcripts","description":"Returns paginated list of your transcripts.","operationId":"listTranscripts","security":[{"BearerAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"status","in":"query","schema":{"type":"string","enum":["queued","processing","completed","failed"]}},{"name":"language","in":"query","schema":{"type":"string"},"description":"Filter by language code"}],"responses":{"200":{"description":"Transcript list","content":{"application/json":{"schema":{"type":"object","properties":{"transcripts":{"type":"array","items":{"$ref":"#/components/schemas/TranscriptSummary"}},"total":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"}}}}}},"401":{"description":"Authentication required"}}}},"/v1/transcripts/{id}":{"get":{"tags":["Transcripts"],"summary":"Get transcript","description":"Returns full transcript with segments, speakers, and metadata.","operationId":"getTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Transcript detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TranscriptDetail"}}}},"401":{"description":"Authentication required"},"404":{"description":"Not found"}}},"delete":{"tags":["Transcripts"],"summary":"Delete transcript","operationId":"deleteTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Deleted","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"401":{"description":"Authentication required"},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/export/{format}":{"get":{"tags":["Transcripts"],"summary":"Export transcript","description":"Download transcript in various formats.","operationId":"exportTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},{"name":"format","in":"path","required":true,"schema":{"type":"string","enum":["txt","srt","vtt","json","csv","docx","pdf"]}}],"responses":{"200":{"description":"File download"},"400":{"description":"Transcript not completed or unsupported format"},"401":{"description":"Authentication required"},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/status":{"get":{"tags":["Transcripts"],"summary":"Poll transcript status","description":"Check processing status, progress percentage, and queue position.","operationId":"getTranscriptStatus","security":[],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Status info","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["queued","processing","completed","failed"]},"progress":{"type":"integer","description":"0-100"},"queue_position":{"type":"integer","nullable":true},"duration":{"type":"number","description":"Completed only"},"word_count":{"type":"integer","description":"Completed only"},"language":{"type":"string","description":"Completed only"},"error":{"type":"string","description":"Failed only"}}}}}},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/summarize":{"post":{"tags":["Transcripts"],"summary":"Summarize transcript","description":"Generate an AI summary of a saved transcript. Costs 1 credit.","operationId":"summarizeTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"style":{"type":"string","enum":["brief","detailed","executive"],"default":"brief"},"force":{"type":"boolean","default":false,"description":"Re-generate even if cached"}}}}}},"responses":{"200":{"description":"Summary","content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"},"cached":{"type":"boolean"}}}}}},"400":{"description":"Transcript not completed or empty"},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/analyze":{"post":{"tags":["Transcripts"],"summary":"Analyze transcript","description":"Run AI analysis on a saved transcript. Costs 1 credit.","operationId":"analyzeTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["sentiment","topics","entities","action_items","questions"]}}}}}},"responses":{"200":{"description":"Analysis result","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"result":{"type":"object"}}}}}},"400":{"description":"Invalid analysis type"},"402":{"description":"Insufficient credits"},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/generate":{"post":{"tags":["Transcripts"],"summary":"Generate content from transcript","description":"Generate derived content (blog post, meeting notes, etc.) from a saved transcript. Costs 1 credit.","operationId":"generateFromTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["blog_post","social_media","meeting_notes","study_guide","flashcards","quiz","chapter_markers","key_quotes","show_notes"]}}}}}},"responses":{"200":{"description":"Generated content","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string"},"result":{"type":"object"}}}}}},"400":{"description":"Invalid type"},"402":{"description":"Insufficient credits"},"404":{"description":"Not found"}}}},"/v1/transcripts/{id}/chat":{"post":{"tags":["Transcripts"],"summary":"Chat with transcript (RAG)","description":"Ask questions about a transcript using AI. Rate-limited by plan (Free: 3/day, Pro: 50/day, Business+: unlimited).","operationId":"chatWithTranscript","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question"],"properties":{"question":{"type":"string"},"session_id":{"type":"string","description":"Optional conversation session ID"}}}}}},"responses":{"200":{"description":"Answer with source segments","content":{"application/json":{"schema":{"type":"object","properties":{"answer":{"type":"string"},"sources":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start_time":{"type":"number"},"relevance":{"type":"number"}}}},"session_id":{"type":"string"}}}}}},"400":{"description":"Missing question"},"404":{"description":"Not found"},"429":{"description":"Daily chat limit exceeded"}}}},"/v1/keys":{"get":{"tags":["API Keys"],"summary":"List API keys","operationId":"listKeys","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"API key list","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"prefix":{"type":"string","example":"stt_abc123"},"is_active":{"type":"boolean"},"rate_limit":{"type":"integer"},"monthly_limit_minutes":{"type":"integer"},"last_used":{"type":"string","format":"date-time","nullable":true},"created_at":{"type":"string","format":"date-time"}}}}}}}}},"401":{"description":"Authentication required"}}},"post":{"tags":["API Keys"],"summary":"Create API key","description":"Create a new API key. The raw key is only returned once at creation time.","operationId":"createKey","security":[{"BearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"My API Key"},"rate_limit":{"type":"integer","default":60,"description":"Requests per minute"},"monthly_limit_minutes":{"type":"integer","default":5000}}}}}},"responses":{"201":{"description":"Key created (raw key only shown once)","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"key":{"type":"string","description":"Full API key — store securely, shown only once"},"prefix":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}}},"401":{"description":"Authentication required"}}}},"/v1/keys/{id}":{"delete":{"tags":["API Keys"],"summary":"Revoke API key","operationId":"deleteKey","security":[{"BearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Key revoked","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"}}}}}},"401":{"description":"Authentication required"},"404":{"description":"Not found"}}}},"/v1/usage":{"get":{"tags":["Account"],"summary":"Usage history","description":"Returns daily usage breakdown for the specified period.","operationId":"getUsage","security":[{"BearerAuth":[]}],"parameters":[{"name":"days","in":"query","schema":{"type":"integer","default":30,"maximum":365},"description":"Number of days"}],"responses":{"200":{"description":"Usage data","content":{"application/json":{"schema":{"type":"object","properties":{"period_days":{"type":"integer"},"summary":{"type":"object","properties":{"total_transcripts":{"type":"integer"},"total_duration_seconds":{"type":"number"},"total_words":{"type":"integer"},"credits_remaining":{"type":"number"},"plan":{"type":"string"}}},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date"},"transcripts":{"type":"integer"},"duration_seconds":{"type":"number"},"words":{"type":"integer"}}}}}}}}},"401":{"description":"Authentication required"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key from your account settings or the `/v1/keys` endpoint. Format: `stt_<64_hex_chars>` or your user API token."}},"schemas":{"TranscriptionResult":{"type":"object","properties":{"text":{"type":"string","description":"Full transcription text"},"language":{"type":"string","description":"Detected language code"},"duration":{"type":"number","description":"Audio duration in seconds"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/Segment"}},"speakers":{"type":"array","items":{"type":"string"},"description":"List of detected speaker labels"}}},"Segment":{"type":"object","properties":{"start":{"type":"number","description":"Start time in seconds"},"end":{"type":"number","description":"End time in seconds"},"text":{"type":"string"},"speaker":{"type":"string","nullable":true},"confidence":{"type":"number"},"words":{"type":"array","items":{"type":"object","properties":{"word":{"type":"string"},"start":{"type":"number"},"end":{"type":"number"},"confidence":{"type":"number"}}}}}},"TranscriptSummary":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"status":{"type":"string","enum":["queued","processing","completed","failed"]},"language":{"type":"string"},"duration_seconds":{"type":"number"},"word_count":{"type":"integer"},"source_type":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"share_token":{"type":"string"}}},"TranscriptDetail":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"status":{"type":"string"},"language":{"type":"string"},"duration_seconds":{"type":"number"},"word_count":{"type":"integer"},"num_speakers":{"type":"integer"},"source_type":{"type":"string"},"summary":{"type":"string","nullable":true},"is_encrypted":{"type":"boolean"},"created_at":{"type":"string","format":"date-time"},"text":{"type":"string","description":"Full concatenated text"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/Segment"}}}},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error message"},"upgrade":{"type":"boolean","description":"Whether upgrading would resolve the error"}}}}}}