Replicated apps API
The apps API from Replicated — 17 operation(s) for apps.
The apps API from Replicated — 17 operation(s) for apps.
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-apps-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 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: 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'
tags:
- apps
summary: Create an app.
operationId: createApp
responses:
'201':
$ref: '#/components/responses/getAppResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
servers:
- url: https://api.replicated.com/vendor/v3
requestBody:
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
description: Name of the app that is to be created.
type: string
x-go-name: Name
description: App create parameters.
/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'
tags:
- apps
summary: Get an app.
operationId: getAppProperties
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getAppResponse'
'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
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'
tags:
- apps
summary: Delete an app.
operationId: deleteApp
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'201':
$ref: '#/components/responses/responseOk'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/builtin-license-field/{field_name}:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/update'
tags:
- apps
summary: Set a builtin license field value override for a given app and named field.
operationId: setBuiltinLicenseFieldOverride
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: FieldName
description: Field name
name: field_name
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/setBuiltinLicenseFieldOverrideResponse'
'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
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
required: true
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/delete'
tags:
- apps
summary: Delete a builtin license field override for a given app and named field.
operationId: deleteBuiltinLicenseFieldOverride
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: FieldName
description: Field name
name: field_name
in: path
required: true
schema:
type: string
responses:
'204':
$ref: '#/components/responses/responseNoContent'
'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}/builtin-license-fields:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/license/create'
tags:
- apps
summary: List builtin license fields for a given appId, with overrides applied.
operationId: listBuiltinLicenseFields
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/listBuiltinLicenseFieldsResponse'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/builtin-licensefields/delete'
tags:
- apps
summary: Delete all of the builtin license field overrides for a given app and revert to the builtin defaults.
operationId: deleteBuiltinLicenseFieldsOverrides
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'204':
$ref: '#/components/responses/responseNoContent'
'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}/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)'
tags:
- apps
summary: Export customer instances for an app as CSV or JSON.
operationId: listAppCustomerInstances
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: SortColumn
description: Sort column
name: sortColumn
in: query
schema:
type: string
- x-go-name: SortDesc
description: Sort descending
name: sortDesc
in: query
schema:
type: boolean
- x-go-name: Format
description: 'Format to export: csv or json'
name: format
in: query
schema:
type: string
- x-go-name: CustomerIds
description: Comma separated array of customer ids
name: customerIds
in: query
schema:
type: array
items:
type: string
- name: IncludeArchived
in: query
schema:
type: boolean
- description: Customer-level filters
name: Query
in: query
schema:
type: string
- name: IncludeActive
in: query
schema:
type: boolean
- name: IncludeInactive
in: query
schema:
type: boolean
- name: IncludeArchivedCustomers
in: query
schema:
type: boolean
- name: LicenseType
in: query
schema:
type: string
- name: ChannelName
in: query
schema:
type: string
- name: AdoptionRateFilter
in: query
schema:
type: string
- description: Instance-level filters
name: IncludeArchivedInstances
in: query
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/listAppCustomerInstancesResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/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'
tags:
- apps
summary: Get customer report in CSV format.
operationId: listAppCustomersCsv
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: SortColumn
description: Sort column
name: sortColumn
in: query
schema:
type: string
- x-go-name: SortDesc
description: Sort descending
name: sortDesc
in: query
schema:
type: boolean
- x-go-name: CustomerName
description: filter by customer name
name: customerName
in: query
schema:
type: string
responses:
'200':
$ref: '#/components/responses/listAppCustomersCsvResponse'
'400':
$ref: '#/components/responses/responseErrBadRequest'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/events:
get:
security:
- api_key: []
tags:
- apps
summary: Get instance events in JSON format.
operationId: listAppInstanceEvents
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: CustomerIds
description: Comma separated array of customer ids
name: customerIds
in: query
schema:
type: array
items:
type: string
- x-go-name: InstanceIds
name: instanceIds
in: query
schema:
type: array
items:
type: string
- x-go-name: EventTypes
name: eventTypes
in: query
schema:
type: array
items:
type: string
- x-go-name: Before
name: before
in: query
schema:
type: string
format: date-time
- x-go-name: After
name: after
in: query
schema:
type: string
format: date-time
- name: Format
in: query
schema:
type: string
responses:
'200':
$ref: '#/components/responses/listAppInstanceEventsResponse'
'204':
$ref: '#/components/responses/responseNoContent'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
/app/{app_id}/images:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/image/list'
tags:
- apps
summary: Lists all registry images for an app by ID.
operationId: listAppImages
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/listImagesResponse'
'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}/images/delete:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/image/delete'
tags:
- apps
summary: Deletes registry images for an app by ID.
operationId: deleteAppImages
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/responseOk'
'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
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
description: Image references to delete
required: true
/app/{app_id}/license-field:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/create'
tags:
- apps
summary: Create a license field for a given app.
operationId: createLicenseField
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/createLicenseFieldResponse'
'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
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
required: true
/app/{app_id}/license-field/{license_field_name}:
put:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/update'
tags:
- apps
summary: Update a license field for a given appId and licenseFieldName.
operationId: editLicenseField
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: LicenseFieldName
description: Field name
name: license_field_name
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/editLicenseFieldResponse'
'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
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
required: true
delete:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/delete'
tags:
- apps
summary: Delete a field for a given app and named field.
operationId: deleteLicenseField
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
- x-go-name: LicenseFieldName
description: Field name
name: license_field_name
in: path
required: true
schema:
type: string
- x-go-name: PreserveFields
description: Field name
name: preserve_fields
in: query
schema:
type: boolean
responses:
'200':
$ref: '#/components/responses/deleteLicenseFieldResponse'
'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}/license-fields:
get:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/licensefields/read'
tags:
- apps
summary: List license fields for a given appId.
operationId: listLicenseFields
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/listLicenseFieldsResponse'
'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}/rename:
post:
security:
- api_key: []
description: 'Required RBAC Policy: kots/app/[:appid]/update'
tags:
- apps
summary: Rename the app.
operationId: renameApp
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/responseOk'
'400':
$ref: '#/components/responses/responseErrBadRequest'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'429':
$ref: '#/components/responses/responseErrTooManyRequests'
servers:
- url: https://api.replicated.com/vendor/v3
requestBody:
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
description: New name of the app.
type: string
x-go-name: Name
description: App rename parameters.
/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'
tags:
- apps
summary: Get app security center settings.
operationId: getSecurityCenterSettings
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getSecurityCenterSettingsResponse'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
put:
security:
- api_key: []
description: 'Update the security center configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/update'
tags:
- apps
summary: Update app security center settings.
operationId: updateSecurityCenterSettings
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getSecurityCenterSettingsResponse'
'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
required:
- enabled
properties:
enabled:
description: Whether security center is enabled
type: boolean
x-go-name: Enabled
description: Security center settings configuration
required: true
/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'
tags:
- apps
summary: Update app trial signup setting.
operationId: updateAppTrialSignup
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getAppResponse'
'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
required:
- enabled
properties:
enabled:
description: Whether trial signup is enabled for this app
type: boolean
x-go-name: Enabled
description: Trial signup configuration
required: true
/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'
tags:
- apps
summary: Get app trial signup settings.
operationId: getTrialSignupSettings
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getTrialSignupSettingsResponse'
'401':
$ref: '#/components/responses/responseErrUnauthorized'
'403':
$ref: '#/components/responses/responseErrForbidden'
'404':
$ref: '#/components/responses/responseErrNotFound'
servers:
- url: https://api.replicated.com/vendor/v3
put:
security:
- api_key: []
description: 'Update the trial signup configuration settings for the specified app.
Required RBAC Policy: kots/app/[:appid]/update'
tags:
- apps
summary: Update app trial signup settings.
operationId: updateTrialSignupSettings
parameters:
- x-go-name: AppID
description: App identifier
name: app_id
in: path
required: true
schema:
type: string
responses:
'200':
$ref: '#/components/responses/getTrialSignupSettingsResponse'
'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
required:
- defaultChannelId
- expirationDays
- helmInstallEnabled
- embeddedClusterEnabled
- isHelmAirgapEnabled
- supportBundleUploadEnabled
- licenseType
properties:
customSignupFields:
description: Custom signup fields for the enterprise portal signup form
type: array
items:
$ref: '#/components/schemas/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: st
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/replicated/refs/heads/main/openapi/replicated-apps-api-openapi.yml