curl --request GET \
--url https://api.bookingshake.io/api/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bookingshake.io/api/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bookingshake.io/api/status', 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.bookingshake.io/api/status",
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>"
],
]);
$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.bookingshake.io/api/status"
req, _ := http.NewRequest("GET", url, nil)
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.bookingshake.io/api/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bookingshake.io/api/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"value": "Dk2Yt5Pm8wQx",
"label": "En attente"
},
{
"value": "Zx8Kp3Qm7nRt",
"label": "Confirmé"
},
{
"value": "Fm6Hj9Lk4rWs",
"label": "Option"
},
{
"value": "Bn7Cx2Vt5pYz",
"label": "Annulé"
}
]{
"message": "invalid token"
}{
"message": "Rate limit exceeded",
"data": {
"limit": 60,
"window": "60 seconds",
"remaining": 0,
"resetAt": "2025-11-17T14:30:00.000Z",
"retryAfter": 45
}
}{
"message": "error"
}List booking statuses
Retrieve all booking statuses available for your venue. Statuses represent the current state of a booking (e.g., Pending, Confirmed, Cancelled).
curl --request GET \
--url https://api.bookingshake.io/api/status \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bookingshake.io/api/status"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.bookingshake.io/api/status', 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.bookingshake.io/api/status",
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>"
],
]);
$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.bookingshake.io/api/status"
req, _ := http.NewRequest("GET", url, nil)
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.bookingshake.io/api/status")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bookingshake.io/api/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"value": "Dk2Yt5Pm8wQx",
"label": "En attente"
},
{
"value": "Zx8Kp3Qm7nRt",
"label": "Confirmé"
},
{
"value": "Fm6Hj9Lk4rWs",
"label": "Option"
},
{
"value": "Bn7Cx2Vt5pYz",
"label": "Annulé"
}
]{
"message": "invalid token"
}{
"message": "Rate limit exceeded",
"data": {
"limit": 60,
"window": "60 seconds",
"remaining": 0,
"resetAt": "2025-11-17T14:30:00.000Z",
"retryAfter": 45
}
}{
"message": "error"
}Authorizations
Bearer authentication using your BookingShake API key. Retrieve your API key from Settings > Integrations in your BookingShake dashboard.
Response
List of booking statuses retrieved successfully
Status ID
"Zx8Kp3Qm7nRt"
Status display name (may be in French or configured language)
"Confirmé"
Semantic status type. Use it instead of hardcoding venue-specific status IDs.
new, validated, done, pseudo_done, canceled, archived, null "validated"
True when this status means the booking is cancelled (type 'canceled' or venue-flagged as cancelled)
false
Hex color configured for the status
"#4CAF50"
Display order
2
Status scope: 'event'/'booking' statuses apply to bookings; 'task'/'task_tag' entries belong to task boards and should be filtered out by most integrations
"booking"
