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-players-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 Player Management API Reference Players API
description: "Reference for the Brightcove Player Management API, used to manipulate players, player configurations and child players (embeds). To test API requests, you can use our [API Testing Tools](/getting-started/concepts-testing-tools-brightcove-apis.html). Popular testing tools include:\n\n - [cURL](https://general.support.brightcove.com/developer/concepts-set-curl.html)\n - [Postman](/general/use-postman-api-requests.html) - note that the tutorial here uses the Player Management API as an example\n - [Insomnia](/general/use-insomnia-api-requests.html) - note that the tutorial here uses the Player Management API as an example\n\nIf you haven't gone through [Step-by-Step: Player Management](/player-management/getting-started/step-step-player-management.html), it's highly recommended you start there. You'll get security set up and learn some of the basics of using the Player Management API.\n\nIf you are working with this API for the first time, read the [Player Management API Overview](/player-management/getting-started/overview-player-management-api.html).\n\nRemember that after making any configuration changes you **MUST** re-publish your player. **Note:** Fields in configuration objects need to be set only if you wish to change their values. Fields in configuration objects will be displayed in the response only if explicitly set. For information on authenticating API requests, see [OAuth Overview](/oauth/getting-started/overview-oauth-api-v4.html).\n\nFor additional in-depth guides to features of the API, see the **[general documentation](/player-management/references/index.html)**.\n\nBase URL: https://players.api.brightcove.com/v2"
version: 2.0.0
x-bc-access: public
servers:
- url: https://players.api.brightcove.com/v2
variables: {}
tags:
- name: Players
description: Operations for managing players.
paths:
/accounts/{{account_id}}/players:
get:
tags:
- Players
summary: Get a list of players
description: Get a list of players
operationId: GetPlayers
security:
- BC_OAuth2:
- video-cloud/player/read
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
responses:
'200':
description: SUCCESS
content:
application/json:
schema:
description: Success response
type: object
properties:
item_count:
type: integer
description: The number of items in the `items` array
items:
type: array
items:
$ref: '#/components/schemas/player_response'
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
tags:
- Players
description: Create a player. The POST method creates a player by submitting a player configuration. The properties of Brightcove Player you can manipulate with player management are detailed in the **Request Body Fields** section below. To create a player, a publisher must decide what properties the final player will have. If no properties are given at creation, a blank player will be created with only the base player skin applied to the player. A user may then use an HTTP PATCH method to update properties after the player has been created.
summary: Create a player
operationId: CreatePlayer
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
requestBody:
description: Create a player
content:
application/json:
schema:
$ref: '#/components/schemas/player_request_body'
required: true
responses:
'201':
description: SUCCESS
content:
application/json:
schema:
description: '200'
type: object
properties:
id:
type: string
description: The player id
readOnly: true
url:
type: string
description: The player URL
readOnly: true
embed_code:
type: string
description: The published player iframe tag
readOnly: true
embed_in_page:
type: string
description: URL to browse to retrieve the in-page embed code for published player
readOnly: true
preview_url:
type: string
description: URL to preview player
readOnly: true
preview_embed_in_page:
type: string
description: URL to browse to retrieve the in-page embed code for preview player
readOnly: true
preview_embed_code:
type: string
description: Preview player iframe tag
readOnly: true
example:
id: 69EmV4W8r
url: https://players.brightcove.net/57838016001/69EmV4W8r_default/index.html
embed_code: <iframe src='//players.brightcove.net/57838016001/69EmV4W8r_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
embed_in_page: https://players.brightcove.net/57838016001/69EmV4W8r_default/in_page.embed
preview_url: https://preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/index.html
preview_embed_in_page: https://preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/in_page.embed
preview_embed_code: <iframe src='//preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/accounts/{{account_id}}/players/{{player_id}}:
get:
tags:
- Players
summary: Get a single player
description: Get a player by ID
operationId: GetPlayer
security:
- BC_OAuth2:
- video-cloud/player/read
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/player_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
responses:
'200':
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/player_response'
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
patch:
tags:
- Players
description: Update a single player. The PATCH method can be used on a single player to do a VERY limited update. The only fields you can update in this manner are the `name` and `description` properties. All other player configuration must be done via the **PLAYER CONFIGURATIONS** APIs, detailed below.
summary: Update a player by ID
operationId: UpdatePlayer
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/player_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
requestBody:
description: Update the player
content:
application/json:
schema:
description: Update the player
type: object
properties:
name:
type: string
description: The player name
description:
type: string
description: The player description
required: true
responses:
'202':
description: SUCCESS
content:
application/json:
schema:
description: '200'
type: object
properties:
id:
type: string
description: The player id
readOnly: true
preview_url:
type: string
description: URL to preview player
readOnly: true
preview_embed_in_page:
type: string
description: URL to browse to retrieve the in-page embed code for preview player
readOnly: true
example:
id: 69EmV4W8r
url: https://players.brightcove.net/57838016001/69EmV4W8r_default/index.html
embed_code: <iframe src='//players.brightcove.net/57838016001/69EmV4W8r_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
embed_in_page: https://players.brightcove.net/57838016001/69EmV4W8r_default/in_page.embed
preview_url: https://preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/index.html
preview_embed_in_page: https://preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/in_page.embed
preview_embed_code: <iframe src='//preview-players.brightcove.net/v2/accounts/57838016001/players/69EmV4W8r/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
tags:
- Players
description: Delete a player and all embeds associated with it.
summary: Delete a player by ID
operationId: DeletePlayer
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/player_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
responses:
'200':
description: SUCCESS
content:
application/json:
schema:
description: SUCCESS
type: object
properties:
message:
type: string
description: Message indicating player was deleted
readOnly: true
example: 'Successfully deleted player with the id: 69EmV4W8r'
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/accounts/{{account_id}}/players/{{player_id}}/publish:
post:
tags:
- Players
summary: Publish a player
description: Publish a player for optimization and production use.
operationId: PublishPlayer
security:
- BC_OAuth2:
- video-cloud/player/all
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/player_id'
- $ref: '#/components/parameters/ContentType'
- $ref: '#/components/parameters/Authorization'
responses:
'201':
description: SUCCESS
content:
application/json:
schema:
description: '200'
type: object
properties:
id:
type: string
description: The player id
readOnly: true
url:
type: string
description: The player URL
readOnly: true
embed_code:
type: string
description: The published player iframe tag
readOnly: true
embed_in_page:
type: string
description: URL to browse to retrieve the in-page embed code for published player
readOnly: true
example:
id: SC5GzFPFkL
url: https://players.brightcove.net/57838016001/SC5GzFPFkL_default/index.html
embed_code: <iframe src='//players.brightcove.net/57838016001/SC5GzFPFkL_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
embed_in_page: https://players.brightcove.net/57838016001/SC5GzFPFkL_default/in_page.embed
'400':
description: 'BAD_REQUEST: the syntax of the API call is likely incorrect'
'401':
description: 'UNAUTHORIZED: Authentication failed - check to make sure your client credentials were correct for the access token'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'429':
description: 'RATE_LIMIT_EXCEEDED: Too many requests per second'
'500':
description: 'INTERNAL_SERVER_ERROR: there was an error trying to fulfill the request'
deprecated: false
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
components:
schemas:
player_response:
title: Create Player Request Body
type: object
description: Player object
properties:
account_id:
type: string
description: The account id
created_at:
type: string
description: The player creation date-time
embeds_count:
type: integer
description: The number of embeds (instances of this player), will always be at least 1
id:
type: string
description: The player id
last_viewed:
type: array
description: array of objects containing information about recent views of the player
items:
type: object
properties:
count:
type: integer
description: Number of the times the player was viewed
date:
type: string
description: Date-time string for the date of the views
name:
type: string
description: The player name
description:
type: string
description: The player description
url:
type: string
description: URL to player
branches:
type: object
description: The branches of the player - contains objects for the preview and master (published) player
properties:
preview:
type: object
description: The preview player branch
properties:
configuration:
$ref: '#/components/schemas/configuration'
updated_at:
type: string
description: date-time of last update to preview player
template_updated_at:
type: string
description: date-time of last update to preview player template
preview_url:
type: string
description: URL for the player
master:
type: object
description: The master (published) player branch
properties:
configuration:
$ref: '#/components/schemas/configuration'
updated_at:
type: string
description: date-time of last update to preview player
template_updated_at:
type: string
description: date-time of last update to preview player template
preview_url:
type: string
description: URL for the player
example:
account_id: '1752604059001'
id: default
name: Brightcove Default Player
description: This is an instance of the Brightcove Default Player. You can modify this or choose to create your own.
branches:
preview:
configuration:
player:
template:
version: 6.24.1
name: single-video-template
video_cloud:
policy_key: BCpkADawqM1TW0eSP6AUwWK5gRTb0ZL-Wb4SYZkb5unfFMVjCU4NYtePkcJaxArVJpQS1sd4PTJ2HP4TOzY1H3Z-zOM7w9_9y0XzoSI_Xg3F0FTNkcNLPJUVlo4cVnyyPK4qdx90f_xonqux
compatibility: true
updated_at: '2018-07-26T19:34:35.454Z'
template_updated_at: '2018-09-19T13:53:34.437Z'
preview_url: https://preview-players.brightcove.net/v2/accounts/1752604059001/players/default/preview/embeds/default/master/index.html
master:
configuration:
compatibility: true
video_cloud:
policy_key: BCpkADawqM1TW0eSP6AUwWK5gRTb0ZL-Wb4SYZkb5unfFMVjCU4NYtePkcJaxArVJpQS1sd4PTJ2HP4TOzY1H3Z-zOM7w9_9y0XzoSI_Xg3F0FTNkcNLPJUVlo4cVnyyPK4qdx90f_xonqux
player:
template:
name: single-video-template
version: 6.24.1
updated_at: '2018-07-26T19:34:35.476Z'
template_updated_at: '2018-09-19T13:53:39.568Z'
preview_url: https://preview-players.brightcove.net/v2/accounts/1752604059001/players/default/master/embeds/default/master/index.html
created_at: '2018-07-26T19:34:35.456Z'
embed_count: 1
url: https://players.brightcove.net/1752604059001/default_default/index.html
player_request_body:
title: Create Player Request Body
type: object
description: Player object
properties:
name:
type: string
description: A name for the player - avoid confusion by giving the player a name that will help convey what it should be used for
description:
type: string
description: A description of the player - avoid confusion by giving the player a description that will help convey what it should be used for
configuration:
$ref: '#/components/schemas/configuration'
example:
name: Test_Player
description: A test player for autoplay and video looping
configuration:
autoplay: any
loop: true
video_cloud:
video: '4093372393001'
configuration:
title: Player Configuration
type: object
description: Configuration for a player
properties:
ad_config_id:
type: string
description: A Dynamic Delivery SSAI ad configuration ID. In addition to being set on the player configuration, it can be set at runtime via the adConfigId query string parameter for iframe players or the data-ad-config-id attribute for in-page players. Either of these will override any value in the player configuration.
default: undefined
ad_failover:
type: boolean
description: 'Set to true to enable ad failover behavior. This is a multi-part configuration that depends on: <br> - Both IMA3 and SSAI plugins must be configured on the player. <br> - An ad_config_id should be available, otherwise SSAI ads are not available.'
default: undefined
application_id:
type: string
description: The application ID is used to differentiate multiple uses of a single player in metrics. It is invisible to the user.
default: undefined
autoadvance:
type: integer
description: 'Autoadvance setting if using playlists: 0 for no wait; a number for seconds between advance; null to cancel autoadvance'
default: not enabled
autoplay:
oneOf:
- type: boolean
description: If `autoplay` is set to a Boolean value the browser's native autoplay behavior is used.
- type: string
description: 'If `autoplay` is set to one of the following three valid string values, the following occurs:<br> - `play`: The player will manually try to call play.<br> - `muted`: The player will manually mute the player and call play.<br> - `any`: The player will first try to call play. If that fails, mute the player and call play.<br> If any of the above fail, the player will display the "Big Play Button" as if autoplay was set to false.'
enum:
- play
- auto
- any
description: Indicates player should play video immediately, on platforms that allow this
default: false
compatibility:
type: boolean
description: Provides compatibility with the Player 1.x.x API
readOnly: true
crossorigin:
type: boolean
description: 'If true, the underlying <video> element will have
crossorigin="anonymous". This means that any videos or text tracks pulled into the player must have CORS headers.
*This feature should only be used if you know that all your content (video and text tracks) have CORS headers applied to them.*'
readOnly: true
css:
type: object
description: Object containing CSS color overrides
properties:
controlBarColor:
type: string
description: Background color of control bar
default: '{set by player template}'
controlColor:
type: string
description: Color of buttons and text in control bar
default: '{set by player template}'
progressColor:
type: string
description: Color of progress bar
default: '{set by player template}'
debugger:
type: boolean
description: If true, debugger shows player information in a modal window. See the [Player Information Modal document](https://player.support.brightcove.com/troubleshooting/brightcove-player-information-modal.html) for full information.
errors:
type: boolean
description: Indicates if the error messages plugin should be excluded
flash:
type: object
description: Can be used to provide custom Flash options to **Video.js**.
fullscreenControl:
type: boolean
description: Indicates whether the fullscreen control should be shown in the control bar
hls:
oneOf:
- type: boolean
description: If `false`, the player will not include **videojs-contrib-hls**
- type: object
description: If an object is passed, it will be used as options for **videojs-contrib-hls**
properties:
captionServices:
type: object
description: Used to rename 608 captions
properties:
CC1:
type: object
description: Properties of the captions to use for CC1
properties:
language:
type: string
description: The language of the captions
example: en
label:
type: string
description: Label to used for these captions in the player controls
example: English
CC2:
type: object
description: Properties of the captions to use for CC2
properties:
language:
type: string
description: The language of the captions
example: en
label:
type: string
description: Label to used for these captions in the player controls
example: English
parse708captions:
type: boolean
default: true
description: Set to false to hide 708 captions if the encoder is sending both 608 and 708
description: Handling of **videojs-contrib-hls** and renaming of 608 captions
default: {}
language:
type: string
description: Can be provided to set the lang attribute of the <code translate="No"><html></code> element.
default: undefined
languages:
type: array
description: Languages (2 letter abbreviations) you wish your player to support, from the video.js supported list
items:
type: string
enum:
- ar
- ba
- bg
- ca
- cs
- da
- de
- el
- en
- es
- fa
- fi
- fr
- gl
- he
- hr
- hu
- it
- ja
- ko
- nb
- nl
- nn
- pl
- pt-BR
- pt-PT
- ru
- sk
- sr
- sv
- tr
- uk
- vi
- zh-CN
- zh-TW
loop:
type: boolean
description: Indicates if the video should play over as soon as it ends
default: false
media:
type: object
description: Media information for non-Video Cloud media
properties:
sources:
type: array
description: Array of non-Video Cloud media sources
items:
type: object
properties:
height:
type: integer
description: Video frame height in pixels
width:
type: integer
description: Video frame width in pixels
poster:
type: object
description: Information for the poster image
properties:
highres:
type: string
description: The file path to the poster image, relative to the root directory of the skin
src:
type: string
description: The URL of the video file to load into the player
title:
type: string
description: Content of the `<title>` element of the page
type:
type: string
description: MIME type of the video, as specified in the HTML5 standard, for instance `video/mp4` form MP4 or `application/x-mpegURL` for HLS
enum:
- video/mp4
- application/x-mpegURL
src:
type: string
description: The URL of the video file to load into the player
tracks:
type: array
description: Array of text track objects for non-Video Cloud media
items:
type: object
properties:
label:
type: string
description: Text label for the track, for instance `English` for an English language text track
src:
type: string
description: URL to source of track, required in a track object
srclang:
type: string
description: 2 letter code (valid BCP 47 language tag) for the language of the text track
muted:
type: boolean
description: If `true`, the player will be muted when it loads
default: false
play_button:
type: object
description: Properties are available for modification of the play button via player configuration
properties:
hover:
type: string
description: '`glow` or `darken`; default is pink / progress color'
enum:
- glow
- darken
shape:
type: string
description: '`square` or `rectangle`; default is a circle'
enum:
- square
- rectangle
position:
type: string
description: '`topLeft` or `topRight`; default is center'
e
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brightcove/refs/heads/main/openapi/brightcove-players-api-openapi.yml