Skip to content

Developers

A clean REST API for availability and bookings.

Read live availability and create reservations for your own restaurants programmatically. Authenticate with a single bearer token, get JSON back, and wire Tablevent into the rest of your stack.

Authentication

Every request is authenticated with an API key you mint yourself. Keys are scoped to your organisation and only the restaurants you own. Send your key as a bearer token on the Authorization header — keys are shown once and stored only as a hash, so save yours securely.

  1. 1Sign in and open API keys in your manage dashboard.
  2. 2Create a key — copy the tvk_… secret shown once.
  3. 3Send it as a bearer token on every request.

Authorization header

Authorization: Bearer tvk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Base URL

All endpoints are served over HTTPS from a single host. Responses are JSON; errors return a JSON body with an error field and a matching HTTP status (401 unauthorised, 404 not found, 409 conflict, 429 rate-limited).

https://tablevent.com

Endpoints

The public API is intentionally small and stable. Here is everything available today — more endpoints are on the way.

GET/api/v1/availability

Returns bookable time slots for one of your restaurants on a given date and party size. Query params: slug, date (YYYY-MM-DD) and party.

Example request

curl "https://tablevent.com/api/v1/availability?slug=your-restaurant&date=2026-07-01&party=2" \
  -H "Authorization: Bearer tvk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
GET/api/v1/bookings

Lists your organisation’s most recent bookings (last 30 days) across all your restaurants, newest first.

Example request

curl "https://tablevent.com/api/v1/bookings" \
  -H "Authorization: Bearer tvk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
POST/api/v1/bookings

Creates a confirmed booking. Re-checks live availability under a lock, so you can never overbook the last table. Returns the new booking id.

Example request

curl -X POST "https://tablevent.com/api/v1/bookings" \
  -H "Authorization: Bearer tvk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "your-restaurant",
    "startsAt": "2026-07-01T19:00:00.000Z",
    "partySize": 2,
    "name": "Ada Lovelace",
    "email": "[email protected]"
  }'

Rate limits

Limits are applied per organisation using a token bucket. Exceeding a limit returns HTTP 429 — back off and retry.

Reads (availability, list bookings)
Burst of 120, refilling 2 requests/second
Writes (create booking)
Burst of 30, refilling 1 request every 2 seconds

Ready to build?

Mint a key in your dashboard and make your first call in minutes. Need an endpoint we don’t list yet? Tell us what you’re building.