A REST API that lets your AI assistant, POS system, or custom integration manage bookings, customers, and availability in real time.
Scoped, per-key rate limiting. Create keys from your dashboard with granular read/write permissions.
Machine-readable spec at /api/v1/openapi. Import into any API client, code generator, or AI agent framework.
HMAC-SHA256 signed events for booking and customer changes. Automatic retry with exponential backoff.
Pass an Idempotency-Key header on booking creation to prevent duplicates from retries or network issues.
Go to Dashboard → Integrationsand create a key with the scopes you need. You'll see the full key once — copy it immediately.
curl -H "Authorization: Bearer tn_live_yourkey_here" \ https://tablenest.app/api/v1/venue
# 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/bookingsBase URL: https://tablenest.app/api/v1
| Method | Endpoint | Description |
|---|---|---|
| GET | /venue | Venue profile, hours, areas, tables |
| GET | /services | Active services with schedules |
| GET | /events | Upcoming events with capacity |
| GET | /availability | Available time slots for a date |
| GET | /bookings | List bookings with filters |
| POST | /bookings | Create a booking (atomic availability check) |
| GET | /bookings/:id | Booking details |
| PATCH | /bookings/:id | Update booking status |
| GET | /customers | Search customers |
| POST | /customers | Create or update a customer |
| GET | /customers/:id | Customer profile with booking history |
| GET | /webhooks | List registered webhooks |
| POST | /webhooks | Register a webhook endpoint |
| DELETE | /webhooks/:id | Remove a webhook |
Receive real-time HTTPS push notifications when bookings or customers change.
| Event | Description |
|---|---|
| booking.created | A new booking was made |
| booking.updated | A booking was seated, completed, or changed |
| booking.cancelled | A booking was cancelled |
| customer.created | A new customer record was created |
| customer.updated | A customer record was updated |
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"Pass your API key as a Bearer token in the Authorization header:
Authorization: Bearer tn_live_...
60 requests per minute per API key. Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and Retry-After headers.
{
"error": {
"code": "validation_error",
"message": "Missing required field: date",
"details": null
}
}API access requires a Business ($49/mo) or Pro ($69/mo) plan. Starter plans receive a 403 with an upgrade prompt.
Upgrade to Business →Start a free 30-day trial on any plan. Create your API key in under a minute.
Get started free