Tableo Restaurant API

List Guest Reviews

Return guest reviews submitted through the post-booking rating flow, newest first.

Only reviews the restaurant has marked visible are returned. The traits object maps each rating criterion code (for example food, service) to its 1-5 star value — criteria are configured per restaurant, so the keys vary between restaurants. The booking block carries only non-PII reference fields for cross-referencing with booking data.

GET
/api/restaurant/reviews

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

Query Parameters

from?string

Inclusive lower bound on the review's submission date, YYYY-MM-DD.

Formatdate
to?string

Inclusive upper bound on the review's submission date, YYYY-MM-DD.

Formatdate
page?integer

Page number (default 1).

Default1
Range1 <= value
per_page?integer

Page size (default 25, max 100).

Default25
Range1 <= value <= 100

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://devrms.tabdevx.com/api/restaurant/reviews"
{
  "data": [
    {
      "id": 4821,
      "rating": 4.5,
      "text": "Fantastic dinner, the staff were wonderful.",
      "traits": {
        "food": 5,
        "service": 4,
        "ambience": 4
      },
      "booking": {
        "reference": "TB-8F2K1D",
        "date": "2026-09-01T19:00:00+02:00",
        "timezone": "Europe/Malta"
      },
      "created_at": "2026-09-02T09:12:44+02:00"
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 25,
    "total": 128,
    "last_page": 6
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
{
  "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."
    ]
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}