Brightcove Credentials API

Operations for creating and managing credentials for secure destinations.

Operations 9

GET /accounts/{account_id}/credentials Get All S3 credentials #
POST /accounts/{account_id}/credentials Create S3 credentials #
GET /accounts/{account_id}/credentials/{credential_id} Get a S3 credential #
DELETE /accounts/{account_id}/credentials/{credential_id} Delete a S3 credential #
PATCH /accounts/{account_id}/credentials/{credential_id} Update an S3 credential #
GET /credentials List Credentials #
POST /credentials Create Credential #
PUT /credentials/{credential_id} Update Credential #
DELETE /credentials/{credential_id} Delete Credential #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brightcove:brightcove-credentials-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

brightcove-credentials-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Brightcove Credentials API
  version: 1.0.0
  description: 'Operations tagged Credentials across 2 of this provider''s published API definitions: brightcove-openapi.yml, live-api-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://cm.cloudplayout.brightcove.com
  description: Production server
- url: https://cm.cloudplayout.qa.brightcove.com
  description: QA server
- url: https://api.bcovlive.io/v1
  variables: {}
tags:
- name: Credentials
paths:
  /accounts/{account_id}/credentials:
    x-bc-throttle-key: null
    get:
      tags:
      - Credentials
      summary: Get All S3 credentials
      description: Get All S3 credentials for an account
      operationId: GetCredentials
      parameters:
      - name: account_id
        in: path
        description: Video Cloud account ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Content-Type
        in: header
        description: 'Content-Type: application/json'
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: application/json
      responses:
        200:
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAllCredentials'
        401:
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
          content: {}
        403:
          description: 'BAD_VALUE: Spelling error or other use of non-existent field '
          content: {}
        404:
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
          content: {}
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/cloud-playout/read
        - BC_CLOUD_PLAYOUT_READ
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-bc-throttle-key: null
    post:
      tags:
      - Credentials
      summary: Create S3 credentials
      description: Creates a S3 credential for a channel
      operationId: CreateCredentials
      parameters:
      - name: account_id
        in: path
        description: Video Cloud account ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Content-Type
        in: header
        description: 'Content-Type: application/json'
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: application/json
      requestBody:
        description: Creates an s3 credential for a channel
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Credential'
        required: true
      responses:
        200:
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialProperties'
        401:
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
          content: {}
        403:
          description: 'BAD_VALUE: Spelling error or other use of non-existent field '
          content: {}
        404:
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
          content: {}
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/cloud-playout/all
        - BC_CLOUD_PLAYOUT_WRITE
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-bc-throttle-key: null
    servers:
    - url: https://cm.cloudplayout.brightcove.com
      description: Production server
    - url: https://cm.cloudplayout.qa.brightcove.com
      description: QA server
  /accounts/{account_id}/credentials/{credential_id}:
    x-bc-throttle-key: null
    get:
      tags:
      - Credentials
      summary: Get a S3 credential
      description: Creates a S3 credential for a channel
      operationId: GetCredential
      parameters:
      - name: account_id
        in: path
        description: Video Cloud account ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Content-Type
        in: header
        description: 'Content-Type: application/json'
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: application/json
      - name: credential_id
        in: path
        description: Cloud Playout credential Id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        200:
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialProperties'
        401:
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
          content: {}
        403:
          description: 'BAD_VALUE: Spelling error or other use of non-existent field '
          content: {}
        404:
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
          content: {}
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/cloud-playout/read
        - BC_CLOUD_PLAYOUT_READ
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-bc-throttle-key: null
    delete:
      tags:
      - Credentials
      summary: Delete a S3 credential
      description: Creates a S3 credential for a channel
      operationId: DeleteCredential
      parameters:
      - name: account_id
        in: path
        description: Video Cloud account ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Content-Type
        in: header
        description: 'Content-Type: application/json'
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: application/json
      - name: credential_id
        in: path
        description: Cloud Playout credential Id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        200:
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncMessage'
              example:
                message: credential deleted successfully
        401:
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
          content: {}
        403:
          description: 'BAD_VALUE: Spelling error or other use of non-existent field '
          content: {}
        404:
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
          content: {}
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/cloud-playout/all
        - BC_CLOUD_PLAYOUT_WRITE
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-bc-throttle-key: null
    patch:
      tags:
      - Credentials
      summary: Update an S3 credential
      description: Creates a S3 credential for a channel
      operationId: UpdateCredential
      parameters:
      - name: account_id
        in: path
        description: Video Cloud account ID.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Content-Type
        in: header
        description: 'Content-Type: application/json'
        required: true
        style: simple
        explode: false
        schema:
          type: string
          default: application/json
      - name: credential_id
        in: path
        description: Cloud Playout credential Id
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        description: Creates an s3 credential for a channel
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Credential'
        required: true
      responses:
        200:
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialProperties'
        400:
          description: Bad Request
        401:
          description: 'UNAUTHORIZED: Authentication failed; check to make sure your client credentials were correct for the access token'
          content: {}
        403:
          description: 'BAD_VALUE: Spelling error or other use of non-existent field '
          content: {}
        404:
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested'
          content: {}
      deprecated: false
      security:
      - BC_OAuth2:
        - video-cloud/cloud-playout/all
        - BC_CLOUD_PLAYOUT_WRITE
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-bc-throttle-key: null
    servers:
    - url: https://cm.cloudplayout.brightcove.com
      description: Production server
    - url: https://cm.cloudplayout.qa.brightcove.com
      description: QA server
  /credentials:
    get:
      tags:
      - Credentials
      summary: List Credentials
      description: This endpoint can be used to get user credentials for a given user provided one has an API key.
      operationId: ListCredentials
      parameters:
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCredentials'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    post:
      tags:
      - Credentials
      summary: Create Credential
      description: Create a new credential.
      operationId: CreateCredential
      parameters:
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Create a new credential.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCredentialbody'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCredential'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    servers:
    - url: https://api.bcovlive.io/v1
      variables: {}
  /credentials/{credential_id}:
    put:
      tags:
      - Credentials
      summary: Update Credential
      description: Update a credential.
      operationId: putCredentialsByCredentialId
      parameters:
      - $ref: '#/components/parameters/CredentialId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      requestBody:
        description: Update a credential.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCredentialbody'
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCredential'
        '400':
          description: 'BAD_REQUEST: Invalid input value - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-operation-id-source: normalized
      x-operation-id-original: UpdateCredential
    delete:
      tags:
      - Credentials
      summary: Delete Credential
      description: Delete a credential.
      operationId: deleteCredentialsByCredentialId
      parameters:
      - $ref: '#/components/parameters/CredentialId'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/XAPIKEY'
      responses:
        '204':
          description: 'NO_CONTENT: the credential was deleted'
        '401':
          description: 'UNAUTHORIZED: Unauthorized - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '404':
          description: 'RESOURCE_NOT_FOUND: The api could not find the resource you requested - see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
        '500':
          description: 'INTERNAL_SERVER_ERROR: see [Live API Error Messages](/live-api/references/live-api-error-messages.html) for more details'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
      x-operation-id-source: normalized
      x-operation-id-original: DeleteCredential
    servers:
    - url: https://api.bcovlive.io/v1
      variables: {}
