Tableo Restaurant API
Availability Controls

Create an availability close-off

Close a service hour, dining area, specific combination, or individual time slots. Use scope to select the level of granularity.

Scope semantics

  • full_day — Closes the entire restaurant for the given date.
  • service_hour — Closes the given service_hour_id for the whole restaurant on the given date. Other service hours remain bookable.
  • dining_area — Closes the given dining_area_id for the whole date. Other dining areas remain bookable for the same service hour.
  • matrix — Closes only the intersection of date × service_hour_id × dining_area_id. This is the most granular close-off before the slot level.
  • slot — Closes restaurant-wide specific time slots for the date. Pass slots as an array of unique HH:MM strings in the restaurant's local timezone. Example: { "date": "2026-06-10", "scope": "slot", "slots": ["12:00", "12:15", "12:30"] }. Values must be unique; duplicate values are rejected.

Required fields by scope: service_hour requires service_hour_id; dining_area requires dining_area_id; matrix requires both; slot requires slots.

POST
/api/restaurant/availability-controls

Authorization

bearerAuth
AuthorizationBearer <token>

Supports two token types:

  1. Restaurant tokens — API tokens with restaurant-api ability, issued per restaurant.
  2. User tokens — Personal access tokens with mobile-access ability (e.g. for the mobile app). When managing multiple restaurants, include X-Restaurant-Id: <id> header.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://devrms.tabdevx.com/api/restaurant/availability-controls" \  -H "Content-Type: application/json" \  -d '{    "date": "2026-06-10",    "scope": "matrix",    "service_hour_id": 5,    "dining_area_id": 3  }'
{
  "data": {
    "id": 125,
    "dining_area_id": 3,
    "service_hour_id": 5
  },
  "scope": "matrix"
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
{
  "message": "The given data was invalid.",
  "errors": {
    "date": [
      "The date field is required."
    ],
    "adults": [
      "The adults must be at least 1."
    ]
  }
}