Skip to content

Guests

A guest is one profile in the restaurant’s guest book: names, contact details, the restaurant’s own flags and the counted visit history. The same object is what ?expand=guest embeds on a reservation or a waitlist entry.

Both endpoints need the guests:read scope, and a key without it is refused with 403 insufficient_scope whatever else it carries. The fields are on The guest object.

Endpoint What it does
GET /v1/guests Lists the guest book, newest profile first, filterable with updated_since and email or phone.
GET /v1/guests/{id} Retrieves one profile by its gst_… id.

This resource is read-only. Profiles are created by the restaurant, by the booking widget and as a side effect of POST /v1/reservations; there is no endpoint here that writes one.

When the restaurant merges two profiles, the absorbed gst_… keeps resolving and returns the surviving profile under the survivor’s own id. An id you stored never breaks, and the way to notice is that the id you get back differs from the one you sent. A guest.merged webhook announces it as it happens.