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

# List all customers

<Tip>
  This endpoint is paginated to improve its performance. The example below shows
  how to fetch multiple pages.
</Tip>

```typescript theme={null}
import axios from "axios";

const getPage = async (input: { limit?: number; cursor?: string }) => {
  const response = await axios.get("https://api.palomma.com/v0/customers", {
    headers: {
      Authorization: "Bearer <token>",
    },
    params: {
      ...input,
    },
  });
  if (!response.data) throw new Error();
  const { items, cursor, count } = response.data;
  return { items, cursor, count };
};

const getAll = async (input: { limit?: number }) => {
  let items: any[] = [];
  const firstPage = await getPage({ limit: input.limit });
  if (firstPage) {
    items = items.concat(firstPage.items);
    let currentCursor = firstPage.cursor;
    while (currentCursor !== null) {
      const nextPage = await getPage({
        limit: input.limit,
        cursor: currentCursor,
      });
      items = items.concat(nextPage.items);
      currentCursor = nextPage.cursor;
    }
  }
  return items;
};
```


## OpenAPI

````yaml GET /customers
openapi: 3.0.0
info:
  title: Palomma API
  description: This API includes functionality of the Palomma API.
  version: 1.0.0
servers:
  - url: https://api.palomma.com/v0
    description: Production server
  - url: https://sandbox.api.palomma.com/v0
    description: Sandbox server
security:
  - BearerAuth: []
paths:
  /customers:
    get:
      tags:
        - customers
      summary: Retrieve customers
      operationId: listCustomers
      parameters:
        - name: reference
          in: query
          description: Filter by reference provided on creation.
          schema:
            type: string
        - name: limit
          in: query
          description: Number of records to return. Default is 20. Maximum is 100.
          schema:
            type: integer
        - name: cursor
          in: query
          description: >-
            A cursor for use in pagination. The cursor indicates where to start
            fetching the results.
          schema:
            type: string
      responses:
        '200':
          description: List of customers successfully retrieved.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Customer'
                  cursor:
                    $ref: '#/components/schemas/CursorResponse'
                  count:
                    type: integer
                    description: The total number of items returned.
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
        '500':
          description: Internal server error.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
components:
  schemas:
    Customer:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for this customer.
          example: 01HPR57X6QR5ZRKEEKBSDBW4RA
        reference:
          type: string
          description: Reference sent in by merchant to identify customer.
        name:
          type: string
          description: >-
            First and last name for a natural person, and company name for a
            juridical person.
          example: Pepito Perez
        documentType:
          type: string
          description: Colombian ID type for customer.
          enum:
            - cc
            - ce
            - nit
        documentNumber:
          type: string
          description: Colombian ID number for customer.
          example: '1037551022'
        email:
          type: string
          description: Customer’s email.
          example: pepito@gmail.com
        phoneNumber:
          type: string
          description: Customer’s phone number.
          example: '3013111111'
        createdAt:
          type: string
          format: date-time
          description: ISO string indicating when the customer was created.
        updatedAt:
          type: string
          format: date-time
          description: ISO string indicating when the customer was updated.
    CursorResponse:
      type: string
      nullable: true
      description: >-
        A cursor for use in pagination. Provide this value in the cursor
        parameter to retrieve the next set of results. When there are no more
        results, the cursor will be null.
      example: >-
        fa4c20cf2b51f6a45377c98271e3754da1e29b6827928a8e0b40da5a7d53c971aa22c50b2c8ce83484a0dd36ee0e2570a0520a4f1f4817962d95ba65059b9a28da1a5d4ac7bfe7628fb917efd20608656da58b412ea758ec341cd6dfb226f8be263cefa811848b859a5a71f90f47533e01e969d49c0ac9e4e944b3d0fbd4e207
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````