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

# List Customers | Customers API

> List customers via the Atoa Customers API, request parameters, response schema and code samples in cURL, Python, JavaScript, PHP, Go and Java.

Get all customers for the merchant with pagination.

### Authorization

Bearer `<accessSecret>`

**Query Parameters**

**page** `number` (default: 0)

Page number (0-indexed).

**size** `number` (default: 20)

Number of items per page.

**search** `string`

Search by customer name, email, or phone number.

**metadata\[key]** `string`

Filter by metadata using `metadata[key]=value`, which returns only customers whose metadata contains that exact key/value pair. Repeat with distinct keys to combine conditions with AND, for example `?metadata[plan]=pro&metadata[region]=uk`. Keys may be any string, including digits only such as `metadata[5]=x`. Filtering the same key by more than one value returns a `400`.

**Response**

**data** `array`

Array of customer objects.

**id** `string`

Customer UUID.

**fullName** `string`

Customer's full name.

**email** `string`

Customer's email address.

**type** `string`

`INDIVIDUAL` or `BUSINESS`.

**metadata** `object`

Key/value string pairs attached to the customer.

**createdAt** `string`

ISO 8601 creation timestamp.

**totalCount** `number`

Total number of customers.

**page** `number`

Current page number.

**size** `number`

Items per page.

```bash curl theme={null}
curl --request GET \
  --url 'https://api.atoa.me/api/customers?page=0&size=20' \
  --header 'Authorization: Bearer <token>'
```

```python Python theme={null}
import requests

url = "https://api.atoa.me/api/customers"
params = {"page": 0, "size": 20}
headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, params=params, headers=headers)
print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch(
  "https://api.atoa.me/api/customers?page=0&size=20",
  {
    headers: { Authorization: "Bearer <token>" },
  }
);

const data = await response.json();
console.log(data);
```

```php PHP theme={null}
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.atoa.me/api/customers?page=0&size=20",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;
```

```go Go theme={null}
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "https://api.atoa.me/api/customers?page=0&size=20"

  req, _ := http.NewRequest("GET", url, nil)
  req.Header.Add("Authorization", "Bearer <token>")

  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)
  fmt.Println(string(body))
}
```

```java Java theme={null}
HttpResponse<String> response = Unirest.get("https://api.atoa.me/api/customers")
  .header("Authorization", "Bearer <token>")
  .queryString("page", 0)
  .queryString("size", 20)
  .asString();
```

```json 200 theme={null}
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "fullName": "John Doe",
      "email": "john.doe@example.com",
      "type": "INDIVIDUAL",
      "phoneCountryCode": "44",
      "phoneNumber": "7911123456",
      "address": "123 High Street",
      "city": "London",
      "postcode": "SW1A 1AA",
      "metadata": {
        "crmId": "CRM-8842",
        "loyaltyTier": "gold"
      },
      "createdAt": "2025-06-15T10:30:00.000Z"
    }
  ],
  "totalCount": 50,
  "page": 0,
  "size": 20
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.