Skip to content

Introduction

The Service API is a read-only HTTP API for your restaurant’s reservations and guests. It is free to use and currently in beta.

It is designed for restaurants and the tools they use — custom websites, internal dashboards, CRMs, analytics pipelines, and automations — that want programmatic access to their own reservation and guest data.

All requests go to a single, dedicated host over HTTPS:

https://api.useservice.app

Every endpoint lives under the stable /v1 path prefix, for example:

GET https://api.useservice.app/v1/reservations
GET https://api.useservice.app/v1/guests
  • Reservations — list and filter reservations, retrieve a single reservation (with its table assignments and guest), and read a reservation’s lifecycle event history.
  • Guests — list and search guests by phone, email, or free-text query, and retrieve a single guest with contact details, consent flags, and visit stats.
  • Webhooks — subscribe to signed, real-time events for the reservation lifecycle plus guest and feedback events. See Webhooks.

Writing data (creating or modifying reservations and guests) is not part of this release.

AreaConvention
TransportHTTPS only, JSON request/response bodies
AuthAuthorization: Bearer sk_live_… — a per-restaurant API key
VersioningDate-based Service-Version header, pinned per key
IDsOpaque, prefixed strings (resv_…, gst_…) — never assume a format beyond the prefix
TimestampsISO-8601 with the restaurant’s UTC offset (e.g. 2026-06-27T19:30:00+02:00)
Lists{ "object": "list", "data": [...], "has_more": true } — see Pagination
Errors{ "error": { "type", "code", "message", "param"?, "doc_url" } } (param only when a parameter is at fault) — see Errors
ObjectsEvery resource carries an object field ("reservation", "guest", "list", …)

Single resources are returned as a flat JSON object with an object discriminator:

{
"object": "reservation",
"id": "resv_8xKQ2m4Vd0pErJ7sN1aZ9bQ",
"status": "confirmed",
"party_size": 4,
"service_date": "2026-06-27",
"starts_at": "2026-06-27T20:00:00+02:00",
"created_at": "2026-06-20T11:04:18+02:00",
"updated_at": "2026-06-25T09:12:55+02:00"
}

Collections are wrapped in a list envelope:

{
"object": "list",
"data": [ { "object": "reservation", "id": "resv_…" } ],
"has_more": true
}
  1. Read Authentication and get a key.
  2. Skim Pagination and Errors.
  3. Browse the full API reference, or grab the OpenAPI spec to generate an SDK or import it into Postman.
  4. Set up Webhooks to react to changes in real time.