Brightcove Live Analytics API

Analytics for Live streams

Operations 2

GET /v1/timeseries/accounts/{{account_id}} Get Live Analytics time-series #
GET /v1/events/accounts/{account_id} Get Live Analytics event #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brightcove-live-analytics-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

brightcove-live-analytics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Brightcove Analytics API Reference Live Analytics API
  description: "Reference for the Brightcove Analytics API, used to retrieve analytics data for your accounts. To test API requests, you can use our <a href=\"/getting-started/concepts-testing-tools-brightcove-apis.html\" target=\"_blank\">API Testing Tools</a>.\n\nFor additional in-depth guides to features of the API, see the **[general documentation](/analytics/index.html)**.\n\n **Base URL**: https://analytics.api.brightcove.com"
  x-bc-access: public
  version: 1.0.0
servers:
- url: https://analytics.api.brightcove.com
  variables: {}
tags:
- name: Live Analytics
  description: Analytics for Live streams
paths:
  /v1/timeseries/accounts/{{account_id}}:
    get:
      tags:
      - Live Analytics
      summary: Get Live Analytics time-series
      description: A time-series is defined as a an list of timestamp-value pairs representing samples of a variable (metric). The time-series API intends to allow the user to return a time-series for the set of metrics requested in the query.
      operationId: GetLiveTimeSeries
      security:
      - BC_OAuth2:
        - video-cloud/analytics/read
      parameters:
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept-Encoding'
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/live_dimensions'
      - $ref: '#/components/parameters/bucket_limit'
      - $ref: '#/components/parameters/bucket_duration'
      - $ref: '#/components/parameters/metrics'
      - $ref: '#/components/parameters/where'
      - $ref: '#/components/parameters/live_from'
      - $ref: '#/components/parameters/to'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get_Time_Series_Response'
        '400':
          description: 'BAD_REQUEST: The message fields of the response contains information about what caused the error such as invalid value for sort parameter

            INVALID_PARAM: The message fields of the response contains information about what invalid params were specified or required params were missing'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials are correct'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '405':
          description: 'METHOD_NOT_ALLOWED: This error occurs when the api request is made with an HTTP method other than GET'
        '500':
          description: 'SERVER_ERROR: Issue in Brightcove system; try again later

            PROCESSING: The analytics API may send back this message if it encounters a long running query. Once the query has finished it will be stored in the server’s cache for up to 5 minutes. Therefore we suggest querying the API 4 minutes after receiving this error'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /v1/events/accounts/{account_id}:
    get:
      tags:
      - Live Analytics
      summary: Get Live Analytics event
      description: Provides a summary of analytics data collected for a live stream.
      operationId: GetLiveEvents
      security:
      - BC_OAuth2:
        - video-cloud/analytics/read
      parameters:
      - $ref: '#/components/parameters/Content-Type'
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept-Encoding'
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/live_dimensions'
      - $ref: '#/components/parameters/metrics'
      - $ref: '#/components/parameters/live_where'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get_Events_Response'
        '400':
          description: 'BAD_REQUEST: The message fields of the response contains information about what caused the error such as invalid value for sort parameter

            INVALID_PARAM: The message fields of the response contains information about what invalid params were specified or required params were missing'
        '401':
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials are correct'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
        '405':
          description: 'METHOD_NOT_ALLOWED: This error occurs when the api request is made with an HTTP method other than GET'
        '500':
          description: 'SERVER_ERROR: Issue in Brightcove system; try again later

            PROCESSING: The analytics API may send back this message if it encounters a long running query. Once the query has finished it will be stored in the server’s cache for up to 5 minutes. Therefore we suggest querying the API 4 minutes after receiving this error'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  schemas:
    live_where:
      title: Live where
      enum:
      - country
      - device_type
      - video
      type: string
      example: video==6049313942001,6049313942002
      x-enum-elements:
      - name: country
        description: ''
      - name: device_type
        description: ''
      - name: video
        description: ''
    Get_Events_Response:
      title: Get Events Response
      type: object
      description: Get live events success response
      example:
        data:
        - dimensions:
            country: US
          totals:
            live_unique_viewers: 1267
            video_seconds_viewed: 126755
            alive_ss_ad_start: 1274
        - dimensions:
            country: GB
          totals:
            live_unique_viewers: 2267
            video_seconds_viewed: 136005
            alive_ss_ad_start: 1024
      properties:
        data:
          type: array
          description: array containing metrics per dimension(s)
          items:
            type: object
            description: object containing `dimensions` and `totals` objects
            properties:
              dimensions:
                type: object
                description: Object containing dimension/value that the associated metrics are for
              totals:
                type: object
                description: Object containing metric/value pairs for the associated dimensions
    Get_Time_Series_Response:
      title: Get Time-Series Response
      type: object
      description: Get Live time-series success response
      example:
        video_impression:
          data:
          - dimensions:
              video: '6063969160001'
              account: '57838016001'
            points:
            - timestamp: 1564075800000
              value: 11.0
            - timestamp: 1564077600000
              value: 3.0
        video_view:
          data:
          - dimensions:
              video: '6063969160001'
              account: '57838016001'
            points:
            - timestamp: 1564075800000
              value: 11.0
            - timestamp: 1564077600000
              value: 1.0
        video_seconds_viewed:
          data:
          - dimensions:
              video: '6063969160001'
              account: '57838016001'
            points:
            - timestamp: 1564075800000
              value: 3185.0
            - timestamp: 1564077600000
              value: 514.0
        alive_ss_ad_start: {}
        fingerprint_count:
          data:
          - dimensions:
              video: '6063969160001'
              account: '57838016001'
            points:
            - timestamp: 1564075800000
              value: 9.0
            - timestamp: 1564077600000
              value: 6.0
            - timestamp: 1564079400000
              value: 1.0
        ccu:
          data:
          - dimensions:
              video: '6063969160001'
              account: '57838016001'
            points:
            - timestamp: 1564075800000
              value: 9.0
            - timestamp: 1564077600000
              value: 6.0
            - timestamp: 1564079400000
              value: 1.0
      properties:
        interval:
          type: array
          description: array containing the start and end points for the interval in the units specified by the `bucket_duration` parameter
          items:
            type: integer
        dimensions:
          type: object
          description: A set of dimension/value pairs corresponding to the dimensions specified in the `dimensions` parameter
        points:
          type: array
          description: An array of objects containing metrics for the points in the time-series
          items:
            type: object
            description: An object containing the `timestamp` value (in the units specified in the `bucket_duration` parameter) and values of the metrics (specified in the `metrics` parameter) at the timestamp
    LiveDimensions:
      enum:
      - video
      - video,country
      - video, device_type
  parameters:
    live_where:
      name: where
      in: query
      description: "One or more filters to limit responses for Live Analytics requests\nAvailable filters:\n  - video\n  - country\n  - device_type"
      required: true
      style: form
      explode: true
      schema:
        $ref: '#/components/schemas/live_where'
    live_from:
      name: from
      in: query
      description: '''Start time for the period covered by the report — epoch time in milliseconds (`1535654206775`) or a date in the format `yyyy-mm-dd` (such as `2013-09-26`)'''
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
        - type: integer
        default: 32 days before now
        example: 2018-01-01
    Accept-Encoding:
      name: Accept-Encoding
      in: header
      description: 'Accept-Encoding: gzip (optional)'
      required: true
      style: simple
      explode: false
      schema:
        type: string
    bucket_duration:
      name: bucket_duration
      in: query
      description: '''Intervals duration in the form of an integer plus `m` (minutes), `h` (hours), or `d` (days)'''
      example: 5m
      required: false
      style: form
      explode: true
      schema:
        type: string
    where:
      name: where
      in: query
      description: one or more 'dimension==value' pairs to filter the results; for live, the only available filters are `country`, `device-type`, and `video`. This is a filter in which the options areL where in the world, in which device or which part of the video. In this case, the property is called where as if to use some DSL that mimics the SQL syntax, and that is why it is called where
      required: true
      style: form
      explode: true
      schema:
        $ref: '#/components/schemas/live_where'
    Content-Type:
      name: Content-Type
      in: header
      description: 'Content-Type: application/json'
      required: true
      style: simple
      explode: false
      schema:
        type: string
    metrics:
      name: metrics
      in: query
      description: "Data metrics to return for live analytics requests:\n\n  - `video_impression` - the number of video impressions\n  - `video_view` - the number of video views\n  - `video_seconds_viewed` - seconds of video viewed\n  - `alive_ss_ad_start` - SSAI ad starts\n  - `fingerprint_count` - \"fingerprint\" (user) count\n  - `ccu` - concurrent viewers"
      required: true
      style: form
      explode: true
      schema:
        type: string
        enum:
        - video_impression
        - video_view
        - video_seconds_viewed
        - alive_ss_ad_start
        - fingerprint_count
        - ccu
        example: video_view,alive_ss_ad_start,ccu
    live_dimensions:
      name: dimensions
      in: query
      description: "One or more dimensions to report on for Live Analytics requests\nDimensions:\n  - video\n  - video, country\n  - video, device_type"
      required: true
      style: form
      explode: true
      schema:
        $ref: '#/components/schemas/LiveDimensions'
    Authorization:
      name: Authorization
      in: header
      description: 'Authorization: Bearer access_token (see Getting Access Tokens)'
      required: true
      style: simple
      explode: false
      schema:
        type: string
    bucket_limit:
      name: bucket_limit
      in: query
      description: '''Max number of points to be returned for a time-series'''
      required: false
      example: 10
      style: form
      explode: true
      schema:
        type: integer
    to:
      name: to
      in: query
      description: End time for the period covered by the report — `now` or epoch time in milliseconds (`1535654206775`) or a date in the format `yyyy-mm-dd` (such as `2013-09-26`)
      style: form
      explode: true
      schema:
        oneOf:
        - type: string
        - type: integer
        default: now
        example: '2018-09-01'
    account_id:
      name: account_id
      in: path
      description: a Video Cloud account ID
      required: true
      style: simple
      explode: false
      schema:
        type: string
  securitySchemes:
    BC_OAuth2:
      type: oauth2
      description: Brightcove OAuth API. See the [support documentation](/oauth/index.html) or [Getting Access Tokens](/oauth/code-samples/oauth-api-sample-get-access-token.html) to learn more
      flows:
        clientCredentials:
          tokenUrl: https://oauth.brightcove.com/v4/access_token
          scopes:
            video-cloud/analytics/read: Read analytics data
            video-cloud/video/read: Read video data
x-bc-implicit-head: true
x-bc-implicit-options: true
x-bc-upstream: https://backend_server