Multi-Modal AI (Coming Soon)
Create Summary
Generate an AI-powered summary from a transcription
POST
Generate a structured summary from a completed transcription. The transcription must be in
See Summary Templates for detailed output schemas.
Auto-summary works with auto-transcription for a fully automated pipeline: upload → transcribe → summarize. See the Auto-Processing Guide for full details.
completed status.
You can create multiple summaries for the same transcription using different templates.
Use webhooks to receive real-time notifications when the summary completes, or poll the Get Summary endpoint.
Authentication
Requires an API key withsummaries:write scope.
Request Body
The transcription’s unique identifier (e.g.,
txn_abc123). Must be in completed status.System template ID to use. One of:
tmpl_general_notes, tmpl_sales_call, tmpl_clinical_soap, tmpl_legal_memo.Either template_id or prompt is required, but not both.Custom prompt for one-off summaries. Use this instead of
template_id for custom summarization.Must be 10-10,000 characters. Either template_id or prompt is required, but not both.LLM provider to use for summarization. If not specified, uses the system default.
| Provider | Description |
|---|---|
gemini | Google Gemini 2.0 Flash (default) - JSON output |
openai | OpenAI GPT-4o - JSON mode |
claude | Anthropic Claude Sonnet 4 - Structured output |
Response
Returns the newly created summary object withpending status.
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | The summary’s unique identifier (e.g., sum_abc123) |
project_id | string | The project this summary belongs to |
transcription_id | string | The transcription this summary was generated from |
status | string | Current status: pending, processing, completed, or failed |
template_id | string | null | The template used, if any |
provider | string | LLM provider used (e.g., gemini, openai, claude) |
custom_prompt | string | null | The custom prompt used, if any |
output | object | null | Structured summary output (populated on completion) |
error_message | string | null | Error message if the summary failed |
started_at | string | null | ISO 8601 timestamp when processing started |
completed_at | string | null | ISO 8601 timestamp when the summary completed or failed |
created_at | string | ISO 8601 timestamp when the summary was created |
updated_at | string | ISO 8601 timestamp when the summary was last updated |
Templates
Bota provides four built-in system templates optimized for different use cases:| Template ID | Target Industry | Output Format |
|---|---|---|
tmpl_general_notes | General meetings | Key points, action items, participants, decisions, overview |
tmpl_sales_call | Sales calls | Pain points, budget, timeline, next steps, sentiment, deal probability |
tmpl_clinical_soap | Healthcare | SOAP notes (Subjective, Objective, Assessment, Plan) |
tmpl_legal_memo | Legal consultations | Facts, issues, analysis, conclusion, parties involved |
Custom Prompts
For custom summarization, use theprompt parameter instead of template_id:
Summary Status
| Status | Description |
|---|---|
pending | Job queued, waiting to start |
processing | Summary generation in progress |
completed | Summary generated successfully |
failed | Summary generation failed (check error_message field) |
Auto-Summary
Instead of calling this endpoint manually, you can enable auto-summary to automatically generate a summary whenever a transcription completes. Configure via the hierarchical config system:Webhooks (Recommended)
For production use, subscribe to webhook events instead of polling:summary.started- Processing beginssummary.completed- Summary generated successfullysummary.failed- Summary generation failed
Summary generation typically takes 5-15 seconds, depending on transcript length and template complexity.

