# List customers

GET https://api.oletapp.com/your-store/v1/customers

A delta-sync polling list: poll with the returned `next_cursor` to see only what changed.

Filter by exact `email` (case-insensitive), `phone`, or `customer_code`. The walk-in system customer is included, flagged `is_walk_in`.

**Requires scope:** `customers:read`

Required scope: `customers:read`

## Parameters

| Name | In | Type | Required |
|---|---|---|---|
| `limit` | query | integer | no |
| `cursor` | query | string | no |
| `order` | query | "asc" | "desc" | no |
| `include_deleted` | query | boolean | no |
| `email` | query | string | no |
| `phone` | query | string | no |
| `customer_code` | query | string | no |

## Response (200)

```
{
  data: { ... } | { ... }[]
  has_more: boolean
  next_cursor: string | null
}
```

Errors follow the standard error envelope: https://getolet.com/resources/developers/errors.md

## Example

```bash
curl -X GET "https://api.oletapp.com/your-store/v1/customers" \
  -H "Authorization: Bearer olet_live_YOUR_API_KEY"
```
