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.
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
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