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 inDocumentation Index
Fetch the complete documentation index at: https://docs.bota.dev/llms.txt
Use this file to discover all available pages before exploring further.
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.

