openapi: 3.2.0 info: title: Millicast Media Assets API description: '# Introduction Controlling publishing for your Millicast account.' version: 1.0.0 servers: - url: https://api.millicast.com security: - API_Secret: [] tags: - name: Media Assets paths: /api/v3/media/assets: post: tags: - Media Assets summary: Create Media Asset description: 'Create a live clip from an ongoing live stream. You must provide the stream name and start time, and once processing is complete the media asset of the type clip will be available for retrieval. If a stop time is not specified, the time the request was received will be used. The clip duration must be a minimum of ten (10) seconds and cannot exceed eight (8) hours. There are a few cases where more than one clip will be generated from a single request. 1. A stream went offline during the time range will generate separate clips for the period before and after the restart. 2. A stream that is configured for multi-source when a simulcastId is not given in the request to select a single layer. 3. A stream that is configured for multi-bitrate contribution or redundant fallback ingest and a sourceId is not given in the request to specify which to use. In that scenario, sources will be ranked based on the following criteria and the highest ranked source is selected for clipping: * priority * quality * start time By using an `Idempotency-Key` header in your requests, you can avoid generating more than one identical clip should the same request be received more than once. To avoid unnecessary charges, it is recommended you use a common identifier for live clip requests based on a common source stream and time range. For background on the usage of this header, please refer to the IETF Draft' operationId: MediaAssets_CreateMediaAsset requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/CreateMediaAssetModel' required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfListOfMediaAssetResponseModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] get: tags: - Media Assets summary: List Media Assets description: 'List media assets, excluding those that have been deleted. A media asset can be: * A `"recording"` that is from the full duration of the stream * A `"clip"` which is generated from Create Media Asset * A `"timeline"` which is a series of segments that is buffered in a cache and available for clipping. A `"timeline"` is capped at a 12 hour duration or whenever the stream is re-started. * Of type `storageValidation`, which is a record reflecting the outcome of triggering Validate Third Party Storage Setup' operationId: MediaAssets_ListMediaAssets parameters: - name: sort in: query schema: default: startTime oneOf: - $ref: '#/components/schemas/ListMediaAssetSortBy' x-position: 1 - name: status in: query style: form explode: true description: 'Defaults to "Processing" and "Complete" unless specified. ' schema: type: - array - 'null' items: $ref: '#/components/schemas/MediaAssetStatus' x-position: 2 - name: type in: query style: form explode: true description: Optional. Defaults to "Clip" and "Recording" unless specified. schema: type: - array - 'null' items: $ref: '#/components/schemas/MediaAssetType' x-position: 3 - name: name in: query description: 'Optional. Filter by media asset name. ' schema: type: - string - 'null' x-position: 4 - name: streamName in: query description: Optional. schema: type: - string - 'null' x-position: 5 - name: tokenId in: query description: Optional. schema: type: - integer - 'null' x-position: 6 - name: sourceId in: query description: Optional. schema: type: - string - 'null' x-position: 7 - name: simulcastId in: query description: 'Optional. If the query parameter is provided without specifying a value, i.e. `?simulcastId&...`, response will return entries where the simulcastId is an empty string. There is no filter for unset or `null` simulcastIds. ' schema: type: - string - 'null' x-position: 8 - name: priority in: query description: Optional. schema: type: - integer - 'null' format: int32 x-position: 9 - name: page in: query schema: type: integer default: 1 maximum: 2147483647.0 minimum: 1.0 x-position: 10 - name: limit in: query schema: type: integer default: 25 maximum: 100.0 minimum: 1.0 x-position: 11 - name: desc in: query schema: type: boolean default: false x-position: 12 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfListOfDownloadMediaAssetModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' security: - API_Secret: [] delete: tags: - Media Assets summary: Delete Media Assets description: Deletes multiple media assets from storage. Only media assets with status Complete or Error can be deleted. operationId: MediaAssets_DeleteMediaAssets parameters: - name: id in: query style: form explode: true required: true description: A list of media asset identifiers to delete. schema: type: - array - 'null' maxItems: 100 minItems: 1 items: type: string x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDeleteMediaAssetsResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] /api/v3/media/assets/upload: post: tags: - Media Assets summary: Generate Upload Credentials description: Generate AWS access credentials for uploading media to a specified S3 location within the Dolby system. operationId: MediaAssets_GetUploadCredentials responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfUploadCredentialsResponseModel' examples: simple: summary: simple value: status: success data: - path: s3://optiview-bucket/account-id/session-name/ buckeName: optiview-bucket objectPrefix: account-id/session-name accessKeyId: '[redacted]' secretAccessKey: '[redacted]' sessionToken: '[redacted]' expiration: '2025-09-16T13:24:23Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] /api/v3/media/assets/register: post: tags: - Media Assets summary: Register Media Asset description: Register media asset upon completion of content upload. Call this after generating credentials to upload and then uploading your media. This will cause our service to scan the upload location for completed uploads. operationId: MediaAssets_RegisterMediaAsset requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/RegisterMediaAssetModel' examples: mp4: summary: mp4 value: objectPrefix: optiview-bucket/account-id/session-name/custom-prefix/my-asset.mp4 hls: summary: hls value: objectPrefix: optiview-bucket/account-id/session-name/custom-prefix entrypoint: main.m3u8 required: true x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfMediaAssetResponseModel' examples: mp4: summary: mp4 value: status: success data: - id: 39f12579a0b7440b8497e7b20595a9ae hls: summary: hls value: status: success data: - id: 126m0pta0b754nb84y7e94he2546vbn3 '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] /api/v3/media/assets/{mediaAssetId}: get: tags: - Media Assets summary: Read Media Asset description: Gets media asset specified by id. Includes temporary download link and a CDN served link if the media asset is complete. operationId: MediaAssets_ReadMediaAsset parameters: - name: mediaAssetId in: path required: true schema: type: string x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDownloadMediaAssetModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] patch: tags: - Media Assets summary: Update Media Asset description: 'Update media asset settings. Note: This will not make any updates related to the media itself such as adding or updating the media files.' operationId: MediaAssets_UpdateMediaAsset parameters: - name: mediaAssetId in: path required: true schema: type: string x-position: 1 requestBody: x-name: model content: application/json: schema: $ref: '#/components/schemas/UpdateMediaAssetModel' required: true x-position: 2 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDownloadMediaAssetModel' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/FailResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] /api/v3/media/assets/all/{type}: delete: tags: - Media Assets summary: Delete All Media Assets description: Deletes all media assets of a specified type from storage. operationId: MediaAssets_DeleteMediaAssets2 parameters: - name: type in: path required: true schema: $ref: '#/components/schemas/MediaAssetType' x-position: 1 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SuccessResponseOfDeleteMediaAssetsResponse' default: description: Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: general: summary: general value: status: error message: simple error reason code: 500 data: additional: other data here (not actual key) security: - API_Secret: [] components: schemas: MediaAssetType: type: string description: '' x-enumNames: - Recording - Clip - StorageValidation - Timeline - Vod enum: - recording - clip - storageValidation - timeline - vod MediaAssetFeedSelectionModel: type: object additionalProperties: false properties: tokenId: type: - integer - 'null' description: The identifier of the token. streamName: type: - string - 'null' description: The stream name. sourceId: type: - string - 'null' description: The source ID. simulcastId: type: - string - 'null' description: The simulcast Id. priority: type: - integer - 'null' description: The feed priority. format: int32 channelId: type: - string - 'null' description: The identifier of the channel. MediaAssetStorageType: type: string description: '' x-enumNames: - Gcs - AwsS3 - DolbyStorage enum: - gcs - awsS3 - dolbyStorage UpdateStorageOptionsModel: type: object additionalProperties: false properties: objectPrefix: type: - string - 'null' description: Optional. Prefix to object when stored in bucket i.e. `protocol`://`bucketName`/`objectPrefix`/`objectName.ext`. Ignored when using Dolby.io's storage buckets. `objectName` is either defined by a system assigned GUID or the user-specified `clipName`. maxLength: 1000 minLength: 0 bucketName: type: - string - 'null' description: Name of bucket to upload clips to. Please ensure Dolby.io's service account is granted access. bucketRegion: type: - string - 'null' description: Region of the specified bucket if using storage provider awsS3 maxLength: 32 minLength: 1 UploadCredentialsResponseModel: type: object additionalProperties: false properties: accessKeyId: type: - string - 'null' description: The AWS Access Key Id. secretAccessKey: type: - string - 'null' description: The AWS Access Key Secret. sessionToken: type: - string - 'null' description: The AWS session token. expiration: type: - string - 'null' description: Credentials expire within 1 hr by default. Please upload and register media assets before expiry. path: type: - string - 'null' description: Path to upload media asset contents. Path is in the form of `s3:////` bucketName: type: - string - 'null' description: S3 bucket to which content can be uploaded to objectPrefix: type: - string - 'null' description: Prefix of S3 locaton to which content can be uploaded to MediaAssetTargetFormat: type: string description: '' x-enumNames: - Mp4 - Hls enum: - mp4 - hls ListMediaAssetSortBy: type: string description: '' x-enumNames: - StartTime - StopTime - StreamName - TokenId - Created enum: - startTime - stopTime - streamName - tokenId - created UpdateMediaAssetModel: type: object additionalProperties: false properties: mediaDistributionId: type: - string - 'null' description: ID of the media distribution used to authenticate viewing of this media asset. Updates may take up to an hour to take effect customPath: type: - string - 'null' description: Customize a portion of the download url path.
As an example assets are returned in a url such as `https://cdn.optiview.dolby.com/vod///`.
`customPath` will replace `mediaAssetId` in order for a more predictable path. maxLength: 512 minLength: 1 SuccessResponseOfMediaAssetResponseModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/MediaAssetResponseModel' RecordDownloadUrl: type: object additionalProperties: false properties: downloadUrl: type: - string - 'null' url: type: - string - 'null' downloadExpiresOn: type: - string - 'null' format: date-time MediaAssetDeletionError: type: object additionalProperties: false properties: id: type: - string - 'null' description: The identifier of the media asset. error: type: - string - 'null' description: The error message. SuccessResponseOfListOfMediaAssetResponseModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: type: array items: $ref: '#/components/schemas/MediaAssetResponseModel' MediaAssetStorageModel: type: object additionalProperties: false properties: profileId: type: - string - 'null' description: Optional. Provide the id of a storage profile. Mutually exclusive with Type. type: description: 'Optional. Use to indicate the storage provider type for a one-off storage configuration. Mutually exclusive with ProfileId. Storage provider type. One of the following: * AwsS3 - Amazon S3 * Gcs - Google Cloud Storage * DolbyStorage - Dolby.io''s storage buckets. Call Read Media Asset to retrieve the clip file.' oneOf: - $ref: '#/components/schemas/MediaAssetStorageType' options: description: 'May be used in the following ways:
1. Optional. Override parameters of a storage profile specified via ProfileId
2. Required. Set parameters for a one-off storage configuration when Type is provided
3. Optional. Override parameters of the default storage profile if neither ProfileId or Type are provided' oneOf: - $ref: '#/components/schemas/UpdateStorageOptionsModel' DeleteMediaAssetsResponse: type: object additionalProperties: false properties: itemsDeleted: type: integer description: The number of items deleted. format: int32 errors: type: - array - 'null' description: A list of errors. items: $ref: '#/components/schemas/MediaAssetDeletionError' RecordMediaTrack: type: object additionalProperties: false properties: type: type: string codec: type: string bitrate: type: integer width: type: - integer - 'null' format: int32 height: type: - integer - 'null' format: int32 framerate: type: - integer - 'null' format: int32 channels: type: - integer - 'null' format: int32 samplerate: type: - integer - 'null' format: int64 SuccessResponseOfDeleteMediaAssetsResponse: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/DeleteMediaAssetsResponse' SuccessResponseOfUploadCredentialsResponseModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/UploadCredentialsResponseModel' ErrorResponse: type: object additionalProperties: false required: - status - message properties: status: type: string default: error minLength: 1 message: type: string minLength: 1 code: type: - integer - 'null' format: int32 data: {} DownloadMediaAssetModel: type: object additionalProperties: false properties: id: type: - string - 'null' description: Media Asset Id type: description: The type of the media asset. oneOf: - $ref: '#/components/schemas/MediaAssetType' feed: description: Information about the feed this media asset was generated from. oneOf: - $ref: '#/components/schemas/MediaAssetFeedSelectionModel' startTime: type: string description: The time when the media asset started. format: date stopTime: type: - string - 'null' description: The time when the media asset ended. format: date name: type: - string - 'null' description: The name of the media asset. storage: description: The storage information. oneOf: - $ref: '#/components/schemas/MediaAssetStorageResponseModel' status: description: The current status of the media asset. oneOf: - $ref: '#/components/schemas/MediaAssetStatus' error: type: - string - 'null' description: The eventual error message. created: type: - string - 'null' description: The creation time of this media asset. format: date expiration: type: - string - 'null' description: The expiration time of this media asset. format: date removed: type: - string - 'null' description: The time this media asset was removed. format: date metadata: description: The media asset metadata. oneOf: - $ref: '#/components/schemas/RecordMetadata' mediaDistributionId: type: - string - 'null' description: The identifier of the media distribution. customPath: type: - string - 'null' description: The eventual custom path. download: oneOf: - $ref: '#/components/schemas/RecordDownloadUrl' MediaAssetResponseModel: type: object additionalProperties: false properties: id: type: - string - 'null' description: Media Asset Id type: description: The type of the media asset. oneOf: - $ref: '#/components/schemas/MediaAssetType' feed: description: Information about the feed this media asset was generated from. oneOf: - $ref: '#/components/schemas/MediaAssetFeedSelectionModel' startTime: type: string description: The time when the media asset started. format: date stopTime: type: - string - 'null' description: The time when the media asset ended. format: date name: type: - string - 'null' description: The name of the media asset. storage: description: The storage information. oneOf: - $ref: '#/components/schemas/MediaAssetStorageResponseModel' status: description: The current status of the media asset. oneOf: - $ref: '#/components/schemas/MediaAssetStatus' error: type: - string - 'null' description: The eventual error message. created: type: - string - 'null' description: The creation time of this media asset. format: date expiration: type: - string - 'null' description: The expiration time of this media asset. format: date removed: type: - string - 'null' description: The time this media asset was removed. format: date metadata: description: The media asset metadata. oneOf: - $ref: '#/components/schemas/RecordMetadata' mediaDistributionId: type: - string - 'null' description: The identifier of the media distribution. customPath: type: - string - 'null' description: The eventual custom path. RegisterMediaAssetModel: type: object additionalProperties: false required: - objectPrefix properties: objectPrefix: type: string description: 'Provide the prefix to the location where files have been uploaded. We will inspect our internal storage for this `objectPrefix` and if we find:
* An exact match - we will obtain and serve a copy of the single file and ignore any prefix matches, useful for progressive download files
* A prefix match - we will obtain and serve a copy of all the content under the specified prefix (i.e. files under `s3:////`), useful for multi-asset files such as HLS' minLength: 1 entrypoint: type: - string - 'null' description: Optional. Specify the entry point to the media using its filename relative to the `objectPrefix` e.g. main.m3u8, which is helpful for multi-asset files such as HLS. This ensures that the url

