Skip to content
API reference

Table Buddy API

Server-to-server access to one restaurant: its menu, tables, orders, stock and reports. The API runs the same engines as the console, so an order made through it is priced, sent to the kitchen and takes stock exactly as one rung up at the POS, and it is refused in the POS’s own words.

Base URLhttps://tablebuddy.radioworkflow.com/api/v1

1. Make a key

Keys are made under API Keys in the console, one restaurant each. Owners and admins make them, and so can anyone whose staff role has Create API keys (api.keys); someone who holds Change restaurant settings (settings.manage) sees and revokes every key. Pick only the scopes the job needs: a new key starts with the reads that carry no caution. The secret is shown once; Table Buddy keeps a SHA-256 hash of it and cannot show it again.

Manage keys

2. Authenticate

Send the key as a bearer token. Keep it in TABLEBUDDY_API_KEY on your server and this installation’s origin in TABLEBUDDY_URL: every sample in this reference reads both from the environment.

Header
Authorization: Bearer $TABLEBUDDY_API_KEY
Server-side only
A key acts as the person who made it. Never put one in a browser, an app or a URL: call the API from your own server.

x-api-key works too, for clients that cannot send a bearer token; Authorization wins when both are sent. See Authentication and scopes.

3. Your first request

Get the restaurant answers any valid key, whatever its scopes: the restaurant’s name, currency, time zone, tax and business day.

Request
curl -X GET "$TABLEBUDDY_URL/api/v1/restaurant" \
  -H "Authorization: Bearer $TABLEBUDDY_API_KEY"
Response200
{
  "currency": "USD",
  "minor_digits": 2,
  "restaurant": {
    "id": "cmg5w7t3e0000tb2j1c9x4k2m",
    "name": "The Barrel House",
    "business_type": "RESTAURANT",
    "timezone": "America/Chicago",
    "vat_label": "Sales tax",
    "tax_label": "Sales tax",
    "vat_rate_bp": 700,
    "vat_inclusive": false,
    "service_charge_bp": 0,
    "service_charge_dine_in_only": true,
    "day_starts_at_minute": 240,
    "today": "2026-09-30",
    "tips_enabled": true
  }
}

What to expect

Money

Integer minor units of the restaurant’s currency (cents for USD); every answer carries currency and minor_digits. A check another system recorded can hold money that is not a sale (non_sale_amount and other_tendered). See Money and time.

Days

A day is a business day in the restaurant’s own time zone, cut where its business day starts, never the server’s midnight. Instants are ISO 8601 in UTC.

Rate limits

A key spends 60 units a minute, in one window every server shares. A request costs 1, and a heavy read 5: Run a report. See Rate limits.

Retries

Every POST carries an Idempotency-Key. If a request times out, send it again with the same key and body: the API acts once. See Idempotency.

On every response

request-idThis request's id. Quote it when asking for help.
Cache-Control: no-storeAn answer is never cached.
RateLimit-Limit, RateLimit-Remaining, RateLimit-ResetWhere the key stands in this minute's window, once the key is known. Never on a 401.
x-error-codeOn an error: its code, the same as error.code in the body.

Each endpoint page lists the rest: the replay headers on a write, Retry-After, WWW-Authenticate.

Machine-readable

The whole API as an OpenAPI 3.1 document, generated from the same catalog as these pages and the route’s own validation, so it cannot describe an endpoint differently from the endpoint itself. No key needed. Point a client generator, Postman, Bruno or a coding agent at it.

Questions

Something unclear, or an endpoint you need? Tell us, and quote a request-id if one went wrong.

Contact us

Reference

Every endpoint, by area. Your browser’s find works on this page; each endpoint’s own page has its parameters, answer, errors and samples.

Restaurant

The restaurant a key belongs to, and the key itself.

Menu

Menu categories and items with their add-ons, and taking an item off sale.

Tables

The floor plan's tables and their status.

Orders

Orders from the POS, this API and outside systems: reading them, opening them, adding rounds, sending them to the kitchen and cancelling.

Stock

Raw materials, their stock cards and stock adjustments.

Reports

The reports, raw or as the page prints them.