Skip to main content
POST
Generate a structured summary from a completed transcription. The transcription must be in 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.

Re-running and recovering a summary

A new template-based POST is a request to generate a result, not a status check. For the same transcription and template, it can delete and replace an existing completed or failed summary. A processing summary can also be replaced when its creation time is more than five minutes old; a pending or more recent processing summary rejects another create request. The old summary ID may no longer be retrievable after replacement. Save the returned sum_... ID and use GET to continue polling it. If a create response is lost, reconcile the existing summaries for that transcription before attempting another POST. Do not treat a timeout as evidence that no job was created, or switch automatically to a new idempotency key. The generic idempotency limitations still apply. The Node.js summary example demonstrates durable local intent, polling the saved ID, and explicit recovery without automatically requesting a replacement result.

Authentication

Requires an API key with summaries:write scope.

Request Body

string
required
The transcription’s unique identifier (e.g., txn_abc123). Must be in completed status.
string
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.
string
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.
string
LLM provider to use for summarization. If not specified, uses the system default.

Response

Returns the newly created summary object with pending status.

Response Fields

Templates

Bota provides four built-in system templates optimized for different use cases: System templates can be selected by template_id; custom one-off summaries can use prompt.

Custom Prompts

For custom summarization, use the prompt parameter instead of template_id:

Summary Status

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:
Auto-summary works with auto-transcription for a fully automated pipeline: upload → transcribe → summarize. See the Auto-Processing Guide for full details. For production use, subscribe to webhook events instead of polling: See Webhooks Overview for setup instructions.
Summary generation typically takes 5-15 seconds, depending on transcript length and template complexity.