returned by our service returns a direct link to this file within the multi-file asset.
If an object with key `s3:////` is not found, then the registration process will fail. expiration: type: - string - 'null' description: Optional. If not specified, media asset never expires.

ISO 8601 format should be used (eg 2020-01-01T00:00:00Z), all times are expected to be UTC. format: date name: type: - string - 'null' description: Optional. Provide a label for the media asset. maxLength: 256 minLength: 1 tags: type: - array - 'null' description: Optional. Assign a list of tags to media asset for filtering. maxItems: 10 items: type: string mediaDistributionId: type: - string - 'null' description: 'ID of the media distribution used to authenticate viewing of this media asset.
Media distributions are the mechanism for controlling whether a media asset is publicly viewable
or if they are protected behind a token.

Note: once a distribution is assigned, it can only be updated on an asset by asset basis and not in a
bulk operation.
' customPath: type: - string - 'null' description: Customize a portion of the download url path.
As an example assets are returned in a url such as `https://cdn.optiview.dolby.com/vod///`.
`customPath` will replace `mediaAssetId` in order for a more predictable path. maxLength: 512 minLength: 1 RecordMetadata: type: object additionalProperties: false required: - tracks - thumbnails properties: format: type: string sizes: type: - object - 'null' additionalProperties: type: integer format: uint64 duration: type: integer description: Duration of this asset, in seconds. tracks: type: array items: $ref: '#/components/schemas/RecordMediaTrack' thumbnails: type: array description: The list of thumbnails. items: type: string fileCount: type: - integer - 'null' description: The number of files. SuccessResponseOfListOfDownloadMediaAssetModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: type: array items: $ref: '#/components/schemas/DownloadMediaAssetModel' MediaAssetStorageResponseModel: type: object additionalProperties: false properties: type: description: Storage provider type oneOf: - $ref: '#/components/schemas/MediaAssetStorageType' path: type: - string - 'null' description: 'Path to clip storage location. Available only for external storage configurations. ' CreateMediaAssetModel: type: object additionalProperties: false required: - startTime properties: streamName: type: - string - 'null' description: Name of stream to create live clip. tokenId: type: - integer - 'null' description: Publish token of stream. sourceId: type: - string - 'null' description: 'Optional. ' simulcastId: type: - string - 'null' description: Optional.