components:
  schemas:
    Credential:
      title: Credential
      required:
      - access_key
      - bucket
      - region
      - secret_key
      type: object
      properties:
        credtype:
          type: string
          description: Credential type
          enum:
          - s3
        bucket:
          type: string
          description: S3 bucket name (with the path, if needed); please make sure that the given access credential has write access to this bucket location
        access_key:
          type: string
          description: S3 Bucket access key
        secret_key:
          type: string
          description: S3 Bucket secret key
        region:
          type: string
          description: S3 region
      example:
        credtype: s3
        bucket: docexamplebucket1
        access_key: ALIBRIUROOGEQKWTPW5O
        secret_key: kTJvQU+7slC6beFqodyLSTnYps6Kr7WIDjFAo6sJ
        region: us-west-2
    CredentialProperties:
      title: CredentialObject
      type: object
      properties:
        public_id:
          type: string
          description: Id of the credential.
          readOnly: true
        account_id:
          type: string
          description: Account id.
        credtype:
          type: string
          description: Credential type.
          default: s3
        bucket:
          type: string
          description: S3 bucket name
        access_key:
          type: string
          description: Access key
        secret_key:
          type: string
          description: Secret key
        region:
          type: string
          description: S3 region
        created_at:
          type: string
          description: Time of credential creation.
        updated_at:
          type: string
          description: Time of credential update.
      example:
        public_id: 1d30c41ba9104ec0b48b01852696e45f
        account_id: '70701684296401'
        credtype: s3
        bucket: docexamplebucket1
        access_key: ALIBRIUROOGEQKWTPW5O
        secret_key: RGpR9xYU9xLbuCBgmuZc7HfrvO3VN/cHyrK53Hw=
        region: us-west-2
        created_at: 2021-07-05 10:30:00 UTC
        updated_at: 2021-07-05 10:30:00 UTC
    AsyncMessage:
      title: MessageObject
      type: object
      properties:
        message:
          type: string
          description: message from the api
    ListAllCredentials:
      title: GetAllCredentials
      type: object
      properties:
        items:
          type: array
          description: The list of credentials. List may be empty if no credentials are provisioned
          items:
            $ref: '#/components/schemas/Credential'
    CreateCredentialbody.oauthSettings:
      properties:
        url:
          description: OAuth access token URL for OAuth credentials needed to send notifications to a notification URL
          type: string
      required:
      - url
      title: Create_CredentialBody.oauth_settings
      description: OAuth settings for OAuth credentials needed to send notifications to a notification URL Required for oauth type credentials
      type: object
    ListCredentials:
      properties:
        Array:
          description: of credentials objects
          items:
            $ref: '#/components/schemas/Credentials'
          type: array
      required:
      - Array
      title: List_Credentials200
      type: object
    UpdateCredentialbody:
      properties:
        credential_default_for_type:
          description: Whether these are the default credentials for the request type
          type: boolean
        credential_label:
          description: Label for the credential
          type: string
        credential_private:
          description: Private key or password depending on the type
          type: string
        credential_public:
          description: Public key or password depending on the type
          type: string
        credential_type:
          description: The credential type
          enum:
          - ftp
          - http
          - oauth
          - rtmp
          - s3
          - videocloud
          - zencoder
          type: string
        oauth_settings:
          $ref: '#/components/schemas/UpdateCredentialbody.oauthSettings'
        user_id:
          description: GUID for which the credentials are being created.
          type: string
      required:
      - user_id
      - credential_default_for_type
      - credential_label
      - credential_type
      - credential_private
      - credential_public
      title: Update_CredentialBody
      type: object
    CreateCredential:
      properties:
        credential_id:
          description: The credential id
          type: string
        user_id:
          description: The user id
          type: string
      required:
      - credential_id
      - user_id
      title: Create_Credential_Response
      type: object
    UpdateCredential:
      properties:
        credential_id:
          description: The credential id
          type: string
        user_id:
          description: The user id
          type: string
      required:
      - credential_id
      - user_id
      title: Update_Credential_Response
      type: object
    CreateCredentialbody:
      properties:
        credential_default_for_type:
          description: Whether these are the default credentials for the request type
          type: boolean
          default: false
        credential_label:
          description: Label for the credential
          type: string
        credential_private:
          description: Private key or password depending on the type
          type: string
        credential_public:
          description: Public key or password depending on the type
          type: string
        credential_type:
          description: The credential type
          enum:
          - ftp
          - http
          - oauth
          - rtmp
          - s3
          - videocloud
          - zencoder
          type: string
        oauth_settings:
          $ref: '#/components/schemas/CreateCredentialbody.oauthSettings'
        user_id:
          description: GUID for which the credentials are being created.
          type: string
          default: (all users)
      required:
      - credential_label
      - credential_type
      - credential_private
      - credential_public
      title: Create_CredentialBody
      type: object
    Credentials:
      properties:
        credential_default_for_type:
          description: The clip label (from the input)
          type: boolean
        credential_id:
          description: The credential id
          type: string
        credential_private:
          description: The private key for the credential (not shown; represented by asterisks)
          type: string
        credential_public:
          description: The public key for the credential
          type: string
        label:
          description: The label used to reference the credential in requests
          type: string
        type:
          description: The credential type
          enum:
          - ftp
          - http
          - oauth
          - rtmp
          - s3
          - videocloud
          - zencoder
          x-enum-elements:
          - name: ftp
            description: credentials for FTP site where clips should be sent
          - name: http
            description: basic authorization credentials for an http address to send notifications to
          - name: oauth
            description: credentials for OAuth2 authentication required for the address where notifications are to be sent
          - name: rtmp
            description: add authentication to the endpoint your encoder connects to, so that anyone who has the RTMP URL can't just connect
          - name: s3
            description: authentication for your S3 bucket to send clips to
          - name: videocloud
            description: authentication for your Video Cloud account to send clips to
          - name: zendcoder
            description: authentication for your Zencoder account to send clips to
          type: string
        user_id:
          description: The user id
          type: string
      required:
      - credential_default_for_type
      - user_id
      - credential_private
      - type
      - label
      - credential_id
      - credential_public
      title: credentials
      type: object
    UpdateCredentialbody.oauthSettings:
      title: Update_CredentialBody.oauth_settings
      type: object
      description: OAuth settings for OAuth credentials needed to send notifications to a notification URL Required for oauth type credentials
      properties:
        url:
          description: OAuth access token URL for OAuth credentials needed to send notifications to a notification URL
          type: string
      required:
      - url
  parameters:
    CredentialId:
      name: credential_id
      in: path
      description: A credential ID
      required: true
      style: simple
      explode: false
      schema:
        type: string
    ContentType:
      name: Content-Type
      in: header
      description: 'Content-Type: application/json'
      required: true
      style: simple
      explode: false
      schema:
        type: string
        default: application/json
      example: application/json
    XAPIKEY:
      name: X-API-KEY
      in: header
      description: 'X-API-KEY: {Your_Live_API_Key}'
      required: true
      style: simple
      explode: false
      schema:
        type: string
  securitySchemes:
    BC_OAuth2:
      type: oauth2
      description: Brightcove OAuth API. See the [support documentation](https://support.brightcove.com/oauth-api) or [Getting Access Tokens](https://support.brightcove.com/oauth-api-sample-get-access-token) to learn more
      flows:
        clientCredentials:
          tokenUrl: https://oauth.qa.brightcove.com/v4/access_token
          scopes:
            video-cloud/cloud-playout/all: Able to manage cloud playout channels.
            video-cloud/cloud-playout/read: Able to read cloud playout channels.
            BC_CLOUD_PLAYOUT_READ: Permission-based access control
            BC_CLOUD_PLAYOUT_WRITE: Permission-based access control
x-refined-from:
- brightcove-openapi.yml
- live-api-openapi.yaml
x-bc-implicit-head: true
x-bc-implicit-options: true
x-bc-upstream: https://backend_server