Replicated channelReleases API
The channelReleases API from Replicated — 7 operation(s) for channelreleases.
The channelReleases API from Replicated — 7 operation(s) for channelreleases.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/replicated-channelreleases-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
title: Vendor API V3 apps Channel Releases API
contact:
name: Replicated, Inc.
url: http://www.replicated.com/
email: info@replicated.com
version: 3.0.0
servers:
- url: https://api.replicated.com/vendor/v3
tags:
- name: channelReleases
paths:
/app/{app_id}/channel/{channel_id}/airgap/download-url:
get:
security:
- api_key: []
description: 'Returns a download URL for the airgap bundle associated with the active release on the specified channel. Optionally, a specific channel sequence can be requested via query parameter.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap/download-url'
tags:
- channelReleases
summary: Get airgap bundle download URL the active release on the channel.
operationId: channelReleaseAirgapBundleURL
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelSequence
description: If provided, the airgap bundle download URL for the given channel sequence will be returned
name: channelSequence
in: query
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/channelReleaseAirgapBundleURLResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/build:
post:
security:
- api_key: []
description: 'Triggers a build of an airgap bundle for the specified release in a channel. The airgap bundle can be used for offline installations.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap'
tags:
- channelReleases
summary: Trigger airgap build for a channel's release.
operationId: channelReleaseAirgapBuild
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: Sequence
description: Release identifier
name: sequence
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/channelReleaseAirgapBuildResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/cancel:
post:
security:
- api_key: []
description: 'Cancels an in-progress airgap build for the specified release in a channel.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap'
tags:
- channelReleases
summary: Cancel airgap build for a channel's release.
operationId: channelReleaseAirgapCancel
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: Sequence
description: Release identifier
name: sequence
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/channelReleaseAirgapCancelResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/channel/{channel_id}/release/{sequence}/airgap/status:
get:
security:
- api_key: []
description: 'Returns the current airgap build status for the specified release in a channel.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/airgap/status/read'
tags:
- channelReleases
summary: Get airgap build status for a channel's release.
operationId: channelReleaseAirgapStatus
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: Sequence
description: Release identifier
name: sequence
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/channelReleaseAirgapStatusResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/channel/{channel_id}/release/{sequence}/install-commands:
get:
security:
- api_key: []
description: 'Return the install commands for a specific release in a channel, including commands for embedded and existing clusters.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/read'
tags:
- channelReleases
summary: Get install commands for a specific channel release.
operationId: getChannelReleaseInstallCommands
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: Sequence
description: Release identifier
name: sequence
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/getChannelReleaseInstallCommandsResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/channel/{channel_id}/release/{sequence}/update-properties:
post:
security:
- api_key: []
description: 'Updates the properties (such as version label, release notes, and required status) for a specific release in a channel.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/update'
tags:
- channelReleases
summary: Update properties for a channel release.
operationId: updateChannelRelease
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: Sequence
description: Release identifier
name: sequence
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
$ref: '#/components/responses/updateChannelRelease'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
requestBody:
content:
application/json:
schema:
type: object
properties:
isRequired:
description: Prevent this release from being skipped during upgrades
type: boolean
x-go-name: IsRequired
releaseNotes:
description: The updated release notes
type: string
x-go-name: ReleaseNotes
versionLabel:
description: The new version label to use
type: string
x-go-name: VersionLabel
description: Update release parameters.
/app/{app_id}/channel/{channel_id}/releases:
get:
security:
- api_key: []
description: 'Return a paginated list of releases for a specific channel within an app, including release metadata and status.
Required RBAC Policy: kots/app/[:appid]/channel/[:channelid]/releases/read'
tags:
- channelReleases
summary: List releases for an app channel.
operationId: listChannelReleases
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: ChannelID
description: Channel identifier
name: channel_id
in: path
required: true
schema:
type: string
- x-go-name: PageSize
description: Page size
name: pageSize
in: query
schema:
type: integer
format: int64
default: 20
- x-go-name: CurrentPage
description: Current page
name: currentPage
in: query
schema:
type: integer
format: int64
- x-go-name: ExcludeDemoted
description: Exclude demoted releases
name: excludeDemoted
in: query
schema:
type: boolean
- x-go-name: IncludeSecuritySummary
description: Include security summary
name: includeSecuritySummary
in: query
schema:
type: boolean
- x-go-name: VersionLabel
description: Filter by version label (partial match)
name: versionLabel
in: query
schema:
type: string
- x-go-name: IncludeInstallerImages
description: Include EC installer images in the images list. Empty = app images only (default).
name: includeInstallerImages
in: query
schema:
type: string
enum:
- online
- airgap
responses:
'200':
$ref: '#/components/responses/listChannelReleasesResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
components:
responses:
responseErrUnauthorized:
description: Return if the caller is not authorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
x-go-name: Message
responseErrForbidden:
description: Returned if the caller does not have the needed permission
content:
application/json:
schema:
type: object
properties:
error:
type: object
properties:
message:
type: string
x-go-name: Message
messageCode:
type: string
x-go-name: MessageCode
x-go-name: Error
getChannelReleaseInstallCommandsResponse:
description: GetChannelReleaseInstallCommandsResponse contains the JSON channel release install commands
content:
application/json:
schema:
type: object
properties:
commands:
$ref: '#/components/schemas/ChannelReleaseInstallCommands'
updateChannelRelease:
description: UpdateChannelReleaseResponse contains the release properties
content:
application/json:
schema:
type: object
properties:
release:
$ref: '#/components/schemas/KotsChannelRelease'
channelReleaseAirgapBuildResponse:
description: ChannelReleaseAirgapBuildResponse contains empty JSON object
content:
application/json:
schema:
type: object
channelReleaseAirgapCancelResponse:
description: ChannelReleaseAirgapCancelResponse contains empty JSON object
content:
application/json:
schema:
type: object
listChannelReleasesResponse:
description: ListChannelReleasesResponse contains the JSON channel releases list
content:
application/json:
schema:
type: object
properties:
matchedCount:
type: integer
format: int64
x-go-name: MatchedCount
releases:
type: array
items:
$ref: '#/components/schemas/KotsChannelRelease'
x-go-name: Releases
channelReleaseAirgapStatusResponse:
description: ChannelReleaseAirgapStatusResponse contains the airgap build status
content:
application/json:
schema:
$ref: '#/components/schemas/AirgapBuildSummary'
responseErrNotFound:
description: Returned on resource not found
content:
application/json:
schema:
type: object
properties:
message:
type: string
x-go-name: Message
responseErrBadRequest:
description: Returned on bad input
content:
application/json:
schema:
type: object
properties:
error_code:
description: Error code if available
type: string
x-go-name: ErrorCode
message:
description: Error message text if available
type: string
x-go-name: Message
channelReleaseAirgapBundleURLResponse:
description: ChannelReleaseAirgapBundleURLResponse contains the airgap bundle download URL
content:
application/json:
schema:
type: object
properties:
url:
type: string
x-go-name: URL
schemas:
HelmInstallabilityIssue:
type: object
properties:
message:
type: string
x-go-name: Message
resources:
type: array
items:
$ref: '#/components/schemas/HelmUnavailableResource'
x-go-name: Resources
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
InstallerTypeHelm:
type: object
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
LintExpression:
type: object
properties:
message:
type: string
x-go-name: Message
path:
type: string
x-go-name: Path
rule:
type: string
x-go-name: Rule
type:
type: string
x-go-name: Type
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/release
AirgapBuildSummary:
type: object
title: AirgapBuildSummary is a lightweight snapshot of a channel-release's airgap build state.
properties:
airgapBuildError:
type: string
x-go-name: AirgapBuildError
airgapBuildStatus:
type: string
x-go-name: AirgapBuildStatus
channelId:
type: string
x-go-name: ChannelID
channelName:
type: string
x-go-name: ChannelName
channelSequence:
type: integer
format: int64
x-go-name: ChannelSequence
fullAirgapBuild:
description: 'FullAirgapBuild is true when the channel-release is configured to produce
or has completed with a full airgap bundle.
When false, the worker may still run metadata generation for the
channel-release and that step can fail.'
type: boolean
x-go-name: FullAirgapBuild
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/release
ChannelReleaseInstallCommands:
type: object
properties:
embeddedClusterInstallCommand:
type: string
x-go-name: EmbeddedClusterInstallCommand
existingClusterInstallCommand:
type: string
x-go-name: ExistingClusterInstallCommand
x-go-package: github.com/replicatedhq/vandoor/handlers/vendor-api/replv3/releases
InstallerTypeKotsConfig:
type: object
properties:
apiVersion:
type: string
x-go-name: APIVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
KotsChannelRelease:
type: object
properties:
airgapBuildError:
type: string
x-go-name: AirgapBuildError
airgapBuildStatus:
type: string
x-go-name: AirgapBuildStatus
airgapBundleImages:
type: array
items:
type: string
x-go-name: AirgapBundleImages
channelIcon:
type: string
x-go-name: ChannelIcon
channelId:
type: string
x-go-name: ChannelID
channelName:
type: string
x-go-name: ChannelName
channelSequence:
type: integer
format: int64
x-go-name: ChannelSequence
created:
type: string
format: date-time
x-go-name: Created
createdBy:
$ref: '#/components/schemas/Actor'
customResourceError:
type: string
x-go-name: CustomResourceError
customResourceWarnings:
type: array
items:
type: string
x-go-name: CustomResourceWarnings
demotedAt:
type: string
format: date-time
x-go-name: DemotedAt
embeddedClusterVersion:
type: string
x-go-name: EmbeddedClusterVersion
hasECInstaller:
type: boolean
x-go-name: HasECInstaller
hasKurlInstaller:
type: boolean
x-go-name: HasKurlInstaller
imageSecurityInfo:
type: array
items:
$ref: '#/components/schemas/ImageVulnCounts'
x-go-name: ImageSecurityInfo
imageSecuritySums:
type: object
additionalProperties:
$ref: '#/components/schemas/ImageVulnCounts'
x-go-name: ImageSecuritySums
installationTypes:
$ref: '#/components/schemas/InstallationTypes'
isDemoted:
type: boolean
x-go-name: IsDemoted
isRequired:
type: boolean
x-go-name: IsRequired
kurlInstallerID:
type: string
x-go-name: KurlInstallerID
lintResult:
$ref: '#/components/schemas/LintResult'
proxyRegistryDomain:
type: string
x-go-name: ProxyRegistryDomain
registrySecret:
type: string
x-go-name: RegistrySecret
releaseNotes:
type: string
x-go-name: ReleaseNotes
releasedAt:
type: string
format: date-time
x-go-name: ReleasedAt
replicatedRegistryDomain:
type: string
x-go-name: ReplicatedRegistryDomain
semver:
type: string
x-go-name: Semver
sequence:
type: integer
format: int64
x-go-name: Sequence
updated:
type: string
format: date-time
x-go-name: Updated
updatedBy:
$ref: '#/components/schemas/Actor'
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
VulnCounts:
type: object
properties:
critical:
type: integer
format: int64
x-go-name: Critical
high:
type: integer
format: int64
x-go-name: High
low:
type: integer
format: int64
x-go-name: Low
medium:
type: integer
format: int64
x-go-name: Medium
total:
type: integer
format: int64
x-go-name: Total
x-go-package: github.com/replicatedhq/vandoor/pkg/securebuild/types
HelmUnavailableResource:
type: object
properties:
filePath:
type: string
x-go-name: FilePath
identifier:
type: string
x-go-name: Identifier
kind:
type: string
x-go-name: Kind
name:
type: string
x-go-name: Name
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
InstallerTypeEmbeddedCluster:
type: object
properties:
proxyRegistryDomain:
type: string
x-go-name: ProxyRegistryDomain
replicatedAppDomain:
type: string
x-go-name: ReplicatedAppDomain
replicatedRegistryDomain:
type: string
x-go-name: ReplicatedRegistryDomain
version:
type: string
x-go-name: InstallerVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
InstallationTypes:
type: object
properties:
embeddedCluster:
$ref: '#/components/schemas/InstallerTypeEmbeddedCluster'
helm:
$ref: '#/components/schemas/InstallerTypeHelm'
helmInstallabilityIssue:
$ref: '#/components/schemas/HelmInstallabilityIssue'
kots:
$ref: '#/components/schemas/InstallerTypeKots'
kotsConfig:
$ref: '#/components/schemas/InstallerTypeKotsConfig'
kurl:
$ref: '#/components/schemas/InstallationTypeKurl'
preflight:
$ref: '#/components/schemas/InstallerTypePreflight'
replicatedSDK:
$ref: '#/components/schemas/InstallerTypeReplicatedSDK'
supportBundle:
$ref: '#/components/schemas/InstallerTypeSupportBundle'
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
InstallerTypeReplicatedSDK:
type: object
properties:
sdkVersion:
type: string
x-go-name: SDKVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
LintResult:
type: object
properties:
isLintingComplete:
type: boolean
x-go-name: IsLintingComplete
lintExpressions:
type: array
items:
$ref: '#/components/schemas/LintExpression'
x-go-name: LintExpressions
x-go-package: github.com/replicatedhq/vandoor/pkg/lint
InstallationTypeKurl:
type: object
properties:
installerVersion:
type: string
x-go-name: InstallerVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
Actor:
type: object
properties:
description:
type: string
x-go-name: Description
id:
type: string
x-go-name: ID
link:
type: string
x-go-name: Link
timestamp:
type: string
format: date-time
x-go-name: Timestamp
type:
type: string
x-go-name: Type
x-go-package: github.com/replicatedhq/vandoor/pkg/models/types
InstallerTypePreflight:
type: object
properties:
apiVersion:
type: string
x-go-name: APIVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
ImageVulnCounts:
type: object
properties:
counts:
$ref: '#/components/schemas/VulnCounts'
digest:
type: string
x-go-name: Digest
digest_first_seen_at:
type: string
x-go-name: DigestFirstSeenAt
image_size_bytes:
type: integer
format: int64
x-go-name: ImageSizeBytes
input:
type: string
x-go-name: Input
installation_phase:
description: 'InstallationPhase indicates the Embedded Cluster phase for the image ("", "online", or "airgap").
Application images have the phase "".
Infrastructure images used for Embedded Cluster in both online and airgap have the phase "online" or "airgap".
Infrastructure images used for Embedded Cluster only in airgap have the phase "airgap".'
type: string
x-go-name: InstallationPhase
last_scanned_at:
type: string
x-go-name: LastScannedAt
not_found:
type: boolean
x-go-name: NotFound
sbom_status:
description: SBOM status tracking
type: string
x-go-name: SBOMStatus
sbom_status_message:
type: string
x-go-name: SBOMStatusMessage
sbom_status_updated_at:
type: string
x-go-name: SBOMStatusUpdatedAt
scan_status:
description: Scan status tracking
type: string
x-go-name: ScanStatus
scan_status_message:
type: string
x-go-name: ScanStatusMessage
scan_status_updated_at:
type: string
x-go-name: ScanStatusUpdatedAt
scanned_images:
description: Scan completeness tracking
type: integer
format: int64
x-go-name: ScannedImages
total_images:
type: integer
format: int64
x-go-name: TotalImages
x-go-package: github.com/replicatedhq/vandoor/pkg/securebuild/types
InstallerTypeKots:
type: object
properties:
minKotsVersion:
type: string
x-go-name: MinKotsVersion
targetKotsVersion:
type: string
x-go-name: TargetKotsVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
InstallerTypeSupportBundle:
type: object
properties:
apiVersion:
type: string
x-go-name: APIVersion
x-go-package: github.com/replicatedhq/vandoor/pkg/kots/channel/types
securitySchemes:
api_key:
type: apiKey
name: Authorization
in: header