Skip to content

Summary

Last updated View as MarkdownAgent setup

RealtimeKit generates AI-powered meeting summaries from transcript data.

Models and Workers AI usage

RealtimeKit automatically selects a Workers AI model based on the estimated size of the transcript and prompts, plus an output token allowance. It currently uses these models:

Model When used
@cf/meta/llama-3.2-3b-instruct Requests that fit the Llama context budget or chunks from requests exceeding the GLM budget.
@cf/zai-org/glm-4.7-flash Requests that exceed the Llama context budget but fit the GLM budget.

If a request exceeds the GLM context budget, RealtimeKit splits the transcript into chunks. It uses Llama to summarize the chunks and combine their results, which requires multiple model calls. Cloudflare may change the models or how they are selected at any time.

Both summarization and transcription contribute to Workers AI usage on your Cloudflare account. Summarization usage depends on the model and the input and output tokens across model calls. For rates, refer to Workers AI model pricing.

Turn on summarization

Set summarize_on_end: true when creating a meeting. For post-meeting summaries, also set transcribe_on_end: true so RealtimeKit generates the summary automatically after the transcript is available:

curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/meetings" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Product Review",
    "transcribe_on_end": true,
    "summarize_on_end": true,
    "ai_config": {
      "transcription": {
        "language": "en-US"
      },
      "summarization": {
        "word_limit": 500,
        "text_format": "markdown",
        "summary_type": "team_meeting"
      }
    }
  }'

Configuration

Option Type Default Description
word_limit number 500 Summary length (150-1000 words)
text_format string markdown Output format: plain_text or markdown
summary_type string general Meeting context for tailored summaries

Summary types

Choose a type that matches your meeting for better results:

Type Best for
general Any meeting (default)
team_meeting Regular team syncs
daily_standup Agile standups
one_on_one_meeting 1:1 meetings
sales_call Customer sales conversations
client_check_in Client status updates
interview Job interviews
lecture Educational content
code_review Technical code reviews

Consume summaries

Webhook

Configure the meeting.summary event in RealtimeKit webhooks to receive the summary download URL when it is ready:

{
	"event": "meeting.summary",
	"meeting": {
		"id": "bbb8940e-1b97-402a-97d6-2708b7feca41",
		"sessionId": "05e57591-d89e-45c9-ae44-08dc1eaad0e0",
		"organizedBy": {
			"id": "c94c437b-592a-4a39-b9e2-47ef1451e43b",
			"name": "Example organization"
		}
	},
	"summaryDownloadUrl": "https://example.com/summary.txt",
	"summaryDownloadUrlExpiry": "2026-06-10T10:30:00.000Z"
}

REST API

Fetch summary

Refer to Fetch summary of transcripts for a session.

curl -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/sessions/$SESSION_ID/summary" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Trigger manually

Use the Generate summary of transcripts for the session API if summarize_on_end was not set and you want to generate a summary manually after the transcript is available.

curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/sessions/$SESSION_ID/summary" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Example output

With text_format: "markdown" and summary_type: "team_meeting":

## Meeting Summary

### Key Discussion Points

- Reviewed Q4 roadmap priorities
- Discussed deployment timeline for v2.0
- Identified blockers for the auth migration

### Action Items

- @alice: Update design specs by Friday
- @bob: Schedule security review
- @charlie: Create migration runbook

### Decisions Made

- Approved moving forward with Kubernetes migration
- Delayed analytics dashboard to next sprint

Retention

Summaries are stored for 7 days after the meeting ends.

Was this helpful?