Brightcove Client Credentials API
Create client credentials needed to get access tokens.
Create client credentials needed to get access tokens.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/brightcove-client-credentials-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: OAuth API Reference Client Credentials API
description: 'Reference for the Brightcove OAuth API, used to get client credentials and access tokens for the other APIs.
For additional in-depth guides to features of the API, see the **[general documentation](/oauth/index.html)**.
**Base URL**: https://oauth.brightcove.com/v4'
version: 4.0.0
servers:
- url: https://oauth.brightcove.com/v4
variables: {}
tags:
- name: Client Credentials
description: Create client credentials needed to get access tokens.
paths:
/client_credentials:
get:
tags:
- Client Credentials
summary: Get Client Credentials
description: 'Get an array of client credentials for one or more accounts '
operationId: GetClientCredentials
parameters:
- $ref: '#/components/parameters/Credentials_Content-Type'
- $ref: '#/components/parameters/Credentials_Authorization'
- $ref: '#/components/parameters/origin_account_ids'
responses:
'200':
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/GetClientCredentialsResponse'
'401':
description: 'UNAUTHORIZED: Authentication failed; The request does not carry authentication credentials sufficient to authorize the requested access.'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
deprecated: false
security: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
post:
tags:
- Client Credentials
summary: Create Client Credentials
description: 'Create client credential, consisting of a client-id and client_secret used in getting an access token for one or more APIs Note: client credentials are permanent unless revoked, but you must save the client secret when you create it - it can never be retrieved again.'
operationId: CreateClientCredential
parameters:
- $ref: '#/components/parameters/Credentials_Content-Type'
- $ref: '#/components/parameters/Credentials_Authorization'
requestBody:
description: 'Create client credential, consisting of a client-id and client_secret used in getting an access token for one or more APIs Note: client credentials are permanent unless revoked, but you must save the client secret when you create it - it can never be retrieved again.'
content:
application/json:
schema:
description: 'Create client credential, consisting of a client-id and client_secret used in getting an access token for one or more APIs Note: client credentials are permanent unless revoked, but you must save the client secret when you create it - it can never be retrieved again.'
$ref: '#/components/schemas/ClientCredentialbody'
required: true
responses:
'200':
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientCredentialResponse'
'400':
description: 'BAD_VALUE: The JSON could not be parsed '
'401':
description: 'UNAUTHORIZED: Authentication failed; The request does not carry authentication credentials sufficient to authorize the requested access.'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
'409':
description: 'REFERENCE_ID_IN_USE: The specified reference id is already in use
ILLEGAL_FIELD: Spelling error or other use of non-existent field
VALIDATION_ERROR: the JSON data was not valid; error messages vary depending on the problem'
deprecated: false
security: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
/client_credentials/{client_id}:
put:
tags:
- Client Credentials
summary: Update Client Credentials
description: 'Update a client credential '
operationId: UpdateClientCredential
parameters:
- $ref: '#/components/parameters/client_id'
- $ref: '#/components/parameters/Credentials_Content-Type'
- $ref: '#/components/parameters/Credentials_Authorization'
requestBody:
description: 'Create client credential, consisting of a client-id and client_secret used in getting an access token for one or more APIs Note: client credentials are permanent unless revoked, but you must save the client secret when you create it - it can never be retrieved again.'
content:
application/json:
schema:
description: 'Create client credential, consisting of a client-id and client_secret used in getting an access token for one or more APIs Note: client credentials are permanent unless revoked, but you must save the client secret when you create it - it can never be retrieved again.'
$ref: '#/components/schemas/ClientCredentialbody'
required: true
responses:
'200':
description: '200'
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientCredentialResponse'
'401':
description: 'UNAUTHORIZED: Authentication failed; The request does not carry authentication credentials sufficient to authorize the requested access.'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
deprecated: false
security: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
delete:
tags:
- Client Credentials
summary: Delete Client Credentials
description: Delete a client credential
operationId: DeleteClientCredential
parameters:
- $ref: '#/components/parameters/client_id'
- $ref: '#/components/parameters/Credentials_Content-Type'
- $ref: '#/components/parameters/Credentials_Authorization'
responses:
'200':
description: '200'
'401':
description: 'UNAUTHORIZED: Authentication failed; The request does not carry authentication credentials sufficient to authorize the requested access.'
'404':
description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
deprecated: false
security: []
x-operation-settings:
CollectParameters: false
AllowDynamicQueryParameters: false
AllowDynamicFormParameters: false
IsMultiContentStreaming: false
components:
parameters:
Credentials_Content-Type:
name: Content-Type
in: header
description: 'Content-Type: application/json'
required: true
style: simple
explode: false
schema:
type: string
Credentials_Authorization:
name: Authorization
in: header
description: 'Authorization: BC_TOKEN your_BC_TOKEN (see [Get BC_TOKEN](/oauth/code-samples/oauth-api-sample-create-client-credentials.html))'
required: true
style: simple
explode: false
schema:
type: string
client_id:
name: client_id
in: path
description: client id for the credential
required: true
style: simple
explode: false
schema:
type: string
origin_account_ids:
name: origin_account_ids
in: query
description: account id(s) to fetch credentials for.
required: true
style: form
explode: true
schema:
type: string
example: 1752604059001,57838016001
schemas:
ClientCredentialbody:
title: Create_Client_CredentialBody
required:
- type
- maximum_scope
- name
type: object
properties:
type:
type: string
description: always equal to credential
maximum_scope:
type: array
items:
$ref: '#/components/schemas/ClientCredentialbody.maximumScope'
description: array of maps specifying the accounts and API operations for the credentials
name:
type: string
description: name for the credentials
description:
type: string
description: description for the credentials
example:
type: credential
maximum_scope:
- identity:
type: video-cloud-account
account-id: 57838016001
operations:
- video-cloud/video/all
- video-cloud/asset/all
- video-cloud/notifications/all
name: update-test
MaximumScope:
title: maximum_scope
required:
- identity
type: object
properties:
identity:
description: map defining the account and operations
$ref: '#/components/schemas/MaximumScope.identity'
MaximumScope.identity:
title: maximum_scope.identity
required:
- type
- account-id
- operations
type: object
properties:
type:
type: string
description: the type of account
account-id:
type: integer
description: the account ID
operations:
type: array
items:
type: string
description: array of operations the credentials grant access to (see Operations)
GetClientCredentialsResponse:
title: Get Client Credentials Resposne
required:
- name
- name_html
- description
- description_html
- client_id
- client_secret
- type
- issued_to
- issued_user
- redirect_url
- trusted
- revoked
- expires_at
- issued_at
- maximum_scope
type: object
properties:
name:
type: string
description: credential name
name_html:
type: string
description: html version of credential name
description:
type: string
description: credential description
description_html:
type: string
description: html version of credential description
client_id:
type: string
description: the client id
client_secret:
type: string
description: client secret — note that it will always be null; it is returned only for the POST request that creates the credential
type:
type: string
description: the type - currently always equals credential
issued_to:
type: string
description: the email address of the account user issued to
issued_user:
type: string
description: system id for user issued to
redirect_url:
type: string
description: currently not used
trusted:
type: boolean
description: whether the client is trusted
revoked:
type: boolean
description: whether the credential is revoked
expires_at:
type: string
description: when the credential expires
issued_at:
type: string
description: when the credential was issued
maximum_scope:
type: array
items:
$ref: '#/components/schemas/MaximumScope'
description: array of maps specifying the accounts and API operations for the credentials
example:
- redirect_url: null
maximum_scope:
- identity:
type: video-cloud-account
account-id: 1485884786001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 1486906377
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 1752604059001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 20318290001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 3742124955001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 3921507403001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
- identity:
type: video-cloud-account
account-id: 57838016001
operations:
- video-cloud/asset/read
- video-cloud/ingest-profiles/profile/write
- video-cloud/playlist/all
- video-cloud/asset/delete
- video-cloud/audience/write
- video-cloud/video/all
- video-cloud/asset/create
- video-cloud/player/all
- video-cloud/ingest-profiles/account/write
- video-cloud/ingest-profiles/profile/read
- video-cloud/ingest-profiles/account/read
- video-cloud/notifications/all
- video-cloud/analytics/read
- video-cloud/asset/update
- video-cloud/audience/read
- video-cloud/upload-urls/read
name_html: U-BCL-SAMP-TV-BCT-BEML-ASDRM
issued_to: rcrooks@brightcove.com
trusted: null
expires_at: null
issued_at: '2016-10-04T12:19:32Z'
name: U-BCL-SAMP-TV-BCT-BEML-ASDRM
description_html: null
revoked: null
type: credential
client_secret: null
description: null
client_id: b10631d3-7597-4be8-b8b5-dce142f81006
issued_user: 53255203001
UpdateClientCredentialResponse:
title: Update_Client Credential Response
required:
- name
- name_html
- description
- description_html
- client_id
- client_secret
- type
- issued_to
- issued_user
- redirect_url
- trusted
- revoked
- expires_at
- issued_at
- maximum_scope
type: object
properties:
name:
type: string
description: credential name
name_html:
type: string
description: html version of credential name
description:
type: string
description: credential description
description_html:
type: string
description: html version of credential description
client_id:
type: string
description: the client id
client_secret:
type: string
description: client secret — note that it will always be null; it is returned only for the POST request that creates the credential
type:
type: string
description: the type - currently always equals credential
issued_to:
type: string
description: the email address of the account user issued to
issued_user:
type: string
description: system id for user issued to
redirect_url:
type: string
description: currently not used
trusted:
type: boolean
description: whether the client is trusted
revoked:
type: boolean
description: whether the credential is revoked
expires_at:
type: string
description: when the credential expires
issued_at:
type: string
description: when the credential was issued
maximum_scope:
type: array
items:
$ref: '#/components/schemas/MaximumScope'
description: array of maps specifying the accounts and API operations for the credentials
ClientCredentialbody.maximumScope.identity:
title: Create_Client_CredentialBody.maximum_scope.identity
required:
- type
- account-id
- operations
type: object
properties:
type:
type: string
description: the type of account
enum:
- video-cloud-account
account-id:
type: integer
description: the account ID
ClientCredentialbody.maximumScope:
title: Create_Client_CredentialBody.maximum_scope
required:
- identity
type: object
properties:
identity:
$ref: '#/components/schemas/ClientCredentialbody.maximumScope.identity'
operations:
type: array
items:
type: string
description: array of operations the credentials grant access to (see [Operations](/oauth/guides/api-operations-client-credentials-requests.html))
CreateClientCredentialResponse:
title: Create Client Credential Response
required:
- name
- name_html
- description
- description_html
- client_id
- client_secret
- type
- issued_to
- issued_user
- redirect_url
- trusted
- revoked
- expires_at
- issued_at
- maximum_scope
type: object
properties:
name:
type: string
description: credential name
name_html:
type: string
description: html version of credential name
description:
type: string
description: credential description
description_html:
type: string
description: html version of credential description
client_id:
type: string
description: the client id
client_secret:
type: string
description: client secret - note that this is the only request that will return the client secret; if you do not save it, there is no way to retrieve it again
type:
type: string
description: the type - currently always equals credential
issued_to:
type: string
description: the email address of the account user issued to
issued_user:
type: string
description: system id for user issued to
redirect_url:
type: string
description: currently not used
trusted:
type: boolean
description: whether the client is trusted
revoked:
type: boolean
description: whether the credential is revoked
expires_at:
type: string
description: when the credential expires
issued_at:
type: string
description: when the credential was issued
maximum_scope:
type: array
items:
$ref: '#/components/schemas/MaximumScope'
description: array of maps specifying the accounts and API operations for the credentials
example:
redirect_url: null
maximum_scope:
- identity:
type: video-cloud-account
account-id: 57838016001
operations:
- video-cloud/video/all
name_html: Test credentials
issued_to: rcrooks@brightcove.com
trusted: null
expires_at: null
issued_at: '2018-09-03T19:28:09Z'
name: Test credentials
description_html: null
revoked: null
type: credential
client_secret: OCGy1nKvsnPX09Yt6Djmu8hpecepIRWWmKnMccjDwygaR4Nc9R5ZspXc_oXYuVZqLLA
description: null
client_id: dc2e1dcc-006c-43fc-b57a-1868a8eec359
issued_user: 53255203001