> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.paywithatoa.co.uk/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**

<ParamField query="page" type="number" default="0">
  Page number (0-indexed).
</ParamField>

<ParamField query="size" type="number" default="20">
  Number of items per page.
</ParamField>

<ParamField query="search" type="string">
  Search by customer name, email, or phone number.
</ParamField>

**Response**

<ResponseField name="data" type="array">
  Array of customer objects.

  <Expandable>
    <ResponseField name="id" type="string">
      Customer UUID.
    </ResponseField>

    <ResponseField name="fullName" type="string">
      Customer's full name.
    </ResponseField>

    <ResponseField name="email" type="string">
      Customer's email address.
    </ResponseField>

    <ResponseField name="type" type="string">
      `INDIVIDUAL` or `BUSINESS`.
    </ResponseField>

    <ResponseField name="createdAt" type="string">
      ISO 8601 creation timestamp.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="totalCount" type="number">
  Total number of customers.
</ResponseField>

<ResponseField name="page" type="number">
  Current page number.
</ResponseField>

<ResponseField name="size" type="number">
  Items per page.
</ResponseField>

<RequestExample>
  ```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();
  ```
</RequestExample>

<ResponseExample>
  ```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",
        "createdAt": "2025-06-15T10:30:00.000Z"
      }
    ],
    "totalCount": 50,
    "page": 0,
    "size": 20
  }
  ```
</ResponseExample>
