AI Chat
Get a video chat conversation
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Video ID or slug
Conversation ID
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/ai/videos/string/chat/string"{
"conversation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"messages": [
{
"content": "string",
"id": "string",
"inserted_at": "2019-08-24T14:15:22Z",
"role": "user",
"sources": [
{}
]
}
],
"metadata": {},
"updated_at": "2019-08-24T14:15:22Z",
"video_id": "string"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Continue a video chat conversation
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Video ID or slug
Existing conversation ID
Request Body
application/json
Chat request
Existing conversation ID to continue
Current video playback position in seconds for contextual answers
Optional array of images (max 5). Requires the Vision feature flag. Each image can be base64-encoded or a URL.
items <= 5Maximum tokens in response
AI model to use (optional, uses account default)
The user's question or prompt
Whether to stream the response via SSE (default: true)
trueTemperature for response generation (0.0-2.0)
floatViewer identifier (UUID or your external ID) to associate with the conversation. When the viewers feature is enabled, the viewer's traits also personalize AI responses.
Tell the AI about the person asking, for this request only (never persisted). Pass free text/markdown, or a key-value object. Requires the viewers feature.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/ai/videos/string/chat/string" \ -H "Content-Type: application/json" \ -d '{ "prompt": "What are the key takeaways from this video?", "stream": false }'{
"content": "string",
"conversation_id": "string",
"id": "string",
"model": "claude-3-5-sonnet-20241022",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"video_id": "string"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Delete a video chat conversation
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Video ID or slug
Conversation ID
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X DELETE "https://app.boldvideo.io/api/v1/ai/videos/string/chat/string"{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}List video chat conversations
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Video ID or slug
Query Parameters
Max results (default 20, max 100)
Pagination offset (default 0)
Viewer UUID or external ID
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/ai/videos/string/chat?viewer=string"{
"conversations": [
{
"conversation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"message_count": 0,
"preview": "string",
"scope": "video",
"status": "string",
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"limit": 0,
"offset": 0
},
"video_id": "string"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Chat about a video
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Video ID or slug
Request Body
application/json
Chat request
Existing conversation ID to continue
Current video playback position in seconds for contextual answers
Optional array of images (max 5). Requires the Vision feature flag. Each image can be base64-encoded or a URL.
items <= 5Maximum tokens in response
AI model to use (optional, uses account default)
The user's question or prompt
Whether to stream the response via SSE (default: true)
trueTemperature for response generation (0.0-2.0)
floatViewer identifier (UUID or your external ID) to associate with the conversation. When the viewers feature is enabled, the viewer's traits also personalize AI responses.
Tell the AI about the person asking, for this request only (never persisted). Pass free text/markdown, or a key-value object. Requires the viewers feature.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/ai/videos/string/chat" \ -H "Content-Type: application/json" \ -d '{ "prompt": "What are the key takeaways from this video?", "stream": false }'{
"content": "string",
"conversation_id": "string",
"id": "string",
"model": "claude-3-5-sonnet-20241022",
"usage": {
"input_tokens": 0,
"output_tokens": 0
},
"video_id": "string"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Get conversation history
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Conversation ID
Response Body
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/ai/chat/string"{
"conversation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"messages": [
{
"content": "string",
"role": "user"
}
],
"updated_at": "2019-08-24T14:15:22Z"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Continue a library chat
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Conversation ID
Request Body
application/json
Chat request
Limit search to a specific collection (legacy single-value filter)
Limit search to multiple collections (OR semantics)
Continue an existing conversation
Optional array of images (max 5). Requires the Vision feature flag. Each image can be base64-encoded or a URL.
items <= 5Your question
Stream response via SSE (default: true)
trueFilter by video tags
Viewer identifier (UUID or your external ID) to associate with the conversation. When the viewers feature is enabled, the viewer's traits also personalize AI responses.
Tell the AI about the person asking, for this request only (never persisted). Pass free text/markdown, or a key-value object. Requires the viewers feature.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/ai/chat/string" \ -H "Content-Type: application/json" \ -d '{ "prompt": "What are the best practices for user authentication?", "stream": false }'{
"citations": [
{
"canonical_url": "string",
"cited": true,
"document_type": "string",
"id": "string",
"kind": "chunk",
"matched_sentence": {
"end_ms": 0,
"speaker_label": "string",
"speaker_name": "string",
"start_ms": 0,
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0
},
"moment_id": "string",
"mux_playback_id": "string",
"playback_id": "string",
"published_at": 0,
"slug": "string",
"speaker": "string",
"speaker_label": "string",
"speaker_name": "string",
"summary": "string",
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0,
"timestamp_url": "string",
"title": "string",
"transcript_excerpt": "string",
"type": "insight",
"video_id": "string",
"video_title": "string"
}
],
"content": "string",
"conversation_id": "string",
"metadata": {
"degraded": true,
"degraded_reason": "stage1_exhausted",
"retrieval_mode": "normal"
},
"response_type": "answer",
"sources": [
{
"canonical_url": "string",
"cited": true,
"document_type": "string",
"id": "string",
"kind": "chunk",
"matched_sentence": {
"end_ms": 0,
"speaker_label": "string",
"speaker_name": "string",
"start_ms": 0,
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0
},
"moment_id": "string",
"mux_playback_id": "string",
"playback_id": "string",
"published_at": 0,
"slug": "string",
"speaker": "string",
"speaker_label": "string",
"speaker_name": "string",
"summary": "string",
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0,
"timestamp_url": "string",
"title": "string",
"transcript_excerpt": "string",
"type": "insight",
"video_id": "string",
"video_title": "string"
}
]
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Delete a library chat conversation
Authorization
api_token API token provided by BOLD Admin
In: header
Path Parameters
Conversation ID
Response Body
application/json
application/json
application/json
application/json
curl -X DELETE "https://app.boldvideo.io/api/v1/ai/chat/string"{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}List library chat conversations
Authorization
api_token API token provided by BOLD Admin
In: header
Query Parameters
Max results (default 20, max 100)
Pagination offset (default 0)
Viewer UUID or external ID
Response Body
application/json
application/json
application/json
curl -X GET "https://app.boldvideo.io/api/v1/ai/chat?viewer=string"{
"conversations": [
{
"conversation_id": "string",
"created_at": "2019-08-24T14:15:22Z",
"message_count": 0,
"preview": "string",
"scope": "video",
"status": "string",
"title": "string",
"updated_at": "2019-08-24T14:15:22Z"
}
],
"pagination": {
"has_more": true,
"limit": 0,
"offset": 0
}
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}Chat with your video library
Authorization
api_token API token provided by BOLD Admin
In: header
Header Parameters
Set to "true" to bypass caching for this request. Requires allow_per_request_model to be enabled on the account.
Request Body
application/json
Chat request
Limit search to a specific collection (legacy single-value filter)
Limit search to multiple collections (OR semantics)
Continue an existing conversation
Optional array of images (max 5). Requires the Vision feature flag. Each image can be base64-encoded or a URL.
items <= 5Your question
Stream response via SSE (default: true)
trueFilter by video tags
Viewer identifier (UUID or your external ID) to associate with the conversation. When the viewers feature is enabled, the viewer's traits also personalize AI responses.
Tell the AI about the person asking, for this request only (never persisted). Pass free text/markdown, or a key-value object. Requires the viewers feature.
Response Body
application/json
application/json
application/json
curl -X POST "https://app.boldvideo.io/api/v1/ai/chat" \ -H "Content-Type: application/json" \ -d '{ "prompt": "What are the best practices for user authentication?", "stream": false }'{
"citations": [
{
"canonical_url": "string",
"cited": true,
"document_type": "string",
"id": "string",
"kind": "chunk",
"matched_sentence": {
"end_ms": 0,
"speaker_label": "string",
"speaker_name": "string",
"start_ms": 0,
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0
},
"moment_id": "string",
"mux_playback_id": "string",
"playback_id": "string",
"published_at": 0,
"slug": "string",
"speaker": "string",
"speaker_label": "string",
"speaker_name": "string",
"summary": "string",
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0,
"timestamp_url": "string",
"title": "string",
"transcript_excerpt": "string",
"type": "insight",
"video_id": "string",
"video_title": "string"
}
],
"content": "string",
"conversation_id": "string",
"metadata": {
"degraded": true,
"degraded_reason": "stage1_exhausted",
"retrieval_mode": "normal"
},
"response_type": "answer",
"sources": [
{
"canonical_url": "string",
"cited": true,
"document_type": "string",
"id": "string",
"kind": "chunk",
"matched_sentence": {
"end_ms": 0,
"speaker_label": "string",
"speaker_name": "string",
"start_ms": 0,
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0
},
"moment_id": "string",
"mux_playback_id": "string",
"playback_id": "string",
"published_at": 0,
"slug": "string",
"speaker": "string",
"speaker_label": "string",
"speaker_name": "string",
"summary": "string",
"text": "string",
"timestamp": 0,
"timestamp_end": 0,
"timestamp_end_seconds": 0,
"timestamp_seconds": 0,
"timestamp_url": "string",
"title": "string",
"transcript_excerpt": "string",
"type": "insight",
"video_id": "string",
"video_title": "string"
}
]
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}{
"code": "not_found",
"message": "Video not found",
"retryable": false,
"type": "error"
}