---
title: "Return all visible customers, paginated by name"
method: GET
path: "/v1/customer"
tags: ["customer"]
---

# Return all visible customers, paginated by name

`GET /v1/customer`

## Query parameters

- `from` string
- `limit` integer
- `status` string
- `trialAsOf` string, date

## Response `200`

successful operation

- ResultsCustomer
  - `data` Customer[], required
    - `id` string, required — unique id of customer
    - `name` string, required — name of customer
    - `email` string — email address for billing purposes
    - `billAddress` Address
      - `street1` string — street address, line 1
      - `street2` string — street address, line 2
      - `street3` string — street address, line 3
      - `city` string — city
      - `state` string — state
      - `country` string, required — country (two-digit ISO code)
      - `postal` string — postal code
      - `geo` Geopoint
        - `type` string, required — Type of point
        - `coordinates` number[], required — The longitude and latitude of the point
      - `approxGeo` Geopoint
        - `type` string, required — Type of point
        - `coordinates` number[], required — The longitude and latitude of the point
    - `industry` string — industry that customer is in
    - `source` 'ADP_MARKETPLACE' | 'SELF_SERVE' | 'SELF_SERVE_TEST' | 'SEQUOIA_ONE' | 'CONNECT' — source of customer signup
    - `status` 'ACTIVE' | 'INACTIVE' | 'TRIAL' | 'CHURN' | 'PAYMENT_ERROR', required — current status
    - `stripeCustomerId` string — stripe customer id
    - `salesforceAccountId` string — salesforce account id
    - `products` ProductItem[] — products that this customer has purchased
      - `productId` string, required
      - `stripePriceId` string, required
    - `trialProducts` TrialProduct[] — products this customer has temporary trial access to, each bounded by a date range
      - `productId` string, required — id of the product the customer is trialing
      - `startDate` string, date, required — first date the trial grants access (inclusive)
      - `endDate` string, date, required — last date the trial grants access (inclusive)
    - `restrictedFeatures` string[] — features that are restricted for the customer
    - `featureOptionOverrides` FeatureAccessOption[] — override feature options for the customer
      - `name` 'CONFIGURED_ROLES' | 'SMART_FIELDS' | 'APP_FIELD_MAPPERS' | 'MULTI_PAYROLL_INSTALLS', required — The name of the feature option tied to the feature access
      - `description` string — The description of the feature option
      - `type` 'LIMIT' | 'FULL_ACCESS', required — The feature option type
      - `limit` integer — The feature option limit
    - `disableAi` boolean — customer has opted out of all use of AI -- no AI features may be enabled on any of their orgs
    - `startDate` string, date — initial date of billing
    - `endDate` string, date — end of service date for churning customers -- on or after this date, service should be disabled
    - `nextInvoiceDate` string, date — date of next invoice
    - `orgCount` integer — number of orgs covered by this customer
    - `primaryHeadCount` integer — number of total headcount across all orgs
    - `secondaryHeadCount` integer — number of total headcount across all orgs
    - `tertiaryHeadCount` integer — number of total headcount across all orgs
    - `primaryHeadCountFilter` string — primary headcount filter - used for billing purposes
    - `secondaryHeadCountFilter` string — secondary headcount filter - used for billing purposes
    - `tertiaryHeadCountFilter` string — tertiary headcount filter - used for billing purposes
    - `arr` number — current ARR of the customer based on most recent invoice
    - `trialStartDate` string, date — date this customer begins their trial period
    - `trialEndDate` string, date — date this customer ends their trial period
    - `stripeSubscriptionSync` 'SYNC' | 'DELETE' — Stripe subscription settings
    - `createAt` string — created timestamp
    - `createId` string — created by
    - `createBehalfId` string — created on behalf of user id
    - `createAttribution` Attribution
      - `principalUserId` string
      - `agentUserIds` string[]
      - `eventId` string
      - `aiChatId` string
      - `aiToolUseId` string
      - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
    - `updateAt` string — updated timestamp
    - `updateId` string — updated by
    - `updateBehalfId` string — last updated on behalf of user id
    - `updateAttribution` Attribution
      - `principalUserId` string
      - `agentUserIds` string[]
      - `eventId` string
      - `aiChatId` string
      - `aiToolUseId` string
      - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
  - `next` string
  - `access` ResultsAccess[]
    - `ids` string[]
    - `allowed` AccessAction[], required
      - `action` string, required
      - `fields` string[]
      - `types` string[]

## Other responses

- `400` — bad request
- `404` — not found

---

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