List Reviews
curl --request GET \
--url https://api-dev.myrestoo.net/v3/reviews \
--header 'Authorization: Bearer <token>' \
--header 'Restoo-Account-Id: <restoo-account-id>' \
--header 'Restoo-Partner-Id: <restoo-partner-id>'import requests
url = "https://api-dev.myrestoo.net/v3/reviews"
headers = {
"Restoo-Partner-Id": "<restoo-partner-id>",
"Restoo-Account-Id": "<restoo-account-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'Restoo-Partner-Id': '<restoo-partner-id>',
'Restoo-Account-Id': '<restoo-account-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api-dev.myrestoo.net/v3/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.myrestoo.net/v3/reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Restoo-Account-Id: <restoo-account-id>",
"Restoo-Partner-Id: <restoo-partner-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.myrestoo.net/v3/reviews"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Restoo-Partner-Id", "<restoo-partner-id>")
req.Header.Add("Restoo-Account-Id", "<restoo-account-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.myrestoo.net/v3/reviews")
.header("Restoo-Partner-Id", "<restoo-partner-id>")
.header("Restoo-Account-Id", "<restoo-account-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.myrestoo.net/v3/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Restoo-Partner-Id"] = '<restoo-partner-id>'
request["Restoo-Account-Id"] = '<restoo-account-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"booking": {
"uuid": "50b5571be67b477baa9dead4b290c555",
"bookingAt": "2025-03-20T23:00:00+02:00",
"status": "CONFIRMED",
"isTimeLimited": true,
"isReconfirmed": true,
"isReconfirmedByCustomer": false,
"cancelReason": "CHANGED_PLANS",
"bookingPartner": "GOOGLE",
"bookingExternalId": "book_123456",
"shiftType": {
"id": "LUNCH",
"name": "Lunch"
},
"floorPlanArea": {
"name": "Terrace",
"id": 101
},
"promo": {
"name": "Summer Discount 2025",
"id": 101
},
"product": {
"orderItemId": 101,
"orderUuid": "50b5571be67b477baa9dead4b290c555",
"currency": "EUR",
"experienceTickets": 1,
"id": 101,
"isGift": true,
"name": "Gift Card",
"quantity": 1,
"taxRate": 1050,
"type": "ITEM",
"unitPrice": 7500
},
"experience": {
"tickets": 1,
"discount": 10.5,
"experienceId": 123,
"name": "Premium Menu",
"pricePerTicket": 7500,
"currency": "EUR",
"id": 101
},
"addOns": [
{
"addOnId": 123,
"name": "Premium wine tasting",
"unitPrice": 1000,
"currency": "EUR",
"id": 101,
"quantity": 1
}
],
"customer": {
"uuid": "50b5571be67b477baa9dead4b290c555",
"language": "en",
"contactMethods": [
"EMAIL"
]
},
"accountId": "best-burger",
"highChairs": 1,
"paxChildren": 0,
"pax": 2,
"strollers": 1,
"turnMinutes": 90
},
"id": 42,
"createdAt": "2026-07-20T12:00:00+02:00",
"updatedAt": "2026-07-21T14:30:00+02:00",
"isReplied": false,
"questions": [
{
"id": "OVERALL_EXPERIENCE",
"type": "MOOD",
"label": "Overall experience",
"answer": "EXCELLENT"
}
]
}
],
"meta": {}
}{
"type": "about:blank",
"title": "Conflict",
"status": 409,
"code": "BOOKING_IS_NOT_ON_SEATED_GROUP",
"detail": "The booking must be on the seated group status to be ended."
}{
"type": "about:blank",
"title": "Validation Error",
"status": 422,
"code": "VALIDATION_ERROR",
"detail": "The request is not valid.",
"errors": [
{
"parameter": "status",
"reason": "The selected status is invalid."
}
]
}Review
List Reviews
Retrieves a list of reviews based on the provided filters.
GET
/
reviews
List Reviews
curl --request GET \
--url https://api-dev.myrestoo.net/v3/reviews \
--header 'Authorization: Bearer <token>' \
--header 'Restoo-Account-Id: <restoo-account-id>' \
--header 'Restoo-Partner-Id: <restoo-partner-id>'import requests
url = "https://api-dev.myrestoo.net/v3/reviews"
headers = {
"Restoo-Partner-Id": "<restoo-partner-id>",
"Restoo-Account-Id": "<restoo-account-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'Restoo-Partner-Id': '<restoo-partner-id>',
'Restoo-Account-Id': '<restoo-account-id>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api-dev.myrestoo.net/v3/reviews', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-dev.myrestoo.net/v3/reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Restoo-Account-Id: <restoo-account-id>",
"Restoo-Partner-Id: <restoo-partner-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-dev.myrestoo.net/v3/reviews"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Restoo-Partner-Id", "<restoo-partner-id>")
req.Header.Add("Restoo-Account-Id", "<restoo-account-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-dev.myrestoo.net/v3/reviews")
.header("Restoo-Partner-Id", "<restoo-partner-id>")
.header("Restoo-Account-Id", "<restoo-account-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-dev.myrestoo.net/v3/reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Restoo-Partner-Id"] = '<restoo-partner-id>'
request["Restoo-Account-Id"] = '<restoo-account-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"booking": {
"uuid": "50b5571be67b477baa9dead4b290c555",
"bookingAt": "2025-03-20T23:00:00+02:00",
"status": "CONFIRMED",
"isTimeLimited": true,
"isReconfirmed": true,
"isReconfirmedByCustomer": false,
"cancelReason": "CHANGED_PLANS",
"bookingPartner": "GOOGLE",
"bookingExternalId": "book_123456",
"shiftType": {
"id": "LUNCH",
"name": "Lunch"
},
"floorPlanArea": {
"name": "Terrace",
"id": 101
},
"promo": {
"name": "Summer Discount 2025",
"id": 101
},
"product": {
"orderItemId": 101,
"orderUuid": "50b5571be67b477baa9dead4b290c555",
"currency": "EUR",
"experienceTickets": 1,
"id": 101,
"isGift": true,
"name": "Gift Card",
"quantity": 1,
"taxRate": 1050,
"type": "ITEM",
"unitPrice": 7500
},
"experience": {
"tickets": 1,
"discount": 10.5,
"experienceId": 123,
"name": "Premium Menu",
"pricePerTicket": 7500,
"currency": "EUR",
"id": 101
},
"addOns": [
{
"addOnId": 123,
"name": "Premium wine tasting",
"unitPrice": 1000,
"currency": "EUR",
"id": 101,
"quantity": 1
}
],
"customer": {
"uuid": "50b5571be67b477baa9dead4b290c555",
"language": "en",
"contactMethods": [
"EMAIL"
]
},
"accountId": "best-burger",
"highChairs": 1,
"paxChildren": 0,
"pax": 2,
"strollers": 1,
"turnMinutes": 90
},
"id": 42,
"createdAt": "2026-07-20T12:00:00+02:00",
"updatedAt": "2026-07-21T14:30:00+02:00",
"isReplied": false,
"questions": [
{
"id": "OVERALL_EXPERIENCE",
"type": "MOOD",
"label": "Overall experience",
"answer": "EXCELLENT"
}
]
}
],
"meta": {}
}{
"type": "about:blank",
"title": "Conflict",
"status": 409,
"code": "BOOKING_IS_NOT_ON_SEATED_GROUP",
"detail": "The booking must be on the seated group status to be ended."
}{
"type": "about:blank",
"title": "Validation Error",
"status": 422,
"code": "VALIDATION_ERROR",
"detail": "The request is not valid.",
"errors": [
{
"parameter": "status",
"reason": "The selected status is invalid."
}
]
}Authorizations
All requests must include the static API Key in the Authorization header using the Bearer scheme.
Headers
Unique identifier of your Partner account (defined by Restoo).
Query Parameters
The number of results that will be returned per page
Required range:
1 <= x <= 500Example:
100
The page number to start the pagination from
Required range:
x >= 1Example:
1
Return only records created at or before this date, in ISO 8601 format (YYYY-MM-DD).
Must be equal to or later than date_start
Example:
"2026-12-31"
Return only records created at or after this date, in ISO 8601 format (YYYY-MM-DD)
Example:
"2026-01-01"
Return only records updated at/on or after this timestamp, in ISO 8601 format (YYYY-MM-DDTHH:mm:ss). Useful for incremental synchronization
Example:
"2026-07-20T12:00:00"