Brightcove Profiles API

Operations creating and managing ingest profiles.

Operations 5

GET /accounts/{{account_id}}/profiles Get All Ingest Profiles #
POST /accounts/{{account_id}}/profiles Create Ingest Profile #
GET /accounts/{{account_id}}/profiles/{profile_id} Get Ingest Profile #
PUT /accounts/{{account_id}}/profiles/{profile_id} Update Ingest Profile #
DELETE /accounts/{{account_id}}/profiles/{profile_id} Delete Ingest Profile #

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-profiles-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-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Brightcove Ingest API Reference Profiles API
  description: 'Reference for the Brightcove Ingest Profiles API, used to create and manage ingest profiles that specify video and image renditions to be created, along with instructions for archiving masters.


    For additional in-depth guides to features of the API, see the **[general documentation](/ingest-profiles/guides/index.html)**.


    **Base URL**: https://ingestion.api.brightcove.com/v1'
  version: 1.0.0
  x-bc-access: public
servers:
- url: https://ingestion.api.brightcove.com/v1
  variables: {}
tags:
- name: Profiles
  description: Operations creating and managing ingest profiles.
paths:
  /accounts/{{account_id}}/profiles:
    get:
      tags:
      - Profiles
      summary: Get All Ingest Profiles
      description: 'Get an array of all the profiles valid for the account '
      operationId: GetAllIngestProfiles
      security:
      - BC_OAuth2:
        - video-cloud/ingest-profiles/profile/read
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileList'
        '401':
          description: 'NOT_AUTHORIZED: Credentials are required to access this resource. '
        '404':
          description: 'NOT_FOUND:    Error 404 NOT_FOUND  HTTP ERROR 404 Problem accessing /v1/accounts/578380001/profiles. Reason'
        '409':
          description: 'PROFILE_ERROR: profile rendition count exceeds configured rendition limit'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    post:
      tags:
      - Profiles
      summary: Create Ingest Profile
      description: Create a custom ingest profile for the account. Note that you can also do this through Video Cloud Studio
      operationId: CreateIngestProfile
      security:
      - BC_OAuth2:
        - video-cloud/ingest-profiles/profile/write
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Create a custom ingest profile for the account. Note that you can also do this through Video Cloud Studio
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestProfile'
        required: true
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestProfileResponse'
        '400':
          description: 'BAD_REQUEST: Invalid JSON - message varies according to the problem'
        '401':
          description: 'NOT_AUTHORIZED: Credentials are required to access this resource. '
        '404':
          description: 'NOT_FOUND:  Resource not found '
        '409':
          description: 'CONFLICT: Could not create profile with this name and id (profile name or id already exists)'
        '422':
          description: 'UNPROCESSABLE_ENTITY: required field missing - message varies according to the issue'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
  /accounts/{{account_id}}/profiles/{profile_id}:
    get:
      tags:
      - Profiles
      summary: Get Ingest Profile
      description: Get an ingest profile by its id
      operationId: GetIngestProfile
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/profile_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestProfileResponse'
        '401':
          description: 'NOT_AUTHORIZED: Credentials are required to access this resource. '
        '404':
          description: 'NOT_FOUND:    Error 404 NOT_FOUND  HTTP ERROR 404 Problem accessing /v1/accounts/578380001/profiles. Reason'
        '409':
          description: 'PROFILE_ERROR: profile rendition count exceeds configured rendition limit'
      deprecated: false
      security: []
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    put:
      tags:
      - Profiles
      summary: Update Ingest Profile
      description: Update a custom ingest profile for the account. Note that you can also do this through Video Cloud Studio
      operationId: UpdateIngestProfile
      security:
      - BC_OAuth2:
        - video-cloud/ingest-profiles/profile/write
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/profile_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        description: Update a custom ingest profile for the account. Note that you can also do this through Video Cloud Studio
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IngestProfile'
        required: true
      responses:
        '200':
          description: SUCCESS
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IngestProfileResponse'
        '400':
          description: 'BAD_REQUEST: Invalid JSON - message varies according to the problem'
        '401':
          description: 'NOT_AUTHORIZED: Credentials are required to access this resource. '
        '404':
          description: 'NOT_FOUND:  Resource not found '
        '409':
          description: 'CONFLICT: Could not create profile with this name and id (profile name or id already exists)'
        '422':
          description: 'UNPROCESSABLE_ENTITY: required field missing - message varies according to the issue'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
    delete:
      tags:
      - Profiles
      summary: Delete Ingest Profile
      description: Delete a custom ingest profile for the account. Note that you can also do this through Video Cloud Studio
      operationId: DeleteIngestProfile
      security:
      - BC_OAuth2:
        - video-cloud/ingest-profiles/profile/write
      parameters:
      - $ref: '#/components/parameters/account_id'
      - $ref: '#/components/parameters/profile_id'
      - $ref: '#/components/parameters/ContentType'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '204':
          description: NO CONTENT (success)
        '400':
          description: 'BAD_REQUEST: Invalid JSON - message varies according to the problem'
        '401':
          description: 'NOT_AUTHORIZED: Credentials are required to access this resource. '
        '404':
          description: 'NOT_FOUND:  Resource not found '
        '409':
          description: 'CONFLICT: Could not create profile with this name and id (profile name or id already exists)'
        '422':
          description: 'UNPROCESSABLE_ENTITY: required field missing - message varies according to the issue'
      deprecated: false
      x-operation-settings:
        CollectParameters: false
        AllowDynamicQueryParameters: false
        AllowDynamicFormParameters: false
        IsMultiContentStreaming: false
