Bold VideoDocs

AI Recommendations

Get video recommendations

POST
/api/v1/ai/recommendations

Authorization

api_token
AuthorizationBearer <token>

API token provided by BOLD Admin

In: header

Request Body

application/json

Recommendations request

collection_id?string|null

Filter to a specific collection (legacy single-value filter)

collection_ids?|null

Filter to multiple collections (OR semantics)

include_guidance?boolean

Include AI guidance text explaining recommendations

Defaulttrue
limit?integer

Maximum recommendations (default: 5, max: 20)

stream?boolean

Stream response via SSE (default: true)

Defaulttrue
tags?|null

Filter by video tags

topics*array<string>

Topics or learning goals

Response Body

application/json

application/json

application/json

curl -X POST "https://app.boldvideo.io/api/v1/ai/recommendations" \  -H "Content-Type: application/json" \  -d '{    "limit": 5,    "topics": [      "authentication",      "user management"    ]  }'
{
  "guidance": "string",
  "recommendations": [
    {
      "download_urls": {},
      "title": "Introduction to BOLD",
      "id": "abc123",
      "cta": {},
      "chapters_url": "string",
      "playback_id": "string",
      "languages": [
        {
          "code": "es",
          "mux_audio_track_id": "string",
          "mux_subtitle_track_id": "string",
          "name": "Spanish",
          "ready": true,
          "role": "source",
          "subtitle_url": "string"
        }
      ],
      "internal_id": "550e8400-e29b-41d4-a716-446655440000",
      "type": "video",
      "stream_url": "string",
      "source_id": "dQw4w9WgXcQ",
      "legacy_video_url": "string",
      "duration": 120,
      "source_provider": "youtube",
      "updated_at": "2019-08-24T14:15:22Z",
      "created_at": "2019-08-24T14:15:22Z",
      "subtitles": {},
      "playback_speed": 0,
      "captions_label": "string",
      "attachments": [
        {
          "description": "string",
          "file_size": 42000,
          "file_url": "https://uploads.eu1.boldvideo.io/uploads/bt_demo/attachments/file.pdf",
          "id": 123,
          "mime_type": "application/pdf",
          "title": "Strategy worksheet.pdf"
        }
      ],
      "tags": [
        {}
      ],
      "teaser": "string",
      "published_at": "2019-08-24T14:15:22Z",
      "playback_mode": "native",
      "transcript": {},
      "progress": {
        "completed": false,
        "completed_at": null,
        "current_time": 300,
        "duration": 1000,
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "percentage": 30
      },
      "description": "string",
      "chapters": [
        {}
      ],
      "captions_lang": "string",
      "thumbnail": "string",
      "captions": "string",
      "slug": "introduction-to-bold",
      "meta_data": {},
      "imported_from": "string"
    }
  ],
  "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"
}