DemoBitesDemoBites
ExpertREST API

REST API

Three endpoints for integrating Expert into any tool that makes HTTP requests. Available on the Enterprise plan.


Base URL and auth

https://expert.demobites.com

All requests require a Bearer token:

Authorization: Bearer YOUR_API_KEY

POST/v2/search

Search your video knowledge base with a natural language query.

Request body

FieldTypeRequiredDescription
querystringYesNatural language search query
limitnumberNoMax results to return (default: 5)
languagestringNoISO language code (default: "en")

Example

curl
curl -X POST https://expert.demobites.com/v2/search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "How do I set up integrations?", "limit": 5}'

Response

JSON
{
  "results": [
    {
      "video_id": "abc123",
      "title": "Setting Up CRM Integration",
      "url": "https://hub.example.com/bites/crm-setup",
      "segments": [
        {
          "text": "Open Settings, then click Integrations...",
          "start_time": 15.2,
          "end_time": 28.7
        }
      ],
      "confidence": 0.94
    }
  ],
  "results_count": 1
}

GET/v2/video/{id}

Retrieve full details for a specific video, including the complete transcript and all caption segments.

Example

curl
curl https://expert.demobites.com/v2/video/abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

JSON
{
  "video_id": "abc123",
  "title": "Setting Up CRM Integration",
  "url": "https://hub.example.com/bites/crm-setup",
  "duration": 150.5,
  "full_transcript": "In this video, we'll walk through...",
  "captions": [
    {
      "text": "Open Settings, then click Integrations",
      "start_time": 15.2,
      "end_time": 28.7
    }
  ]
}

GET/v2/videos

List all videos in your Expert with cursor-based pagination.

Query parameters

ParamTypeDescription
cursorstringPagination cursor from previous response
limitnumberResults per page (default: 20)

Example

curl
curl "https://expert.demobites.com/v2/videos?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response

JSON
{
  "videos": [
    {
      "video_id": "abc123",
      "title": "Setting Up CRM Integration",
      "url": "https://hub.example.com/bites/crm-setup",
      "duration": 150.5
    }
  ],
  "next_cursor": "eyJpZCI6ImRlZjQ1NiJ9",
  "has_more": true
}

Error codes

All error responses follow a consistent format:

{"error": "Description of what went wrong"}
StatusMeaningCommon cause
400Bad RequestMissing or invalid query parameter
401UnauthorizedMissing or invalid API key
404Not FoundVideo ID does not exist
500Internal ErrorServer-side issue, retry or contact support