Skip to main content
GET
/
video-summaries
/
{id}
Get Video Summary
curl --request GET \
  --url https://api.bota.dev/v1/video-summaries/{id} \
  --header 'Authorization: Bearer <token>'
{
  "id": "vs_abc123",
  "recording_id": "rec_abc123",
  "status": "completed",
  "keyframes": [
    {
      "media_id": "med_005",
      "timestamp_ms": 15000,
      "caption": "Presenter shows architecture diagram on whiteboard with three-tier layout",
      "transcript_context": "At 0:15 — 'So here's our proposed architecture...'",
      "relevance_score": 0.95
    },
    {
      "media_id": "med_005",
      "timestamp_ms": 82000,
      "caption": "Close-up of database schema drawn on whiteboard",
      "transcript_context": "At 1:22 — 'The key tables are users, devices, and recordings'",
      "relevance_score": 0.88
    },
    {
      "media_id": "med_009",
      "timestamp_ms": 5000,
      "caption": "Team gathered around table reviewing printed report",
      "transcript_context": "At 3:45 — 'Let's look at last quarter's numbers'",
      "relevance_score": 0.82
    }
  ],
  "overview": "15-minute walkthrough of proposed system architecture, covering API gateway, worker queues, and database schema. Ends with quarterly review discussion.",
  "media_count": 3,
  "created_at": "2025-01-15T11:00:00Z",
  "completed_at": "2025-01-15T11:01:30Z"
}
This feature is Coming Soon and not yet available.

Overview

Retrieves a video summary by ID. Poll until status is completed, or listen for the video_summary.completed webhook.

Authentication

Requires a valid API key with video_summaries:read scope.

Path Parameters

id
string
required
Video summary ID (e.g., vs_abc123)

Response

{
  "id": "vs_abc123",
  "recording_id": "rec_abc123",
  "status": "completed",
  "keyframes": [
    {
      "media_id": "med_005",
      "timestamp_ms": 15000,
      "caption": "Presenter shows architecture diagram on whiteboard with three-tier layout",
      "transcript_context": "At 0:15 — 'So here's our proposed architecture...'",
      "relevance_score": 0.95
    },
    {
      "media_id": "med_005",
      "timestamp_ms": 82000,
      "caption": "Close-up of database schema drawn on whiteboard",
      "transcript_context": "At 1:22 — 'The key tables are users, devices, and recordings'",
      "relevance_score": 0.88
    },
    {
      "media_id": "med_009",
      "timestamp_ms": 5000,
      "caption": "Team gathered around table reviewing printed report",
      "transcript_context": "At 3:45 — 'Let's look at last quarter's numbers'",
      "relevance_score": 0.82
    }
  ],
  "overview": "15-minute walkthrough of proposed system architecture, covering API gateway, worker queues, and database schema. Ends with quarterly review discussion.",
  "media_count": 3,
  "created_at": "2025-01-15T11:00:00Z",
  "completed_at": "2025-01-15T11:01:30Z"
}

Response Fields

FieldTypeDescription
idstringVideo summary identifier (vs_*)
recording_idstringSource recording (rec_*)
statusstringpending, processing, completed, failed
keyframesarray | nullExtracted key frames with captions (null until completed)
keyframes[].media_idstringSource video media (med_*)
keyframes[].timestamp_msintegerFrame timestamp within the video in milliseconds
keyframes[].captionstringAI-generated description of the frame
keyframes[].transcript_contextstring | nullCorrelated transcript segment
keyframes[].relevance_scorenumberImportance score (0–1)
overviewstring | nullOverall narrative summary of the video content
media_countintegerNumber of video items processed
created_atstringCreation timestamp (ISO 8601)
completed_atstring | nullCompletion timestamp (ISO 8601)

Webhooks

EventDescription
video_summary.completedVideo summary finished successfully
video_summary.failedVideo summary encountered an error