Summary
RealtimeKit generates AI-powered meeting summaries from transcript data.
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" } } }'| 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 |
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 |
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"}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"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"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 sprintSummaries are stored for 7 days after the meeting ends.