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 API Testing Tools.\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