List guests with search
Guests · GET /v1/guests
List guests with search
/v1/guestsRequest
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
cursorstringOpaque cursor returned in the previous response's `pagination.nextCursor`. Omit to fetch the first page.
offsetintegerFirst-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.
limitintegerMax items per page. Hard cap is 100.
qstringCase-insensitive substring search on name, email, or phone.
has_reservationbooleanRestrict to guests that do (`true`) or do not (`false`) have any reservation on file.
listingIdintegerRestrict to guests with at least one reservation on the given internal Repull listing id.