> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sagepilot.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List customers

> List, search, and sort customers.

<ResponseExample>
  ```json 200 theme={null}
  {
    "records": [
      {
        "id": "c52c9352-a1bb-4bab-bc53-a7651a5eec54",
        "name": "vikram",
        "email": "vikram2000b@gmail.com",
        "phone": "918003213447",
        "instagram_id": null,
        "instagram_username": null,
        "channel_name": "Sagepilot Website",
        "channel_kind": "web_widget",
        "custom_fields": {
          "city": null,
          "region": null,
          "source": "shopify_out_of_stock",
          "country": null,
          "product_url": "https://sagepilot-test-account.myshopify.com/products/the-3p-fulfilled-snowboard",
          "country_code": null,
          "product_name": "The 3p Fulfilled Snowboard",
          "submitted_at": "2025-10-31T06:22:19.648Z",
          "shopify_product_id": "9657337184546",
          "shopify_variant_id": "49698626765090",
          "shopify.customer.id": "8738967847202",
          "shopify.customer.name": "Vikram Singh Chundawat",
          "shopify.customer.note": "",
          "shopify.customer.tags": [
            "READ",
            "VIP"
          ],
          "shopify.customer.email": "vikram2000b@gmail.com",
          "shopify.customer.phone": "+918003213447",
          "shopify.customer.state": "DISABLED",
          "sagepilot.customer.name": "Vikram Singh Chundawat",
          "sagepilot.customer.email": "vikram2000b@gmail.com",
          "sagepilot.customer.phone": "+918003213447",
          "shopify.customer.last_order": {
            "id": "6367398134050",
            "name": "#1032",
            "closed": false,
            "confirmed": true,
            "created_at": "2025-06-12T16:02:40Z",
            "total_price": 29.45,
            "cancelled_at": null,
            "processed_at": "2025-06-12T16:02:40Z",
            "currency_code": "INR",
            "return_status": "NO_RETURN",
            "financial_status": "PENDING",
            "fulfillment_status": "UNFULFILLED"
          },
          "shopify.customer.currency_code": "INR",
          "shopify.customer.recent_orders": [
            {
              "id": "6367398134050",
              "name": "#1032",
              "closed": false,
              "confirmed": true,
              "created_at": "2025-06-12T16:02:40Z",
              "total_price": 29.45,
              "cancelled_at": null,
              "processed_at": "2025-06-12T16:02:40Z",
              "currency_code": "INR",
              "return_status": "NO_RETURN",
              "financial_status": "PENDING",
              "fulfillment_status": "UNFULFILLED"
            },
            {
              "id": "6348544737570",
              "name": "#1031",
              "closed": false,
              "confirmed": true,
              "created_at": "2025-05-29T19:48:27Z",
              "total_price": 29.45,
              "cancelled_at": null,
              "processed_at": "2025-05-29T19:48:26Z",
              "currency_code": "INR",
              "return_status": "NO_RETURN",
              "financial_status": "PAID",
              "fulfillment_status": "UNFULFILLED"
            },
            {
              "id": "6348540510498",
              "name": "#1030",
              "closed": false,
              "confirmed": true,
              "created_at": "2025-05-29T19:44:02Z",
              "total_price": 29.45,
              "cancelled_at": null,
              "processed_at": "2025-05-29T19:44:02Z",
              "currency_code": "INR",
              "return_status": "NO_RETURN",
              "financial_status": "PAID",
              "fulfillment_status": "UNFULFILLED"
            },
            {
              "id": "6268534620450",
              "name": "#1029",
              "closed": false,
              "confirmed": true,
              "created_at": "2025-05-13T20:11:05Z",
              "total_price": 29.45,
              "cancelled_at": null,
              "processed_at": "2025-05-13T20:11:05Z",
              "currency_code": "INR",
              "return_status": "NO_RETURN",
              "financial_status": "PENDING",
              "fulfillment_status": "UNFULFILLED"
            },
            {
              "id": "6248299069730",
              "name": "#1028",
              "closed": false,
              "confirmed": true,
              "created_at": "2025-05-01T21:24:55Z",
              "total_price": 825.95,
              "cancelled_at": null,
              "processed_at": "2025-05-01T21:24:53Z",
              "currency_code": "INR",
              "return_status": "NO_RETURN",
              "financial_status": "PAID",
              "fulfillment_status": "UNFULFILLED"
            }
          ],
          "shopify.customer.lifetime_spent": 15856.85,
          "shopify.customer.last_order_date": "2025-06-12T16:02:40Z",
          "shopify.customer.lifetime_orders": 21,
          "shopify.customer.predicted_spend_tier": null,
          "shopify.customer.sms_marketing_consent": "SUBSCRIBED",
          "shopify.customer.email_marketing_consent": "SUBSCRIBED",
          "shopify.customer.last_order_repurchase_link": "https://sagepilot-test-account.myshopify.com/cart/49698626568482:1?storefront=true&utm_campaign=ai&utm_source=sagepilot-ai&utm_medium=whatsapp"
        },
        "created_at": "2025-02-22T15:54:39.814426Z",
        "workspace_id": "ab1360ce-ef91-4397-8fbd-3ed77ef80e08",
        "company": null,
        "stage": "",
        "last_chat_id": "b18398f8-a00c-4c70-b463-8c681d5a64bf",
        "channel_id": "30cdb75b-14a2-40de-bc98-acf13610d714",
        "company_id": null,
        "external_id": null,
        "chats": 1,
        "blocked": false,
        "segments": [
          "6990ac04-3cb7-4aa8-abe9-d10becb53a86",
          "198afd6e-3dc4-4f66-921b-100b8a9f407e"
        ],
        "whatsapp_optout": false,
        "tracker_id": "0fd87fac-1c57-4bcf-9e03-e0fdd8c079a8",
        "is_primary": false,
        "test_user": false,
        "email_optout": false,
        "profile_id": "66b246d1-d87f-4983-bf45-11caec0f545e",
        "shopify_customer_id": 8738967847202,
        "profile_updated_at": "2026-05-25T13:03:31.632136Z",
        "es_sync_status": "synced",
        "es_synced_at": "2026-05-13T20:47:57.219727Z",
        "es_sync_attempts": 0,
        "es_sync_error": null,
        "es_sync_locked_at": null,
        "es_index_version": 1,
        "channels": {
          "name": "Sagepilot Website",
          "kind": "web_widget"
        }
      }
    ],
    "total": 1
  }
  ```
</ResponseExample>

List customers with optional search, sorting, and pagination.

## Required access

| Authentication                                               | Scope            | Dataset grant |
| ------------------------------------------------------------ | ---------------- | ------------- |
| [API client v2](/api-reference/authentication/api-client-v2) | `customers:read` | `customers`   |

## Body

A JSON body is required. Send `{}` when you are not filtering or sorting customers.

<ParamField body="search" type="string">
  Optional search text for customer lookup.
</ParamField>

<ParamField body="sort_by" type="string">
  Field used to sort customers.
</ParamField>

<ParamField body="sort_order" type="string">
  Sort direction. Use `asc` or `desc`.
</ParamField>

## Query parameters

<ParamField query="page" type="integer" default="1">
  Page number.
</ParamField>

<ParamField query="page_size" type="integer" default="20">
  Records per page. Maximum value is `100`.
</ParamField>

## Response

<ResponseField name="records" type="object[]" required>
  Customer records.
</ResponseField>

<ResponseField name="total" type="integer" required>
  Total matching customer count.
</ResponseField>
