---
title: "List all customers."
method: GET
path: "/customers"
tags: ["customers"]
---

# List all customers.

`GET /customers`

Return a paginated list of all customers accessible to the team, with optional filtering and sorting.
Includes metadata and license information for each customer.

Required RBAC Policy: kots/app/[:appid]/license/[:licenseid]/read

## Query parameters

- `pageSize` integer
- `currentPage` integer
- `sortColumn` string
- `sortDesc` boolean
- `IncludeTest` boolean
- `ExpiresBefore` string, date-time

## Response `200`

ListCustomersResponse contains the JSON customers list

- object
  - `customers` Customer[]
    - `actions` CustomerActions
      - `shipApply` string
      - `shipApplyDocker` string
      - `shipInitCloud` string
      - `shipInitHomebrew` string
    - `activeInstances` InstancePreview
      - `instances` CustomerInstance[]
        - `active` boolean
        - `appStatus` string
        - `client` string
        - `cloud` string
        - `clusterId` string
        - `createdAt` string, date-time
        - `embeddedClusterVersion` string
        - `instanceId` string
        - `isAirgap` boolean
        - `isArchived` boolean
        - `isDummyInstance` boolean
        - `isEmbeddedCluster` boolean
        - `isKurl` boolean
        - `k8sVersion` string
        - `kotsVersion` string
        - `kurlNodeCountReady` integer
        - `kurlNodeCountTotal` integer
        - `lastActive` string, date-time
        - `licenseId` string
        - `replicatedSdkVersion` string
        - `serviceAccountId` string
        - `tags` InstanceTag[]
          - `instanceId` string
          - `key` string
          - `origin` string
          - `value` string
        - `versionHistory` CustomerInstanceVersionHistory[]
          - `clusterId` string
          - `downstreamChannelId` string
          - `downstreamReleaseSequence` integer
          - `instanceId` string
          - `intervalLast` string, date-time
          - `intervalStart` string, date-time
          - `nativeHelmCount` integer
          - `replHelmCount` integer
          - `versionLabel` string
      - `moreAvailable` boolean
      - `totalCount` integer
    - `airgap` boolean
    - `airgapDownloadedAt` string, date-time
    - `airgapDownloadedChannelId` string
    - `airgapDownloadedChannelSequence` integer
    - `airgapDownloadedReleaseLabel` string
    - `appType` string
    - `channels` CustomerChannelWithDetail[]
      - `adoptionRate` CustomerAdoption[]
        - `channelId` string
        - `count` integer
        - `percent` number, double
        - `releaseSequence` integer
        - `semver` string
        - `totalOnChannel` integer
      - `airgapDiffBundlesEnabled` boolean
      - `airgapDockerRegistryFormatEnabled` boolean
      - `appId` string
      - `appName` string
      - `appSlug` string
      - `buildAirgapAutomatically` boolean
      - `channelIcon` string
      - `channelSequence` integer
      - `channelSlug` string
      - `channel_id` string
      - `chartReleases` HelmChart[] — ChartReleases is a map of chart name -> []string of version labels
        - `error` string
        - `hasPreflightSpec` boolean
        - `name` string
        - `version` string
        - `weight` integer
      - `created` string, date-time
      - `currentVersion` string
      - `customHostnameOverrides` CustomHostnameOverrides
        - `downloadPortal` CustomHostnameOverride
          - `hostname` string
        - `proxy` CustomHostnameOverride
          - `hostname` string
        - `registry` CustomHostnameOverride
          - `hostname` string
        - `replicatedApp` CustomHostnameOverride
          - `hostname` string
      - `customers` TotalActiveInactiveCustomers
        - `activeCustomers` integer
        - `inactiveCustomers` integer
        - `totalCustomers` integer
      - `description` string
      - `embeddedClusterInstallCommand` string
      - `enterprisePartnerChannelID` string
      - `existingClusterInstallCommand` string
      - `extraLintRules` ExtraLintRules[]
      - `gitHubRef` GitHubRef
      - `hasKurlInstaller` boolean — swager:ignore
      - `id` string
      - `isArchived` boolean
      - `isDefault` boolean
      - `isHelmOnly` boolean
      - `is_default_for_customer` boolean
      - `latestChannelSequence` integer
      - `name` string
      - `numActiveInstances` integer
      - `numReleases` integer
      - `pinned_channel_sequence` integer
      - `releaseNotes` string
      - `releaseSequence` integer
      - `releases` KotsChannelRelease[]
        - `airgapBuildError` string
        - `airgapBuildStatus` string
        - `airgapBundleImages` string[]
        - `channelIcon` string
        - `channelId` string
        - `channelName` string
        - `channelSequence` integer
        - `created` string, date-time
        - `createdBy` Actor
          - `description` string
          - `id` string
          - `link` string
          - `timestamp` string, date-time
          - `type` string
        - `customResourceError` string
        - `customResourceWarnings` string[]
        - `demotedAt` string, date-time
        - `embeddedClusterVersion` string
        - `hasECInstaller` boolean
        - `hasKurlInstaller` boolean
        - `imageSecurityInfo` ImageVulnCounts[]
          - `counts` VulnCounts
            - `critical` integer
            - `high` integer
            - `low` integer
            - `medium` integer
            - `total` integer
          - `digest` string
          - `digest_first_seen_at` string
          - `image_size_bytes` integer
          - `input` string
          - `installation_phase` string — 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".
          - `last_scanned_at` string
          - `not_found` boolean
        - `imageSecuritySums` object
        - `installationTypes` InstallationTypes
          - `embeddedCluster` InstallerTypeEmbeddedCluster
            - `proxyRegistryDomain` string
            - `replicatedAppDomain` string
            - `replicatedRegistryDomain` string
            - `version` string
          - `helm` InstallerTypeHelm
          - `kots` InstallerTypeKots
            - `minKotsVersion` string
            - `targetKotsVersion` string
          - `kotsConfig` InstallerTypeKotsConfig
            - `apiVersion` string
          - `kurl` InstallationTypeKurl
            - `installerVersion` string
          - `preflight` InstallerTypePreflight
            - `apiVersion` string
          - `replicatedSDK` InstallerTypeReplicatedSDK
            - `sdkVersion` string
          - `supportBundle` InstallerTypeSupportBundle
            - `apiVersion` string
        - `isDemoted` boolean
        - `isRequired` boolean
        - `kurlInstallerID` string
        - `lintResult` LintResult
          - `isLintingComplete` boolean
          - `lintExpressions` LintExpression[]
            - `message` string
            - `path` string
            - `rule` string
            - `type` string
        - `proxyRegistryDomain` string
        - `registrySecret` string
        - `releaseNotes` string
        - `releasedAt` string, date-time
        - `replicatedRegistryDomain` string
        - `semver` string
        - `sequence` integer
        - `updated` string, date-time
        - `updatedBy` Actor
          - `description` string
          - `id` string
          - `link` string
          - `timestamp` string, date-time
          - `type` string
      - `replicatedRegistryDomain` string
      - `semverRequired` boolean
      - `semverWarning` string
      - `targetKotsVersion` string
      - `updated` string, date-time
    - `createdAt` string, date-time
    - `createdBy` Actor
      - `description` string
      - `id` string
      - `link` string
      - `timestamp` string, date-time
      - `type` string
    - `customId` string
    - `downloadPortalUrl` string
    - `email` string
    - `entitlements` EntitlementValue[]
      - `isDefault` boolean
      - `name` string
      - `value` string
    - `esInstances` CustomerESInstance[]
      - `downstreamChannelId` string
      - `downstreamChannelName` string
      - `downstreamChannelSequence` integer
      - `installedReleaseLabel` string
      - `instanceId` string
      - `tags` InstanceTag[]
        - `instanceId` string
        - `key` string
        - `origin` string
        - `value` string
    - `expiresAt` string, date-time
    - `id` string
    - `inactiveInstances` InstancePreview
      - `instances` CustomerInstance[]
        - `active` boolean
        - `appStatus` string
        - `client` string
        - `cloud` string
        - `clusterId` string
        - `createdAt` string, date-time
        - `embeddedClusterVersion` string
        - `instanceId` string
        - `isAirgap` boolean
        - `isArchived` boolean
        - `isDummyInstance` boolean
        - `isEmbeddedCluster` boolean
        - `isKurl` boolean
        - `k8sVersion` string
        - `kotsVersion` string
        - `kurlNodeCountReady` integer
        - `kurlNodeCountTotal` integer
        - `lastActive` string, date-time
        - `licenseId` string
        - `replicatedSdkVersion` string
        - `serviceAccountId` string
        - `tags` InstanceTag[]
          - `instanceId` string
          - `key` string
          - `origin` string
          - `value` string
        - `versionHistory` CustomerInstanceVersionHistory[]
          - `clusterId` string
          - `downstreamChannelId` string
          - `downstreamReleaseSequence` integer
          - `instanceId` string
          - `intervalLast` string, date-time
          - `intervalStart` string, date-time
          - `nativeHelmCount` integer
          - `replHelmCount` integer
          - `versionLabel` string
      - `moreAvailable` boolean
      - `totalCount` integer
    - `installationId` string
    - `installationVersion` string
    - `installedReleaseLabel` string
    - `installedReleaseSequence` integer
    - `instances` CustomerInstance[]
      - `active` boolean
      - `appStatus` string
      - `client` string
      - `cloud` string
      - `clusterId` string
      - `createdAt` string, date-time
      - `embeddedClusterVersion` string
      - `instanceId` string
      - `isAirgap` boolean
      - `isArchived` boolean
      - `isDummyInstance` boolean
      - `isEmbeddedCluster` boolean
      - `isKurl` boolean
      - `k8sVersion` string
      - `kotsVersion` string
      - `kurlNodeCountReady` integer
      - `kurlNodeCountTotal` integer
      - `lastActive` string, date-time
      - `licenseId` string
      - `replicatedSdkVersion` string
      - `serviceAccountId` string
      - `tags` InstanceTag[]
        - `instanceId` string
        - `key` string
        - `origin` string
        - `value` string
      - `versionHistory` CustomerInstanceVersionHistory[]
        - `clusterId` string
        - `downstreamChannelId` string
        - `downstreamReleaseSequence` integer
        - `instanceId` string
        - `intervalLast` string, date-time
        - `intervalStart` string, date-time
        - `nativeHelmCount` integer
        - `replHelmCount` integer
        - `versionLabel` string
    - `isArchived` boolean
    - `isDevModeEnabled` boolean
    - `isDisasterRecoverySupported` boolean
    - `isEmbeddedClusterDownloadEnabled` boolean
    - `isEmbeddedClusterMultiNodeEnabled` boolean
    - `isEnterprisePortalEnabled` boolean
    - `isGeoaxisSupported` boolean
    - `isGitopsSupported` boolean
    - `isHelmAirgapEnabled` boolean
    - `isHelmInstallEnabled` boolean
    - `isIdentityServiceSupported` boolean
    - `isInstallerSupportEnabled` boolean
    - `isInstancesLimited` boolean
    - `isKotsInstallEnabled` boolean
    - `isKurlInstallEnabled` boolean
    - `isSecurityCenterEnabled` boolean
    - `isSnapshotSupported` boolean
    - `isSupportBundleUploadEnabled` boolean
    - `lastActive` string, date-time
    - `lowercaseName` string — Lowercase fields for ES customer sorting
    - `name` string
    - `pinnedChannelSequence` integer
    - `shipInstallStatus` ShipInstallStatus
      - `status` string
      - `updatedAt` string, date-time
    - `teamId` string
    - `type` string
    - `updatedAt` string, date-time
    - `updatedBy` Actor
      - `description` string
      - `id` string
      - `link` string
      - `timestamp` string, date-time
      - `type` string
  - `totalCustomers` integer

## Other responses

- `400` — Returned on bad input
- `401` — Return if the caller is not authorized
- `403` — Returned if the caller does not have the needed permission
- `404` — Returned on resource not found

---

[API](https://skmtc.net/replicated/apis/vendor-api-v3-2.md) · [All operations](https://skmtc.net/replicated/apis/vendor-api-v3-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/replicated/vendor-api-v3-2/revisions/6fcf9e54aba4/schema)
