Brightcove Client Credentials API
Create client credentials needed to get access tokens.
Create client credentials needed to get access tokens.
openapi: 3.0.3
info:
title: Brightcove Analytics API Reference Access Tokens Client Credentials 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: 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:
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
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
schemas:
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
MaximumScope:
title: maximum_scope
required:
- identity
type: object
properties:
identity:
description: map defining the account and operations
$ref: '#/components/schemas/MaximumScope.identity'
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
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)
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
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:
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))
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
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