Business + Pro plans

TableNest API for developers & AI agents

A REST API that lets your AI assistant, POS system, or custom integration manage bookings, customers, and availability in real time.

API key authentication

Scoped, per-key rate limiting. Create keys from your dashboard with granular read/write permissions.

OpenAPI 3.1 spec

Machine-readable spec at /api/v1/openapi. Import into any API client, code generator, or AI agent framework.

Real-time webhooks

HMAC-SHA256 signed events for booking and customer changes. Automatic retry with exponential backoff.

Idempotency

Pass an Idempotency-Key header on booking creation to prevent duplicates from retries or network issues.

Quick start

1. Create an API key

Go to Dashboard → Integrationsand create a key with the scopes you need. You'll see the full key once — copy it immediately.

2. Make your first request

curl -H "Authorization: Bearer tn_live_yourkey_here" \
  https://tablenest.app/api/v1/venue

3. Check availability and create a booking

# Check available slots
curl -H "Authorization: Bearer YOUR_KEY" \
  "https://tablenest.app/api/v1/availability?date=2026-05-01&party_size=4"

# Create a booking
curl -X POST \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: unique-request-id" \
  -d '{"date":"2026-05-01","time":"19:00","party_size":4,"customer_name":"Jane Smith","email":"jane@example.com"}' \
  https://tablenest.app/api/v1/bookings

API endpoints

Base URL: https://tablenest.app/api/v1

MethodEndpointDescription
GET/venueVenue profile, hours, areas, tables
GET/servicesActive services with schedules
GET/eventsUpcoming events with capacity
GET/availabilityAvailable time slots for a date
GET/bookingsList bookings with filters
POST/bookingsCreate a booking (atomic availability check)
GET/bookings/:idBooking details
PATCH/bookings/:idUpdate booking status
GET/customersSearch customers
POST/customersCreate or update a customer
GET/customers/:idCustomer profile with booking history
GET/webhooksList registered webhooks
POST/webhooksRegister a webhook endpoint
DELETE/webhooks/:idRemove a webhook

View full OpenAPI 3.1 spec →

Webhooks

Receive real-time HTTPS push notifications when bookings or customers change.

EventDescription
booking.createdA new booking was made
booking.updatedA booking was seated, completed, or changed
booking.cancelledA booking was cancelled
customer.createdA new customer record was created
customer.updatedA customer record was updated

Verifying webhook signatures

Every webhook includes an X-TableNest-Signature header containing an HMAC-SHA256 hex digest of the request body, signed with your webhook secret.

Node.js

import crypto from "crypto";

function verifySignature(body, secret, signature) {
  const expected = crypto
    .createHmac("sha256", secret)
    .update(body)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Python

import hmac, hashlib

def verify_signature(body: bytes, secret: str, signature: str) -> bool:
    expected = hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(signature, expected)

curl (verify manually)

echo -n '{"event":"booking.created",...}' | \
  openssl dgst -sha256 -hmac "your_webhook_secret"

Authentication & limits

Authentication

Pass your API key as a Bearer token in the Authorization header:

Authorization: Bearer tn_live_...

Rate limits

60 requests per minute per API key. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After headers.

Error format

{
  "error": {
    "code": "validation_error",
    "message": "Missing required field: date",
    "details": null
  }
}

Plans

API access requires a Business ($49/mo) or Pro ($69/mo) plan. Starter plans receive a 403 with an upgrade prompt.

Upgrade to Business →

Ready to integrate?

Start a free 30-day trial on any plan. Create your API key in under a minute.

Get started free