Replicated apps API

The apps API from Replicated — 17 operation(s) for apps.

Operations 23

POST /app Create an app. #
GET /app/{app_id} Get an app. #
DELETE /app/{app_id} Delete an app. #
POST /app/{app_id}/builtin-license-field/{field_name} Set a builtin license field value override for a given app and named field. #
DELETE /app/{app_id}/builtin-license-field/{field_name} Delete a builtin license field override for a given app and named field. #
GET /app/{app_id}/builtin-license-fields List builtin license fields for a given appId, with overrides applied. #
DELETE /app/{app_id}/builtin-license-fields Delete all of the builtin license field overrides for a given app and revert to the builtin defaults. #
GET /app/{app_id}/customer_instances Export customer instances for an app as CSV or JSON. #
GET /app/{app_id}/customers_csv Get customer report in CSV format. #
GET /app/{app_id}/events Get instance events in JSON format. #
GET /app/{app_id}/images Lists all registry images for an app by ID. #
POST /app/{app_id}/images/delete Deletes registry images for an app by ID. #
POST /app/{app_id}/license-field Create a license field for a given app. #
PUT /app/{app_id}/license-field/{license_field_name} Update a license field for a given appId and licenseFieldName. #
DELETE /app/{app_id}/license-field/{license_field_name} Delete a field for a given app and named field. #
GET /app/{app_id}/license-fields List license fields for a given appId. #
POST /app/{app_id}/rename Rename the app. #
GET /app/{app_id}/security-center-settings Get app security center settings. #
PUT /app/{app_id}/security-center-settings Update app security center settings. #
PUT /app/{app_id}/trial-signup Update app trial signup setting. #
GET /app/{app_id}/trial-signup-settings Get app trial signup settings. #
PUT /app/{app_id}/trial-signup-settings Update app trial signup settings. #
GET /apps List apps for a team. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/replicated-apps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

replicated-apps-api-openapi.yml Raw ↑
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