curl --request GET \
--url https://api.gridbeds.com/api/v1/distribution/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gridbeds.com/api/v1/distribution/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gridbeds.com/api/v1/distribution/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://api.gridbeds.com/api/v1/distribution/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;
}{
"data": [
{
"property_id": "prp_1qnykkykp69yv8d59hxk5410m9",
"currency": "<string>",
"version": 2,
"updated_at": "2026-10-16T09:30:00Z",
"from": "2023-12-25",
"to": "2023-12-25",
"horizon_end": "2023-12-25",
"data": [
{
"date": "2023-12-25",
"units_available": 1,
"closed_to_arrival": true,
"closed_to_departure": true,
"rates": [
{
"rate_plan_id": "rpl_3xdccbsf4p8akbsma1qwypy8pc",
"price": {
"amount": 123,
"currency": "<string>"
},
"base_occupancy": 2,
"extra_guest_price": {
"amount": 123,
"currency": "<string>"
},
"closed": true,
"prices_by_occupancy": [
{
"adults": 2,
"price": {
"amount": 123,
"currency": "<string>"
}
}
],
"child_prices": [
{
"age_from": 8,
"age_to": 8,
"price": {
"amount": 123,
"currency": "<string>"
}
}
],
"child_price": {
"amount": 123,
"currency": "<string>"
},
"infant_price": {
"amount": 123,
"currency": "<string>"
},
"min_stay": 2,
"closed_to_arrival": true
}
],
"min_stay": 2,
"max_stay": 2
}
]
}
],
"next_cursor": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"errors": [
{
"detail": "<string>",
"code": "<string>",
"parameter": "<string>",
"header": "<string>",
"pointer": "<string>"
}
],
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required_scopes": [
"read:catalog"
],
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}The nights changed after a given instant, grouped by active or inactive property
A page ends at limit properties or 5,000 nights, whichever comes first; a property’s nights may continue on
the next page under the same property_id — apply by date. A page costs max(1, ceil(nights / 1000)) units
of your rate limit.
curl --request GET \
--url https://api.gridbeds.com/api/v1/distribution/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gridbeds.com/api/v1/distribution/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gridbeds.com/api/v1/distribution/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://api.gridbeds.com/api/v1/distribution/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;
}{
"data": [
{
"property_id": "prp_1qnykkykp69yv8d59hxk5410m9",
"currency": "<string>",
"version": 2,
"updated_at": "2026-10-16T09:30:00Z",
"from": "2023-12-25",
"to": "2023-12-25",
"horizon_end": "2023-12-25",
"data": [
{
"date": "2023-12-25",
"units_available": 1,
"closed_to_arrival": true,
"closed_to_departure": true,
"rates": [
{
"rate_plan_id": "rpl_3xdccbsf4p8akbsma1qwypy8pc",
"price": {
"amount": 123,
"currency": "<string>"
},
"base_occupancy": 2,
"extra_guest_price": {
"amount": 123,
"currency": "<string>"
},
"closed": true,
"prices_by_occupancy": [
{
"adults": 2,
"price": {
"amount": 123,
"currency": "<string>"
}
}
],
"child_prices": [
{
"age_from": 8,
"age_to": 8,
"price": {
"amount": 123,
"currency": "<string>"
}
}
],
"child_price": {
"amount": 123,
"currency": "<string>"
},
"infant_price": {
"amount": 123,
"currency": "<string>"
},
"min_stay": 2,
"closed_to_arrival": true
}
],
"min_stay": 2,
"max_stay": 2
}
]
}
],
"next_cursor": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"errors": [
{
"detail": "<string>",
"code": "<string>",
"parameter": "<string>",
"header": "<string>",
"pointer": "<string>"
}
],
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"required_scopes": [
"read:catalog"
],
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}{
"type": "https://api.gridbeds.com/problems/not-found",
"title": "<string>",
"status": 499,
"instance": "<string>",
"code": "invalid_parameters",
"request_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"detail": "<string>"
}Autorizzazioni
A key starts with gbd_live_ (production) or gbd_test_ (sandbox) and ends in a CRC32 checksum of its
secret part, so a mistyped or truncated key is refused before any lookup, as is a key of the other
environment. The prefix is registered with public secret scanners (GitHub secret scanning, TruffleHog,
GitGuardian): a key found in a public repository is revoked at once and your technical contact is told.
Gridbeds stores only a hash of each key. One partner may hold two keys per environment during a rotation.
Operations list the scopes they need; the scopes are OAuth 2.0 scope tokens, so short-lived access tokens
from a client-credentials grant can be offered later beside keys, with the same scopes and no change to any
operation.
Parametri della query
Inclusive RFC 3339 instant (a fraction is accepted). Includes withdrawn and deleted resources.
First night, the property's local date.
Exclusive; at most 365 nights after from and no later than the property's horizon_end, which is at least 365 nights after its today.
Above 500 is refused.
1 <= x <= 500next_cursor from the previous page; opaque and bound to the query that produced it.
256