List guests with search

Guests · GET /v1/guests

List guests with search

GET/v1/guests

Request

curl https://api.repull.dev/v1/guests?limit=20 \
  -H "Authorization: Bearer $REPULL_API_KEY"

Response

{
  "data": [
    {
      "id": "123",
      "displayName": "Example",
      "displayNameLong": "Example",
      "avatarUrl": "https://example.com/...",
      "language": "Example text",
      "country": null,
      "phone": "+15550000000",
      "email": "guest@example.com",
      "totalReservations": 0,
      "totalRevenue": "Example text",
      "lastStayedAt": null,
      "firstStayedAt": null,
      "createdAt": "2026-06-01T12:00:00.000Z"
    }
  ],
  "pagination": {
    "nextCursor": "eyJpZCI6MTIzfQ==",
    "hasMore": true,
    "total": 0
  }
}

Captured from a real response. Regenerated on every release, and CI fails if this shape stops matching the API.

Query Parameters

cursorstring

Opaque cursor returned in the previous response's `pagination.nextCursor`. Omit to fetch the first page.

offsetinteger

First-class alias for cursor-based pagination. Mutually exclusive with `cursor` — passing both returns 422. Accepts integers in `[0, 10000]`; deeper walks must use `cursor` (constant per-page cost). The response always includes `pagination.nextCursor` so consumers can switch from offset → cursor mid-walk for deep pagination without re-keying.

limitinteger

Max items per page. Hard cap is 100.

qstring

Case-insensitive substring search on name, email, or phone.

has_reservationboolean

Restrict to guests that do (`true`) or do not (`false`) have any reservation on file.

listingIdinteger

Restrict to guests with at least one reservation on the given internal Repull listing id.

AI