Replicated apps API
The apps API from Replicated — 17 operation(s) for apps.
The apps API from Replicated — 17 operation(s) for apps.
swagger: '2.0'
info:
description: Manage enterprise portal users, install options, branding, documentation, email templates, and access control.
title: Vendor API V3 apps API
contact:
name: Replicated, Inc.
url: http://www.replicated.com/
email: info@replicated.com
version: 3.0.0
host: api.replicated.com
basePath: /vendor/v3
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: apps
paths:
/app:
post:
security:
- api_key: []
description: 'Create a new app for the team with the provided name.
The app will be available for further configuration and channel management.
Required RBAC Policy: kots/app/create'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Create an app.
operationId: createApp
parameters:
- description: App create parameters.
name: Body
in: body
schema:
type: object
required:
- name
properties:
name:
description: Name of the app that is to be created.
type: string
x-go-name: Name
responses:
'201':
$ref: '#/responses/getAppResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
/app/{app_id}:
get:
security:
- api_key: []
description: 'Retrieve the details of a specific app, including its metadata and a list of associated channels.
Required RBAC Policy: kots/app/[:appid]/read'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Get an app.
operationId: getAppProperties
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/getAppResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
delete:
security:
- api_key: []
description: 'Delete the specified app from the team.
The app and all its associated resources will be removed.
Required RBAC Policy: kots/app/[:appid]/delete'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Delete an app.
operationId: deleteApp
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'201':
$ref: '#/responses/responseOk'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
/app/{app_id}/builtin-license-field/{field_name}:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Set a builtin license field value override for a given app and named field.
operationId: setBuiltinLicenseFieldOverride
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: FieldName
description: Field name
name: field_name
in: path
required: true
- name: Body
in: body
required: true
schema:
type: object
required:
- value
properties:
is_locked:
description: Whether the field should be locked. Optional.
type: boolean
x-go-name: IsLocked
value:
description: Value of the builtin license field that is to be overridden. Allows empty string.
type: string
x-go-name: Value
responses:
'200':
$ref: '#/responses/setBuiltinLicenseFieldOverrideResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/delete'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Delete a builtin license field override for a given app and named field.
operationId: deleteBuiltinLicenseFieldOverride
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: FieldName
description: Field name
name: field_name
in: path
required: true
responses:
'204':
$ref: '#/responses/responseNoContent'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/builtin-license-fields:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/license/create'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: List builtin license fields for a given appId, with overrides applied.
operationId: listBuiltinLicenseFields
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/listBuiltinLicenseFieldsResponse'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/delete'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Delete all of the builtin license field overrides for a given app and revert to the builtin defaults.
operationId: deleteBuiltinLicenseFieldsOverrides
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'204':
$ref: '#/responses/responseNoContent'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/customer_instances:
get:
security:
- api_key: []
description: 'Generate and return a report of all customer instances for a specific app, in either CSV or JSON format.
Includes instance metadata and supports filtering by customer IDs and archived status.
Required RBAC Policy: kots/app/[:appid]/read (app-level gate; results are also
filtered per-customer by kots/app/[:appid]/license/[:licenseid]/read)'
produces:
- file
schemes:
- https
tags:
- apps
summary: Export customer instances for an app as CSV or JSON.
operationId: listAppCustomerInstances
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: SortColumn
description: Sort column
name: sortColumn
in: query
- type: boolean
x-go-name: SortDesc
description: Sort descending
name: sortDesc
in: query
- type: string
x-go-name: Format
description: 'Format to export: csv or json'
name: format
in: query
- type: array
items:
type: string
x-go-name: CustomerIds
description: Comma separated array of customer ids
name: customerIds
in: query
- type: boolean
name: IncludeArchived
in: query
- type: string
description: Customer-level filters
name: Query
in: query
- type: boolean
name: IncludeActive
in: query
- type: boolean
name: IncludeInactive
in: query
- type: boolean
name: IncludeArchivedCustomers
in: query
- type: string
name: LicenseType
in: query
- type: string
name: ChannelName
in: query
- type: string
name: AdoptionRateFilter
in: query
- type: boolean
description: Instance-level filters
name: IncludeArchivedInstances
in: query
responses:
'200':
$ref: '#/responses/listAppCustomerInstancesResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/customers_csv:
get:
security:
- api_key: []
description: 'Generate and return a CSV report of all customers for a specific app, including metadata and instance information.
Required RBAC Policy: kots/app/[:appid]/license/[:licenseid]/read'
produces:
- file
schemes:
- https
tags:
- apps
summary: Get customer report in CSV format.
operationId: listAppCustomersCsv
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: SortColumn
description: Sort column
name: sortColumn
in: query
- type: boolean
x-go-name: SortDesc
description: Sort descending
name: sortDesc
in: query
- type: string
x-go-name: CustomerName
description: filter by customer name
name: customerName
in: query
responses:
'200':
$ref: '#/responses/listAppCustomersCsvResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
/app/{app_id}/events:
get:
security:
- api_key: []
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Get instance events in JSON format.
operationId: listAppInstanceEvents
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: array
items:
type: string
x-go-name: CustomerIds
description: Comma separated array of customer ids
name: customerIds
in: query
- type: array
items:
type: string
x-go-name: InstanceIds
name: instanceIds
in: query
- type: array
items:
type: string
x-go-name: EventTypes
name: eventTypes
in: query
- type: string
format: date-time
x-go-name: Before
name: before
in: query
- type: string
format: date-time
x-go-name: After
name: after
in: query
- type: string
name: Format
in: query
responses:
'200':
$ref: '#/responses/listAppInstanceEventsResponse'
'204':
$ref: '#/responses/responseNoContent'
'400':
$ref: '#/responses/responseErrBadRequest'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/images:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/image/list'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Lists all registry images for an app by ID.
operationId: listAppImages
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/listImagesResponse'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/images/delete:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/image/delete'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Deletes registry images for an app by ID.
operationId: deleteAppImages
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- description: Image references to delete
name: Body
in: body
required: true
schema:
type: object
required:
- imageRefs
properties:
imageRefs:
description: Image references to delete
type: array
items:
type: string
x-go-name: ImageRefs
example:
- myapp/myimage:1.0.0
- myapp/myimage:2.0.0
responses:
'200':
$ref: '#/responses/responseOk'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/license-field:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/create'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Create a license field for a given app.
operationId: createLicenseField
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- name: Body
in: body
required: true
schema:
type: object
required:
- name
- type
- title
- hidden
properties:
default:
description: Default value of the entitlement field that is to be created.
type: string
x-go-name: Default
enumOptions:
description: Enum options for the entitlement field (only for Enum type).
type: array
items:
type: string
x-go-name: EnumOptions
hidden:
description: Hidden flag of the entitlement field that is to be created.
type: boolean
x-go-name: Hidden
name:
description: Name of the entitlement field that is to be created.
type: string
x-go-name: Name
required:
description: Required flag of the entitlement field that is to be created.
type: boolean
x-go-name: Required
title:
description: Title of the entitlement field that is to be created.
type: string
x-go-name: Title
type:
description: Type of the entitlement field that is to be created.
type: string
x-go-name: Type
responses:
'200':
$ref: '#/responses/createLicenseFieldResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/license-field/{license_field_name}:
put:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Update a license field for a given appId and licenseFieldName.
operationId: editLicenseField
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: LicenseFieldName
description: Field name
name: license_field_name
in: path
required: true
- name: Body
in: body
required: true
schema:
type: object
required:
- title
- default
- hidden
- required
properties:
default:
description: Optional default value for this licensefield.
type: string
x-go-name: Default
enumOptions:
description: Enum options for the entitlement field (only for Enum type).
type: array
items:
type: string
x-go-name: EnumOptions
hidden:
description: Indicates if this field will be visible from the on-premise license screen.
type: boolean
x-go-name: Hidden
required:
description: Indicates if this field will be required from the on-premise license screen.
type: boolean
x-go-name: Required
title:
description: Title of custom license field to display.
type: string
x-go-name: Title
responses:
'200':
$ref: '#/responses/editLicenseFieldResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/delete'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Delete a field for a given app and named field.
operationId: deleteLicenseField
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- type: string
x-go-name: LicenseFieldName
description: Field name
name: license_field_name
in: path
required: true
- type: boolean
x-go-name: PreserveFields
description: Field name
name: preserve_fields
in: query
responses:
'200':
$ref: '#/responses/deleteLicenseFieldResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/license-fields:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/read'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: List license fields for a given appId.
operationId: listLicenseFields
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/listLicenseFieldsResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/rename:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Rename the app.
operationId: renameApp
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- description: App rename parameters.
name: Body
in: body
schema:
type: object
required:
- name
properties:
name:
description: New name of the app.
type: string
x-go-name: Name
responses:
'200':
$ref: '#/responses/responseOk'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'429':
$ref: '#/responses/responseErrTooManyRequests'
/app/{app_id}/security-center-settings:
get:
security:
- api_key: []
description: 'Get the security center configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/read'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Get app security center settings.
operationId: getSecurityCenterSettings
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/getSecurityCenterSettingsResponse'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
put:
security:
- api_key: []
description: 'Update the security center configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Update app security center settings.
operationId: updateSecurityCenterSettings
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- description: Security center settings configuration
name: Body
in: body
required: true
schema:
type: object
required:
- enabled
properties:
enabled:
description: Whether security center is enabled
type: boolean
x-go-name: Enabled
responses:
'200':
$ref: '#/responses/getSecurityCenterSettingsResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/trial-signup:
put:
security:
- api_key: []
description: 'Enable or disable trial signup for the specified app.
Required RBAC Policy: kots/app/[:appid]/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Update app trial signup setting.
operationId: updateAppTrialSignup
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- description: Trial signup configuration
name: Body
in: body
required: true
schema:
type: object
required:
- enabled
properties:
enabled:
description: Whether trial signup is enabled for this app
type: boolean
x-go-name: Enabled
responses:
'200':
$ref: '#/responses/getAppResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/app/{app_id}/trial-signup-settings:
get:
security:
- api_key: []
description: 'Get the trial signup configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/read'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Get app trial signup settings.
operationId: getTrialSignupSettings
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
responses:
'200':
$ref: '#/responses/getTrialSignupSettingsResponse'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
put:
security:
- api_key: []
description: 'Update the trial signup configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/update'
consumes:
- application/json
produces:
- application/json
schemes:
- https
tags:
- apps
summary: Update app trial signup settings.
operationId: updateTrialSignupSettings
parameters:
- type: string
x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
- description: Trial signup settings configuration
name: Body
in: body
required: true
schema:
type: object
required:
- defaultChannelId
- expirationDays
- helmInstallEnabled
- embeddedClusterEnabled
- isHelmAirgapEnabled
- supportBundleUploadEnabled
- licenseType
properties:
customSignupFields:
description: Custom signup fields for the enterprise portal signup form
type: array
items:
$ref: '#/definitions/CustomSignupFieldDefinition'
x-go-name: CustomSignupFields
defaultChannelId:
description: Default channel ID for trial signups
type: string
x-go-name: DefaultChannelID
domainFilterDomains:
description: List of domains to block or allow
type: array
items:
type: string
x-go-name: DomainFilterDomains
domainFilterMode:
description: 'Domain filter mode: off, block, or allow'
type: string
x-go-name: DomainFilterMode
domainFilterUseDefaultBlocklist:
description: Whether to include the default consumer domain blocklist
type: boolean
x-go-name: DomainFilterUseDefaultBlock
embeddedClusterEnabled:
description: Whether embedded cluster is enabled
type: boolean
x-go-name: EmbeddedClusterEnabled
expirationDays:
description: Number of days until trial expires (max 90)
type: integer
format: int64
x-go-name: ExpirationDays
helmInstallEnabled:
description: Whether helm install is enabled
type: boolean
x-go-name: HelmInstallEnabled
isHelmAirgapEnabled:
description: Whether helm airgap is enabled
type: boolean
x-go-name: IsHelmAirgapEnabled
licenseType:
description: 'License type: trial or community'
type: string
x-go-name: LicenseType
supportBundleUploadEnabled:
description: Whether support bundle upload is enabled
type: boolean
x-go-name: SupportBundleUploadEnabled
termsAndConditionsUrl:
description: Terms and conditions URL (optional, must be HTTPS)
type: string
x-go-name: TermsAndConditionsURL
responses:
'200':
$ref: '#/responses/getTrialSignupSettingsResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
/apps:
get:
security:
- api_key: []
description: 'Return a list of all apps accessible to the authenticated team, including their metadata and associated channels.
Optionally, channels can be excluded from the response using the excludeChannels query parameter.
Required RBAC Policy: kots/app/[:appid]/read and kots/app/[:appid]/channel/[:channelid]/read'
produces:
- application/json
schemes:
- https
tags:
- apps
summary: List apps for a team.
operationId: apps
responses:
'200':
$ref: '#/responses/listAppsResponse'
'400':
$ref: '#/responses/responseErrBadRequest'
'401':
$ref: '#/responses/responseErrUnauthorized'
'403':
$ref: '#/responses/responseErrForbidden'
'404':
$ref: '#/responses/responseErrNotFound'
definitions:
AppWithChannels:
type: object
properties:
activeEnterprisePortalTemplate:
type: string
x-go-name: ActiveEnterprisePortalTemplate
askAiEnabled:
type: boolean
x-go-name: AskAiEnabled
channels:
type: array
items:
$ref: '#/definitions/Channel'
x-go-name: Channels
created:
type: string
format: date-time
x-go-name: CreatedAt
defaultFromEmail:
type: string
x-go-name: DefaultFromEmail
description:
type: string
x-go-name: Description
downloadPortalFqdnOverride:
type: string
x-go-name: DownloadPortalFQDNOverride
emailVerifiedAt:
type: string
format: date-time
x-go-name: EmailVerifiedAt
hideSupportBundleUploadEnabled:
type: boolean
x-go-name: HideSupportBundleUploadEnabled
iconUrl:
type: string
x-go-name: IconURL
id:
type: string
x-go-name: ID
isArchived:
type: boolean
x-go-name: IsArchived
isKotsApp:
type: boolean
x-go-name: IsKotsApp
name:
type: string
x-go-name: Name
publicKeyPem:
type: string
x-go-name: PublicKeyPEM
renamedAt:
type:
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/replicated/refs/heads/main/openapi/replicated-apps-api-openapi.yml