Skip to main content
Once a meeting ends, everything you need — summary, transcript, goal scores, strengths, growth areas, speech analytics — is returned by a single endpoint:
You only need a second call if you want the recording media URL.

The single call

The response includes: The analysis block contains:
  • summary, call_summary — short and long-form summaries
  • average_score, total_score — overall scoring
  • strengths, growth_areas — qualitative feedback
  • filler_words, weak_words, repetitions, sentence_starters — speech analytics
  • goal_results[] — per-goal score with short_description, long_description, score, and the original goal definition

Polling for analysis

Analysis is generated 30–60 seconds after the meeting ends. Poll GET /meetings/{id} and check analysis_status:
For production, use Webhooks (meeting.ended, analysis.completed) instead of polling.

Recording (separate call)

The transcript and analysis are inline. The recording media URL lives on the CDN and is fetched separately:
The recording is typically ready 2–5 minutes after the meeting ends — slower than analysis. You’ll get back a CloudFront URL plus a thumbnail. If you just want the raw URL without a thumbnail, use GET /recordings/meeting/{meetingId} instead.

Re-running analysis

If a meeting ended but analysis failed (or you’ve updated the scenario’s goals and want to re-score), trigger a fresh run:

Underlying endpoints

If you’d rather hit the individual resources directly: But for almost every integration, GET /meetings/{meetingId} is what you want.

Next steps

Webhooks

Get notified the moment analysis completes — skip polling.

Session Lifecycle

Understand the full flow from create → join → end → analysis.