components:
  schemas:
    IngestProfile.dynamicOrigin.dynamicProfileOptions.maxResolution:
      title: IngestProfile.dynamic_origin.dynamic_profile_options.max_resolution
      type: object
      description: Defines the maximum resolution for renditions for **CAE profiles only**
      required:
      - height
      - width
      properties:
        height:
          type: integer
          description: Maximum height for renditions for **CAE profiles only** - defaults to the source height
          format: int32
        width:
          type: integer
          description: Maximum width for renditions for **CAE profiles only** - defaults to the source width
          format: int32
    IngestProfile:
      title: Ingest Profile
      required:
      - name
      - account_id
      type: object
      properties:
        id:
          description: System id for the profile
          type: string
          readOnly: true
        version:
          type: number
          description: system-managed version number
          readOnly: true
        name:
          type: string
          description: profile name (must be unique within the account)
        account_id:
          type: string
          description: Video Cloud account ID.
        dynamic_origin:
          $ref: '#/components/schemas/IngestProfile.dynamicOrigin'
        renditions:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.renditions'
          description: array of rendition maps **Legacy Ingest only** - should be an empty array for Dynamic Delivery
        packages:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.packages'
          description: array of package maps for DRM (see Content Security) **Legacy Ingest only** - should be an empty array for Dynamic Delivery
        description:
          type: string
          description: description of the profile
        digital_master:
          $ref: '#/components/schemas/IngestProfile.digitalMaster'
      example:
        name: multi-platform-standard-static
        account_id: '57838016001'
        display_name: Multiplatform Standard
        description: Deliver a wide range of content types across a variety of platforms on mobile and desktop.
        brightcove_standard: false
        digital_master:
          rendition: passthrough
          distribute: false
        renditions: []
        packages: []
        dynamic_origin:
          renditions:
          - default/audio64
          - default/audio128
          - default/video700
          - default/video2000
          - default/video1700
          - default/video1200
          - default/audio96
          - default/video450
          - default/video900
          images:
          - label: poster
            height: 720
            width: 1280
          - label: thumbnail
            height: 90
            width: 160
    IngestProfile.dynamicOrigin.dynamicProfileOptions:
      title: IngestProfile.dynamic_origin.dynamic_profile_options
      required:
      - min_renditions
      - max_renditions
      type: object
      properties:
        deinterlace:
          type: string
          description: Determines whether or not to apply a deinterlacing filter. Default is `detect` – if the input file is detected as interlaced, it will be deinterlaced. Set this to `on` to force deinterlacing (which will reduce quality if the input is not interlaced), or `off` to avoid deinterlacing.
          default: detect
        deinterlace_mode:
          type: string
          description: If not included or set to `frame-to-frame`, Video Cloud outputs will match the framerate of the input file. If set to `field-to-frame`, Video Cloud will double the framerate of the input file for the output. If you manually set framerate to double the framerate of the input file, Video Cloud will automatically set `deinterlace_mode` to `field-to-frame` and double the framerate for the output.
          default: frame-to-frame
        min_renditions:
          type: integer
          description: Minimum number of renditions to create for **CAE profiles only**
          format: int32
        max_renditions:
          type: integer
          description: Maximum number of renditions to create for **CAE profiles only**
          format: int32
        min_resolution:
          $ref: '#/components/schemas/IngestProfile.dynamicOrigin.dynamicProfileOptions.minResolution'
        max_resolution:
          $ref: '#/components/schemas/IngestProfile.dynamicOrigin.dynamicProfileOptions.maxResolution'
        max_bitrate:
          type: integer
          description: Maximum bitrate for renditions in kbps for **CAE profiles only**
          format: int32
        max_first_rendition_bitrate:
          type: integer
          description: Maximum bitrate for lowest bitrate rendition in kbps for **CAE profiles only**
          format: int32
        max_frame_rate:
          type: integer
          description: Maximum framerate for renditions in fps for **CAE profiles only**
          format: int32
          default: 30
        keyframe_rate:
          type: number
          description: The number of keyframes per second for renditions (So a value of 0.5 would result in one keyframe every two seconds; a value of 3 would result in three keyframes per second) for **CAE profiles only**
          default: 0.5
        select_baseline_profile_configuration:
          type: boolean
          description: At least one rendition used in the profile will be baseline profile for **CAE profiles only**
          default: false
        select_distinct_configurations:
          type: boolean
          description: 'If true, CAE will ensure that no two renditions use the same combination of: resolution, frame rate, and codec profile - for **CAE profiles only**'
          default: false
        video_codecs:
          type: array
          description: An array of codecs to create renditions for. This field is **used only in multi-codec CAE profiles.**
          items:
            type: string
            enum:
            - h264
            - hevc
          example:
          - h264
          - hevc
        video_codec_options:
          type: object
          description: 'Options for outputs for each of the codecs specified in `video_codecs`. The properties of `video_codec_options` are object with name of an included codec (currently `h264` or `hevc`). The allowed properties for each of these objects are


            - `min_renditions` **required**

            - `max_bitrate`

            - `max_first_rendition_bitrate`

            - `min_resolution`

            - `max_resolution`

            - `max_first_rendition_resolution`


            **Note:** these settings are also used at the global level. When you are using settings both at the global and per-codec levels, the values must be compatible. For example, `max_renditions` set at the global level must be greater than or equal to the sum of `min_rendition` values set at the per-codec level'
          example:
            dynamic_profile_options:
              max_renditions: 6
              video_codecs:
              - h264
              - hevc
              video_codec_options:
                h264:
                  min_renditions: 2
                  max_resolution:
                    width: 1280
                    height: 720
                hevc:
                  min_renditions: 2
                  max_resolution:
                    width: 1920
                    height: 1080
        video_configurations:
          type: array
          description: 'Array of specific rendition configurations that  is prioritized or mandated.


            **Note: use of required video configurations is *not* recommended unless you must have renditions that must have specific resolutions. Use of video configurations decreases the efficiency of Context Aware Encoding.**'
          items:
            $ref: '#/components/schemas/IngestProfile.dynamicOrigin.dynamicProfileOptions.video_configuration'
        watermarks:
          type: array
          description: Array of watermark objects specifying one or more watermarks to be added to renditions
          items:
            $ref: '#/components/schemas/IngestProfile.dynamicOrigin.dynamicProfileOptions.watermarks'
    IngestProfile.renditions:
      title: IngestProfile.renditions
      description: Rendition definitions **Legacy Ingest Only**  - should be an empty array for Dynamic Delivery
      required:
      - audio_bitrate
      - audio_codec
      - max_aac_profile
      - format
      - video_bitrate
      - video_codec
      - height
      - width
      type: object
      properties:
        audio_bitrate:
          type: integer
          description: audio bitrate in kbps **Legacy Ingest only**
          format: int32
        audio_codec:
          type: string
          description: audio codec, e.g. `aac` **Legacy Ingest only**
        max_aac_profile:
          type: string
          description: max aaic profile - `aac-lc` is the recommended value **Legacy Ingest only**
          default: aac-lc
          enum:
          - aac-lc
          - he-aac
          - he-aac-v2
        format:
          type: string
          description: video format, e.g. `mp4`, `ts` (for HLS), `m4f` for video, `png` or `jpg` for images **Legacy Ingest only**
        video_bitrate:
          type: integer
          description: target video bitrate in kbps **Legacy Ingest only**
          format: int32
        video_codec:
          type: string
          description: target video codec **Legacy Ingest only**
        height:
          type: integer
          description: target frame height in pixels **Legacy Ingest only**
          format: int32
        width:
          type: integer
          description: target frame width in pixels **Legacy Ingest only**
          format: int32
        watermarks:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.renditions.watermarks'
          description: array of watermark maps **Legacy Ingest only**
        aspect_mode:
          type: string
          description: how to handle mismatch between source and rendition aspect ratio **Legacy Ingest only**
          default: preserve
          enum:
          - preserve
          - stretch
          - crop
          - pad
        audio_channels:
          type: integer
          description: number of audio channels **Legacy Ingest only**
          enum:
          - 1
          - 2
        constant_bitrate:
          type: boolean
          description: whether to use constant bitrate for encoding **Legacy Ingest only**
          default: false
        crf:
          type: integer
          description: 1-51, not used by default. **Legacy Ingest only**
          format: int32
          minimum: 1
          maximum: 51
        decoder_bitrate_cap:
          type: integer
          description: In kbps, the max bitrate fed to the decoder **Legacy Ingest only**
          format: int32
        encryption_method:
          type: string
          description: encryption_method to use, e.g. `aes-128` **Legacy Ingest only**
        encryption_key_rotation_period:
          type: integer
          description: use a different key for each set of segments, rotating to a new key after this many segments **Legacy Ingest only**
          format: int32
          default: 10
        fixed_keyframe_interval:
          type: integer
          description: Forces a keyframe every X frames, but still allows additional keyframes - NOTE overrides `keyframe_interval` **Legacy Ingest only**
          format: int32
        forced_keyframe_rate:
          type: number
          description: Force the keyframe rate, h264 only, ignored if `forced_keyframe_interval` is used **Legacy Ingest only**
        frame_rate:
          type: integer
          description: frame rate in frames per second **Legacy Ingest only** - default is the source framerate
          format: int32
        h264_bframes:
          type: integer
          description: number of bframes for h.264 **Legacy Ingest only**
          format: int32
          default: 0
        h264_level:
          type: integer
          description: h.264 profile level **Legacy Ingest only**
        h264_profile:
          type: string
          description: h.264 profile **Legacy Ingest only**
          default: baseline
          enum:
          - baseline
          - main
          - high
        h264_reference_frames:
          type: integer
          description: number of h.264 reference frames to use **Legacy Ingest only**
          format: int32
          default: 3
        hls_optimized_ts:
          type: boolean
          description: Time segments optimized for HLS **Legacy Ingest only**
        keyframe_interval:
          type: integer
          description: Maximum number of frames between keyframes (default is 250, and overrides keyframe_rate) **Legacy Ingest only**
          format: int32
        keyframe_rate:
          type: integer
          description: Maximum number of keyframes per second **Legacy Ingest only**
          format: int32
        label:
          type: string
          description: Image type for image renditions; required for image renditions **Legacy Ingest only**
          enum:
          - poster
          - thumbnail
        live_stream:
          type: boolean
          description: Whether this will be for live streaming video **Legacy Ingest only**
          default: false
        live_sliding_window_duration:
          type: integer
          description: Duration of stream to keep available for LiveDVR delivery (in seconds) **Legacy Ingest only**
          default: 300
          minimum: 300
          maximum: 1800
        max_video_bitrate:
          type: integer
          description: Maximum video bitrate (h.264 only) **Legacy Ingest only**
          format: int32
        max_frame_rate:
          type: integer
          description: Limits the frame rate rather than sets it, use as an alternative to frame rate **Legacy Ingest only**
          format: int32
        media_type:
          type: string
          description: the media type of the rendition **Legacy Ingest only**
          enum:
          - video
          - audio
          - image
        one_pass:
          type: boolean
          description: force one-pass encoding **Legacy Ingest only**
          default: false
        reference_id:
          type: string
          description: A reference id for the rendition that is unique within the account - required for DRM packaging **Legacy Ingest only**
        segment_seconds:
          type: number
          description: 'number of seconds of content to include in segments (the default for HLS is 10; for DASH: 2) **Legacy Ingest only**'
        skip:
          $ref: '#/components/schemas/IngestProfile.renditions.skip'
        skip_video:
          type: boolean
          description: Set to true to skip video encoding for audio-only renditions **Legacy Ingest only**
          default: false
        speed:
          type: integer
          description: a target transcoding speed. Slower transcoding allows for more advanced file compression, while faster transcoding is possible by skipping some advanced compression features **Legacy Ingest only**
          format: int32
          default: 3
          minimum: 1
          maximum: 5
        streaming_delivery_format:
          type: string
          description: Sets the format/protocol for an output that will be delivered using a specific streaming configuration, including necessary manifests, directory **Legacy Ingest only**
        streaming_delivery_profile:
          type: string
          description: Sets the profile of the streaming delivery format, ensuring options are selected for compatibility with the profile **Legacy Ingest only**
          default: live
        type:
          type: string
          description: transmuxing type for HLS; typical value is `segmented` **Legacy Ingest only**
        upscale:
          type: boolean
          description: whether to upsize the frames if the source frame size is smaller than the target **Legacy Ingest only**
    IngestProfile.dynamicOrigin.images:
      title: IngestProfile.dynamic_origin.images
      type: object
      properties:
        label:
          type: string
          description: the kind of image this will be
          enum:
          - poster
          - thumbnail
        height:
          type: integer
          description: the height of the image in pixels
          format: int32
        width:
          type: integer
          description: the width of the image in pixels
          format: int32
    IngestProfile.renditions.skip:
      title: IngestProfiles.renditions.skip
      description: A set of conditions for skipping creation of this rendition see Conditional Output **Legacy Ingest only**
      type: object
      properties:
        min_audio_bitrate:
          type: integer
          description: the minimum audio bitrate that the source must have (kbps) **Legacy Ingest only**
          format: int32
        max_audio_bitrate:
          type: integer
          description: the maximum audio bitrate that the source must have (kbps) **Legacy Ingest only**
          format: int32
        min_video_bitrate:
          type: integer
          description: the minimum video bitrate that the source must have (kbps) **Legacy Ingest only**
          format: int32
        max_video_bitrate:
          type: integer
          description: the maximum video bitrate that the source must have (kbps) **Legacy Ingest only**
          format: int32
        require_audio:
          type: boolean
          description: if true the source must include an audio track **Legacy Ingest only**
        require_video:
          type: boolean
          description: if true the source must include a video track **Legacy Ingest only**
        min_size:
          type: string
          description: the source must be at least this resolution - string of the form "widthxheight" (e.g. "400x225") **Legacy Ingest only**
        max_size:
          type: string
          description: the source must be at most this resolution - string of the form "widthxheight" (e.g. "1920x1080") **Legacy Ingest only**
    IngestProfileResponse:
      title: Ingest Profile
      required:
      - name
      - account_id
      type: object
      properties:
        id:
          description: System id for the profile
          type: string
          readOnly: true
        version:
          type: number
          description: system-managed version number
          readOnly: true
        name:
          type: string
          description: profile name (must be unique within the account)
        account_id:
          type: string
          description: Video Cloud account ID.
          readOnly: true
        dynamic_origin:
          $ref: '#/components/schemas/IngestProfile.dynamicOrigin'
        renditions:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.renditions'
          description: array of rendition maps **Legacy Ingest only** - should be an empty array for Dynamic Delivery
        packages:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.packages'
          description: array of package maps for DRM (see Content Security) **Legacy Ingest only** - should be an empty array for Dynamic Delivery
        description:
          type: string
          description: description of the profile
        digital_master:
          $ref: '#/components/schemas/IngestProfile.digitalMaster'
      example:
        version: 2
        name: multi-platform-standard-static
        display_name: Multiplatform Standard
        description: Deliver a wide range of content types across a variety of platforms on mobile and desktop.
        account_id: -1
        brightcove_standard: true
        date_created: 1495114240899
        date_last_modified: 1503002227773
        digital_master:
          rendition: passthrough
          distribute: false
        renditions: []
        packages: []
        dynamic_origin:
          renditions:
          - default/audio64
          - default/audio128
          - default/video700
          - default/video2000
          - default/video1700
          - default/video1200
          - default/audio96
          - default/video450
          - default/video900
          images:
          - label: poster
            height: 720
            width: 1280
          - label: thumbnail
            height: 90
            width: 160
        id: 6198c17bbbdc42a4bb60a41f
    IngestProfile.dynamicOrigin.dynamicProfileOptions.video_configuration:
      title: IngestProfile.dynamicOrigin.dynamicProfileOptions.video_configuration
      description: 'A specific rendition resolution that is prioritized or mandated.


        **Note: use of required video configurations is *not* recommended unless you must have renditions that must have specific resolutions. Use of video configurations decreases the efficiency of Context Aware Encoding**'
      type: object
      required:
      - width
      - height
      properties:
        width:
          type: integer
          description: Video frame width [pixels]
        height:
          type: integer
          description: Video frame height [pixels]
        required:
          type: boolean
          description: Setting this to true will guarantee that a rendition will be created with these specifications
          default: false
      example:
        width: 428
        height: 240
        required: true
    IngestProfile.packages:
      title: IngestProfile.packages
      required:
      - drm
      - package_type
      - renditions
      type: object
      properties:
        drm:
          type: array
          items:
            type: string
          description: for MPEG-DASH, array of DRM types to apply, e.g. ["widevine", "playready"] **Legacy Ingest only**
        package_type:
          type: string
          description: for MPEG-DASH, the package type is `dash`; for other formats, the package type is the DRM type, e.g. `widevine` **Legacy Ingest only**
        renditions:
          type: object
          description: for MPEG-DASH, the renditions will be set to the `reference_id` for a single rendition; for other formats, renditions is set equal to an array of rendition `reference_id`'s **Legacy Ingest only**
    IngestProfile.dynamicOrigin:
      title: IngestProfile.dynamic_origin
      required:
      - renditions
      type: object
      properties:
        renditions:
          type: object
          description: names of audio and video renditions to include (audio only for CAE profiles) - see [Standard Ingest Profiles - renditions](/ingest-profiles/references/standard-ingest-profiles-dynamic-delivery-and-context-aware-encoding.html#Renditions) for available renditions you can choose from
        temporary_renditions:
          type: object
          description: names of video renditions for Fast Publish (only for CAE profiles) - see [Standard Ingest Profiles - renditions](/ingest-profiles/references/standard-ingest-profiles-dynamic-delivery-and-context-aware-encoding.html#Renditions) for available renditions you can choose from
        dynamic_profile_options:
          $ref: '#/components/schemas/IngestProfile.dynamicOrigin.dynamicProfileOptions'
        images:
          type: array
          items:
            $ref: '#/components/schemas/IngestProfile.dynamicOrigin.images'
          description: array of image specifications for poster and thumbnail (if omitted, no images will be captured during ingestion)
    IngestProfile.renditions.watermarks:
      title: IngestProfile.renditions.watermarks
      required:
      - url
      - width
      - height
      - x
      - y
      type: object
      properties:
        url:
          type: string
          description: URL for the watermark image **Legacy Ingest only**
        width:
          type: string
          description: width in pixels or percent of frame width; e.g. 20 or 10% - decimal values like 10.5% are not permitted **Legacy Ingest only**
        height:
          type: string
          description: height in pixels or percent of frame width; e.g. 20 or 10% - decimal values like 10.5% are not permitted **Legacy Ingest 

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brightcove/refs/heads/main/openapi/brightcove-profiles-api-openapi.yml