If this field is omitted, a media asset will be created per available simulcastId

Otherwise, set the field to `null` to select a source published without a specified simulcastId.

Provide an empty string to select a source published using RTMP/SRT paths where the simulcastId parameter was specified without a defined value as shown in [Multi-source RTMP](https://optiview.dolby.com/docs/millicast/broadcast/multi-source-broadcasting/#multi-source-rtmp), i.e. `?simulcastId&...`.

This field can also be set to any standard string. priority: type: - integer - 'null' description: Optional. Priority level of stream(s) to clip. By default the stream with highest priority for a given sourceId will be chosen to clip. format: int32 startTime: type: string description: Start time of live recording clip. Must be provided to disambiguate between discontinuous streams. Media assets returned will start on or after specified time, depending on the availability of the content requested. Time must be set in the past.

ISO 8601 format should be used (eg 2020-01-01T00:00:00Z), all times are expected to be UTC. format: date minLength: 1 stopTime: type: - string - 'null' description: Optional. Stop time of live recording clip. If not provided, defaults to the current time. Time must be set in the past.

ISO 8601 format should be used (eg 2020-01-01T00:00:00Z), all times are expected to be UTC. format: date name: type: - string - 'null' description: 'Optional. Provide a label for the live recording clip. If not specified, this value will be assigned.

`name` must meet the naming requirements recommended by [Google Cloud Storage](https://cloud.google.com/storage/docs/objects#naming) and [AWS S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines).

If a media asset is uploaded to third party storage, the `name` will be used as the name of the uploaded object. To avoid failed uploads the name should be either unique to avoid conflict with existing objects in the upload location or if overwriting existing objects is desired, appropriate permissions must be granted: [DELETE permissions must be granted to us](https://optiview.dolby.com/docs/millicast/distribution/stream-recordings/how-to-setup-media-storage/#how-to-grant-authorization-to-a-bucket).

`name` may not contain carriage return or line feed characters, or any of the characters #, [, ], *, ?, :, ", “, ”, <, >, |, /, {, }, ^, %, `, ~.' maxLength: 256 minLength: 1 storage: description: 'Optional. Provide storage configurations for clip. If unspecified your default storage profile will be used, or our storage buckets if the former does not exist.

If specifying user-defined storage, please refer to setup instructions to grant us upload access to buckets and ensure that configurations have been tested using [Test Storage Configuration](#tag/RecordFileTasks/operation/Account_ValidateStorageProfile). ' oneOf: - $ref: '#/components/schemas/MediaAssetStorageModel' expiration: type: - string - 'null' description: 'Optional. Provide expiry time for live recording clip.

If not specified, file will be retained until removed via [Delete Files](#operation/RecordFilesV2_DeleteRecordFileItems).

Has no effect when files are uploaded to user-specified storage locations. ' format: date channelId: type: - string - 'null' description: Optional. Id of the channel to create live clip. targetFormat: description: Optional. The target format. default: Mp4 oneOf: - $ref: '#/components/schemas/MediaAssetTargetFormat' mediaDistributionId: type: - string - 'null' description: ID of the media distribution used to authenticate viewing of this media asset. customPath: type: - string - 'null' description: Customize the download url path. Typically the download url has format `https://///`. The customPath replaces the mediaAssetId so that the url looks like `https://///`. The customPath must be unique maxLength: 512 minLength: 1 FailResponse: type: object additionalProperties: false required: - status - data properties: status: type: string default: fail minLength: 1 data: {} SuccessResponseOfDownloadMediaAssetModel: type: object additionalProperties: false required: - status - data properties: status: type: string default: success minLength: 1 data: $ref: '#/components/schemas/DownloadMediaAssetModel' MediaAssetStatus: type: string description: '' x-enumNames: - Processing - Complete - Error - Deleting - Deleted enum: - processing - complete - error - deleting - deleted securitySchemes: API_Secret: type: http description: '### Usage #### Acquire secret from dashboard. * Login to the streaming dashboard * On the left menu, click on Settings * Navigate to the Security tab''s sub section API Secrets 1. "+ Create" to generate a new named API Secret if needed 2. Click on the copy button or the reveal button to access a previously created API Secret ![](../assets/api_secret.png "Find API Secret")' scheme: bearer x-generator: NSwag v14.1.0.0 (NJsonSchema v11.0.2.0 (Newtonsoft.Json v13.0.0.0)) x-code-samples-replace: {}