Guests¶
GET /partners/sync/users?lastSyncedAt=... returns the guests of your venue. See Keep your data in sync first.
curl "https://production.speakeasygo.com/partners/sync/users?lastSyncedAt=2026-11-01T00:00:00.000Z" \
-H "token: $SPEAKEASY_VENUE_TOKEN"
{
"newUsers": [
{
"id": "aaaaaaaa-aaaa-4aaa-8aaa-aaaaaaaaaaaa",
"uniqueId": "CON-abc123",
"firstName": "Sam",
"lastName": "Sample",
"email": "sam@example.com",
"code": "+1",
"phone": "3125551212",
"fullPhoneNumber": "+13125551212",
"consumerState": "VERIFIED",
"createdAt": "2026-11-02T04:10:00.000Z",
"updatedAt": "2026-11-02T04:10:00.000Z",
"venueHasCustomer": [
{
"venueId": "11111111-1111-4111-8111-111111111111",
"status": "ENABLED",
"optedEmailPolicy": "ENABLED",
"numberOfPurchase": 1,
"totalSpent": 58.2,
"lastVisitedOn": "2026-11-02T04:10:00.000Z"
}
]
}
],
"updatedUsers": [],
"syncedAt": "2026-11-05T12:00:00.000Z",
"meta": { "venueId": "11111111-1111-4111-8111-111111111111", "newCount": 1, "updatedCount": 0 }
}
Who is in which list¶
| List | Who |
|---|---|
newUsers |
Guests whose relationship with your venue started at or after the checkpoint |
updatedUsers |
Guests whose relationship is older, and whose guest record or relationship changed at or after the checkpoint |
A guest can be in both, so update by id. Deleted guests are left out, and nothing tells you that a guest was deleted.
A guest who replies STOP or START to a venue's campaign texts comes back in updatedUsers with the new status. That is true from November 5, 2026. A guest who opted out before then does not come back by themselves, so ask your Speakeasy contact for a one-time export if you text guests from your own tools.
Fields to use¶
Other columns can appear. Do not rely on them.
| Field | Meaning |
|---|---|
id |
The guest id. This is what orders and reservations point to. |
uniqueId |
The guest's public code |
firstName, lastName, email |
Can be empty |
code, phone, fullPhoneNumber |
Country code, the number without it, and both together |
gender, dob |
dob is yyyy-MM-dd, and can be null |
consumerState |
VERIFIED (the guest checked their phone), UNVERIFIED, MANUAL (added by staff) or IMPORTED (from a file) |
createdAt, updatedAt |
ISO 8601 in UTC |
On each entry in venueHasCustomer, which only covers your venue:
| Field | Meaning |
|---|---|
venueId |
Your venue |
status |
ENABLED means the venue may text this guest. DISABLED means do not text them: they opted out, or they never opted in. |
optedEmailPolicy |
ENABLED means the guest opted in to email |
numberOfPurchase, totalSpent |
What the venue knows so far |
numberOfVisit |
Not filled in: it is always 0. Use numberOfPurchase. |
lastVisitedOn |
ISO 8601 in UTC |
isVip, isMember |
Flags the venue set |
createdAt, updatedAt |
When the relationship started and last changed |
The same person can have more than one guest record, for example one added by staff and one from their own sign-up.