curl --request GET \
--url https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability', 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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability",
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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability"
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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability")
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[
{
"venueId": "6247",
"date": "2026-09-01",
"isVenueOpen": true,
"availableServices": [
{
"serviceId": "service_dinner",
"serviceName": "Dinner",
"continuesBack": false,
"continuesNext": false,
"isEvent": false,
"description": "<p>Three-course set menu with matched wines.</p>",
"policyAgreementRequired": true,
"policyAgreementText": "<p>A 48-hour cancellation policy applies.</p>",
"pricing": {
"paymentType": "Deposit",
"pricingType": "PerPerson",
"price": 2500,
"peopleRequired": 1,
"isPromotion": false,
"singleMenuPerBooking": false
},
"menuOptions": [
{
"id": "menuoption_set_menu",
"name": "Set Menu",
"paymentType": "Deposit",
"price": 2500
}
],
"menuOptionUpSellItems": [],
"availableSections": [
{
"sectionId": "section_main",
"sectionName": "Main Dining",
"availableTimes": [
"18:00:00",
"18:15:00",
"18:30:00",
"18:45:00",
"19:00:00"
]
}
]
}
]
}
]{
"code": "ValidationError",
"message": "Query parameters failed validation",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90",
"errors": {
"partySize": [
"partySize must be at least 1"
],
"endDate": [
"endDate must be on or after startDate"
]
}
}{
"code": "NotFoundError",
"message": "Venue not found: 6247",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}{
"code": "InternalError",
"message": "Internal server error",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}Get Availability
What a venue can offer a party of a given size over a date range.
curl --request GET \
--url https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability', 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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability",
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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability"
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://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.uat.nowbookit.com/api/reservations/venue/{venueId}/availability")
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[
{
"venueId": "6247",
"date": "2026-09-01",
"isVenueOpen": true,
"availableServices": [
{
"serviceId": "service_dinner",
"serviceName": "Dinner",
"continuesBack": false,
"continuesNext": false,
"isEvent": false,
"description": "<p>Three-course set menu with matched wines.</p>",
"policyAgreementRequired": true,
"policyAgreementText": "<p>A 48-hour cancellation policy applies.</p>",
"pricing": {
"paymentType": "Deposit",
"pricingType": "PerPerson",
"price": 2500,
"peopleRequired": 1,
"isPromotion": false,
"singleMenuPerBooking": false
},
"menuOptions": [
{
"id": "menuoption_set_menu",
"name": "Set Menu",
"paymentType": "Deposit",
"price": 2500
}
],
"menuOptionUpSellItems": [],
"availableSections": [
{
"sectionId": "section_main",
"sectionName": "Main Dining",
"availableTimes": [
"18:00:00",
"18:15:00",
"18:30:00",
"18:45:00",
"19:00:00"
]
}
]
}
]
}
]{
"code": "ValidationError",
"message": "Query parameters failed validation",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90",
"errors": {
"partySize": [
"partySize must be at least 1"
],
"endDate": [
"endDate must be on or after startDate"
]
}
}{
"code": "NotFoundError",
"message": "Venue not found: 6247",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}{
"code": "InternalError",
"message": "Internal server error",
"requestId": "0f1c9f2e-4b8a-4c1e-9d33-2a7f5b1c8e90"
}serviceId, sectionId and option ids straight into Create a Reservation.Authorizations
Your API key. See Authorization to create one.
Path Parameters
The venue being addressed. Every endpoint on this API is venue-scoped.
1"6247"
Query Parameters
Window start. A bare ISO date (2026-09-01) means the whole day; a full local ISO datetime (2026-09-01T18:00:00) means that exact time. Venue-local wall clock — do not send a Z suffix or an offset. A range entirely in the past is rejected with 400, judged against the venue's own calendar date. Where the venue sets a minimum notice period, the window simply starts no sooner than that.
"2026-09-01"
Window end, inclusive. Same two forms as startDate, and the two can mix. Defaults to startDate, so a bare startDate on its own returns that whole day. Send the same datetime for both to ask about one slot.
"2026-09-03"
Number of guests. Integer, at least 1. A party over the venue's maximum is rejected with 400.
x >= 12
Restrict the response to one service or event, by id. Every dated occurrence of that service in the range is kept.
"service_dinner"
Restrict each service's availableSections to one section. A service that does not offer the section is dropped entirely rather than returned with an empty section list.
"section_main"
Include tables the venue keeps for its own diary bookings. true includes them; absent or false uses your integration's default.
Response
One entry per venue calendar day in the window.
The venue this day belongs to.
The venue's own calendar date, not a UTC one.
True when at least one service is bookable on this day.
The services bookable on this day. Empty when the venue is closed or nothing can seat the party.
Show child attributes
Show child attributes