For the complete documentation index, see llms.txt. This page is also available as Markdown.

Use Case: Retrieve Customer List

This guide shows how to safely retrieve large datasets (including 10,000+ records).

Objective

Retrieve the complete list of customers from your PodPlay site, optionally applying filters such as membership status or search terms.

Step 1 — Call the Users Endpoint

To retrieve customers, use:

GET /apis/v2/users

Authentication:

x-api-key: <your_api_key>

You may include optional filters:

GET /apis/v2/users?membershipStatus=active&search=john&page=1&ipp=100

You can explore the full schema and all supported filters in the API Reference. For convenience, the definition of GET /apis/v2/users is included at the bottom of this page for quick access.

Step 2 — Understand Pagination

Customer lists are returned in pages.

Each response includes:

{
    "items": [...],
    "_pagination": {
        "page": 1,
        "ipp": 100,
        "count": 100,
        "total": 10247
    }
}

This means:

  • You are on page 1

  • You received 100 customers

  • There are 10,247 total customers

Step 3 — Retrieve All Pages

To retrieve the full dataset:

  1. Start with page=1

  2. Store the returned items

  3. Increment page

  4. Repeat until: count < ipp, or page * ipp ≥ total

This approach works for any dataset size.

Example: Page 1

Example: Page 2

Continue increasing the page parameter (page=3, page=4, …) until all records have been retrieved.

For Low-Code & Automation Tools

Most platforms support:

  • Pagination

  • Looping

  • Iteration

Configure the request with a dynamic page parameter and continue until all pages are retrieved.

Once configured, the same flow works whether you have 100 or 10,000+ customers.

API Reference: GET /apis/v2/users

get
Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
searchstringOptionalExample: mati
includePristinebooleanOptional

Applicable only if areaId is specified.

memberSinceMinstring · date-timeOptionalExample: 2022-01-01T00:00:00.000Z
memberSinceMaxstring · date-timeOptionalExample: 2024-01-01T00:00:00.000Z
tenureMinstring · date-timeOptionalExample: 2022-01-01T00:00:00.000Z
tenureMaxstring · date-timeOptionalExample: 2024-01-01T23:59:59.999Z
conditionstring[]OptionalExample: ["GRACE"]
pagenumberOptionalExample: 1
ippnumberOptionalExample: 30
strictLocationbooleanOptional

If true, do not bypass location filters for exact email/full-name searches.

expandstring[]OptionalExample: ["items._links.phoneNumber","items._links.paymentMethod","items._links.profile"]
sortstringOptional

If not set, sort will be defaulted as fullName (ASC)

Example: -fullName
rolestring[]OptionalExample: ["COACH"]
membershipIdstring[]OptionalExample: ["home-pod-nyc"]
membershipAreaIdstring[]OptionalExample: ["les","w37"]
areaIdstring[]OptionalExample: ["les","w37"]
userIdstring[]OptionalExample: ["userId1","userId2"]
Responses
200

Returns a UserCollection

application/json
get/users
GET /apis/v2/users HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Returns a UserCollection

{
  "items": [
    {
      "id": "text",
      "email": "name@gmail.com",
      "firstName": "text",
      "lastName": "text",
      "description": "text",
      "notes": {
        "id": "text"
      },
      "phoneNumberPreview": "text",
      "phoneNumber": {
        "id": "text"
      },
      "roles": [
        "ADMIN"
      ],
      "rolesAreas": {
        "items": [
          "text"
        ],
        "_total": 1,
        "_links": {
          "self": {
            "href": "text"
          }
        }
      },
      "flags": [
        "NEW"
      ],
      "paymentMethod": {
        "id": "text"
      },
      "paymentElements": {
        "items": [
          "text"
        ],
        "_total": 1,
        "_links": {
          "self": {
            "href": "text"
          }
        }
      },
      "freeQuickReplays": 1,
      "picture": {
        "id": "text"
      },
      "gender": "text",
      "birthday": "2026-01-01T00:00:00.000Z",
      "favoriteReplays": {},
      "profile": {
        "id": "text"
      },
      "coachProfile": {
        "id": "text"
      },
      "qrCode": {
        "id": "text"
      },
      "membershipEnrollment": {
        "id": "text"
      },
      "ratings": {
        "_total": 1
      },
      "securityPicture": {
        "id": "text"
      },
      "chat": {
        "id": "text"
      },
      "segmentation": {
        "id": "text"
      },
      "_links": {}
    }
  ],
  "_pagination": {
    "page": 1,
    "ipp": 1,
    "count": 1,
    "total": 1
  },
  "_links": {
    "self": {
      "href": "text"
    }
  }
}

Last updated

Was this helpful?