curl --request GET \
--url https://api.bookingshake.io/api/accounts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bookingshake.io/api/accounts/{id}"
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/accounts/{id}', 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/accounts/{id}",
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/accounts/{id}"
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/accounts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bookingshake.io/api/accounts/{id}")
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{
"message": "success",
"data": {
"id": "account-123",
"name": "Acme Corp",
"legal_name": "ACME CORPORATION SAS",
"company_type": "SAS",
"company_registration_id": "987654321",
"siret": "98765432100012",
"vat_number": "FR98765432101",
"rcs_number": "RCS Paris 987 654 321",
"sector": "Technology",
"address_line_1": "123 rue Example",
"address_line_2": "Bâtiment A",
"postal_code": "75001",
"city": "Paris",
"country": "France",
"billing_address_line_1": "123 rue Example",
"billing_address_line_2": null,
"billing_postal_code": "75001",
"billing_city": "Paris",
"billing_country": "France",
"accounting_account": "411000",
"created_at": 1731495000000,
"custom_u1v2w3x4y5": "50-100",
"custom_z6a7b8c9d0": null
}
}{
"message": "invalid token"
}{
"message": "not found"
}{
"message": "Rate limit exceeded",
"data": {
"limit": 60,
"window": "60 seconds",
"remaining": 0,
"resetAt": "2025-11-17T14:30:00.000Z",
"retryAfter": 45
}
}{
"message": "error"
}Get an account
Retrieve a single account (company) by its ID.
Useful to back-fill a missed account.* webhook, reconcile your CRM, or re-fetch a company on demand. Unlike the account webhook (which omits empty fields), every field is always present with an explicit null when unset. Country fields are verbatim as entered.
curl --request GET \
--url https://api.bookingshake.io/api/accounts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.bookingshake.io/api/accounts/{id}"
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/accounts/{id}', 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/accounts/{id}",
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/accounts/{id}"
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/accounts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bookingshake.io/api/accounts/{id}")
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{
"message": "success",
"data": {
"id": "account-123",
"name": "Acme Corp",
"legal_name": "ACME CORPORATION SAS",
"company_type": "SAS",
"company_registration_id": "987654321",
"siret": "98765432100012",
"vat_number": "FR98765432101",
"rcs_number": "RCS Paris 987 654 321",
"sector": "Technology",
"address_line_1": "123 rue Example",
"address_line_2": "Bâtiment A",
"postal_code": "75001",
"city": "Paris",
"country": "France",
"billing_address_line_1": "123 rue Example",
"billing_address_line_2": null,
"billing_postal_code": "75001",
"billing_city": "Paris",
"billing_country": "France",
"accounting_account": "411000",
"created_at": 1731495000000,
"custom_u1v2w3x4y5": "50-100",
"custom_z6a7b8c9d0": null
}
}{
"message": "invalid token"
}{
"message": "not found"
}{
"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.
Path Parameters
Account ID (the id field carried by the account.created webhook).
Response
Account retrieved successfully
"success"
An account (company) attached to your venue. Every field is present with an explicit null when unset. Country fields are verbatim as entered. Custom fields (custom_<uuid>) configured for your venue are included, also with explicit null when unset.
Show child attributes
Show child attributes
