Availability
Getting availability for a product
The first step when making a sale is to check availability. If allowFreesale is set to true on the product then this step is optional, but it is still recommended to detect closures and operational limits.
Returns one availability object per date for calendar rendering over a date range. This endpoint is optimized for faster calendar rendering, but it does not replace POST /availability for booking flow. You must call POST /availability to obtain an availabilityId before creating or reserving a booking.
Request schema for /availability/calendar.
Product ID or code.
e7cc8bb4-8d1c-4848-8824-5dbedb718681Option ID or code. Use DEFAULT only when the product has no options.
94cdd032-3d32-416d-b0a4-abf8b7495b8bStart of local date range in the product timezone (YYYY-MM-DD).
2026-05-14End of local date range in the product timezone (YYYY-MM-DD).
2026-05-21ISO 4217 currency code.
USDUser-submitted UUID field that can be used to uniquely reference this resource and provide idempotency against repeat requests with the same UUID.
89fe0192-ddcd-430a-b285-e1396a4725d2Offer code to evaluate for pricing and eligibility. From capability octo/offers.
SUMMER25Rental duration identifier for rental products. From capability octo/rentals.
rental_duration_2hSuccessful response
List of availability local start time values.
["09:00","13:00"]Whether this availability can be booked.
trueAvailable weight numeric value.
20Capacity numeric value.
2Local date in YYYY-MM-DD format.
2026-03-01Max pax count numeric value.
2Max units numeric value.
2Max weight numeric value.
20Pax count numeric value.
2Pax weight numeric value.
20Current status value.
AVAILABLEPossible values: Status message value.
Limited availability for this departure.Utc cutoff at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZUtc onsale at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZVacancies numeric value.
2Weight unit for the weight value.
kgFrom capability octo/offers.
SUMMER25POST /octo/availability/calendar HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 662
{
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateStart": "2026-05-14",
"localDateEnd": "2026-05-21",
"units": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"weightValue": 20,
"weightUnit": "kg"
}
],
"currency": "USD",
"uuid": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"offerCode": "SUMMER25",
"extras": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"retail": 1500
}
],
"rentalDurationId": "rental_duration_2h",
"membership": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"email": "jane.doe@goldengatetours.com",
"mobile": "+12025550123",
"country": "US",
"reference": "REF-2026-001",
"verification": "123456"
}
}Successful response
[
{
"availabilityLocalStartTimes": [
"09:00",
"13:00"
],
"available": true,
"availableWeight": 20,
"capacity": 2,
"localDate": "2026-03-01",
"maxPaxCount": 2,
"maxUnits": 2,
"maxWeight": 20,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"paxCount": 2,
"paxWeight": 20,
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"weightUnit": "kg",
"extraPricingFrom": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricingFrom": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricingFrom": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
]
}
]Returns detailed availability objects per departure time or day. Use this endpoint before booking to obtain the availabilityId required by booking creation/reservation requests.
Request schema for /availability. productId and optionId are required, and at least one availability selector must be provided (localDate, localDateStart+localDateEnd, availabilityId, or availabilityIds).
Product ID or code.
e7cc8bb4-8d1c-4848-8824-5dbedb718681Option ID or code. Use DEFAULT only when the product has no options.
94cdd032-3d32-416d-b0a4-abf8b7495b8bSingle availability identifier (ISO-8601 local date or date-time).
2026-05-14T09:00:00-04:00Multiple availability identifiers.
["2026-05-14T09:00:00-04:00","2026-05-15T09:00:00-04:00"]ISO 4217 currency code.
USDLocal date in the product timezone (YYYY-MM-DD).
2026-05-14End of local date range in the product timezone (YYYY-MM-DD).
2026-05-21Start of local date range in the product timezone (YYYY-MM-DD).
2026-05-14Local start time in the product timezone (HH:MM).
09:00User-submitted UUID field that can be used to uniquely reference this resource and provide idempotency against repeat requests with the same UUID.
89fe0192-ddcd-430a-b285-e1396a4725d2Offer code to evaluate for pricing and eligibility. From capability octo/offers.
SUMMER25Rental duration identifier for rental products. From capability octo/rentals.
rental_duration_2hSuccessful response
Whether all day is enabled.
falseWhether this availability can be booked.
trueCapacity numeric value.
2Unique identifier for this resource.
94cdd032-3d32-416d-b0a4-abf8b7495b8bLocal date time end timestamp in ISO 8601 format.
2026-03-01T12:00:00-08:00Local date time start timestamp in ISO 8601 format.
2026-03-01T09:00:00-08:00Max pax count numeric value.
2Max units numeric value.
2Pax count numeric value.
2Reference value.
REF-2026-001Current status value.
AVAILABLEPossible values: Status message value.
Limited availability for this departure.Utc cutoff at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZUtc onsale at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZVacancies numeric value.
2From capability octo/offers.
SUMMER25From capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/resources.
truePOST /octo/availability HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 301
{
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDate": "2026-05-14",
"units": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"weightValue": 20,
"weightUnit": "kg"
}
],
"extras": [
{
"id": "f1a5d2e8-8d57-4f0b-9c3f-6a12d7a8bc90",
"quantity": 1
}
]
}Successful response
[
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"paxCount": 2,
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": [
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"packageIncludeId": "package_include_id-example",
"paxCount": 2,
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": [
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"packageIncludeId": "package_include_id-example",
"paxCount": 2,
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": "[Circular Reference]",
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
],
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
],
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
]Returns calendar availability across multiple products/options. Designed for background batch jobs and back-office processing, not realtime client requests. For realtime calendar UX use POST /availability/calendar, then call POST /availability to obtain the availabilityId required for booking.
Request schema for /availability/calendar/batch. Includes the same selectors as /availability/calendar, with optional product filters.
Start local date in YYYY-MM-DD format.
2026-05-14End local date in YYYY-MM-DD format.
2026-05-21Optional multi-product filter.
["e7cc8bb4-8d1c-4848-8824-5dbedb718681","prod_london_hop_on_hop_off"]ISO 4217 currency code.
USDUser-submitted UUID field that can be used to uniquely reference this resource and provide idempotency against repeat requests with the same UUID.
89fe0192-ddcd-430a-b285-e1396a4725d2From capability octo/offers.
SUMMER25From capability octo/rentals.
rental_duration_2hSuccessful response
List of availability local start time values.
["09:00","13:00"]Whether this availability can be booked.
trueAvailable weight numeric value.
20Capacity numeric value.
2Local date in YYYY-MM-DD format.
2026-03-01Max pax count numeric value.
2Max units numeric value.
2Max weight numeric value.
20Option identifier.
94cdd032-3d32-416d-b0a4-abf8b7495b8bPax count numeric value.
2Pax weight numeric value.
20Product identifier.
e7cc8bb4-8d1c-4848-8824-5dbedb718681Current status value.
AVAILABLEPossible values: Status message value.
Limited availability for this departure.Utc cutoff at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZUtc onsale at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZVacancies numeric value.
2Weight unit for the weight value.
kgFrom capability octo/offers.
SUMMER25POST /octo/availability/calendar/batch HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 644
{
"localDateStart": "2026-05-14",
"localDateEnd": "2026-05-21",
"productIds": [
"e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"prod_london_hop_on_hop_off"
],
"units": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"weightValue": 20,
"weightUnit": "kg"
}
],
"currency": "USD",
"uuid": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"offerCode": "SUMMER25",
"extras": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"retail": 1500
}
],
"rentalDurationId": "rental_duration_2h",
"membership": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"email": "jane.doe@goldengatetours.com",
"mobile": "+12025550123",
"country": "US",
"reference": "REF-2026-001",
"verification": "123456"
}
}Successful response
[
{
"availabilityLocalStartTimes": [
"09:00",
"13:00"
],
"available": true,
"availableWeight": 20,
"capacity": 2,
"localDate": "2026-03-01",
"maxPaxCount": 2,
"maxUnits": 2,
"maxWeight": 20,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"paxCount": 2,
"paxWeight": 20,
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"weightUnit": "kg",
"extraPricingFrom": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricingFrom": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricingFrom": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
]
}
]Returns detailed availability across multiple products and options. Designed for background batch jobs and back-office processing, not realtime client requests. For realtime client requests use POST /availability.
Request schema for /availability/batch. Includes the same selectors as /availability, with optional product filters.
Single availability identifier (ISO-8601 local date or date-time).
2026-05-14T09:00:00-04:00Multiple availability identifiers.
["2026-05-14T09:00:00-04:00","2026-05-15T09:00:00-04:00"]ISO 4217 currency code.
USDLocal date in the product timezone (YYYY-MM-DD).
2026-05-14End of local date range in the product timezone (YYYY-MM-DD).
2026-05-21Start of local date range in the product timezone (YYYY-MM-DD).
2026-05-14Local start time in the product timezone (HH:MM).
09:00Optional multi-product filter.
["e7cc8bb4-8d1c-4848-8824-5dbedb718681","prod_london_hop_on_hop_off"]User-submitted UUID field that can be used to uniquely reference this resource and provide idempotency against repeat requests with the same UUID.
89fe0192-ddcd-430a-b285-e1396a4725d2Offer code to evaluate for pricing and eligibility. From capability octo/offers.
SUMMER25Rental duration identifier for rental products. From capability octo/rentals.
rental_duration_2hSuccessful response
Whether all day is enabled.
falseWhether this availability can be booked.
trueCapacity numeric value.
2Unique identifier for this resource.
94cdd032-3d32-416d-b0a4-abf8b7495b8bLocal date time end timestamp in ISO 8601 format.
2026-03-01T12:00:00-08:00Local date time start timestamp in ISO 8601 format.
2026-03-01T09:00:00-08:00Max pax count numeric value.
2Max units numeric value.
2Option identifier.
94cdd032-3d32-416d-b0a4-abf8b7495b8bPax count numeric value.
2Product identifier.
e7cc8bb4-8d1c-4848-8824-5dbedb718681Reference value.
REF-2026-001Current status value.
AVAILABLEPossible values: Status message value.
Limited availability for this departure.Utc cutoff at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZUtc onsale at timestamp in ISO 8601 format.
2026-05-14T13:00:00ZVacancies numeric value.
2From capability octo/offers.
SUMMER25From capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/pickups.
trueFrom capability octo/resources.
truePOST /octo/availability/batch HTTP/1.1
Host: api.ventrata.com
Content-Type: application/json
Accept: */*
Content-Length: 810
{
"availabilityId": "2026-05-14T09:00:00-04:00",
"availabilityIds": [
"2026-05-14T09:00:00-04:00",
"2026-05-15T09:00:00-04:00"
],
"currency": "USD",
"localDate": "2026-05-14",
"localDateEnd": "2026-05-21",
"localDateStart": "2026-05-14",
"localTime": "09:00",
"productIds": [
"e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"prod_london_hop_on_hop_off"
],
"units": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"weightValue": 20,
"weightUnit": "kg"
}
],
"uuid": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"offerCode": "SUMMER25",
"extras": [
{
"id": "3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"quantity": 2,
"retail": 1500
}
],
"rentalDurationId": "rental_duration_2h",
"membership": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"email": "jane.doe@goldengatetours.com",
"mobile": "+12025550123",
"country": "US",
"reference": "REF-2026-001",
"verification": "123456"
}
}Successful response
[
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"paxCount": 2,
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": [
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"packageIncludeId": "package_include_id-example",
"paxCount": 2,
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": [
{
"allDay": false,
"available": true,
"capacity": 2,
"id": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"localDateTimeEnd": "2026-03-01T12:00:00-08:00",
"localDateTimeStart": "2026-03-01T09:00:00-08:00",
"maxPaxCount": 2,
"maxUnits": 2,
"openingHours": [
{
"from": "09:00",
"to": "17:00"
}
],
"packageIncludeId": "package_include_id-example",
"paxCount": 2,
"reference": "REF-2026-001",
"status": "AVAILABLE",
"statusMessage": "Limited availability for this departure.",
"utcCutoffAt": "2026-05-14T13:00:00Z",
"utcOnsaleAt": "2026-05-14T13:00:00Z",
"vacancies": 2,
"extraPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"extraId": "extra_fast_track",
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"pricing": {
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
},
"unitPricing": [
{
"currency": "USD",
"currencyPrecision": 2,
"net": 18000,
"original": 22000,
"retail": 20000,
"unitId": "unit_adult",
"unitType": "ADULT",
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"original": 2000,
"retail": 1800,
"net": 1600
}
],
"offerDiscount": {
"retail": 2000,
"net": 2000,
"includedTaxes": [
{
"name": "Sales Tax",
"shortDescription": "Local sales tax",
"retail": 200,
"net": 200
}
]
}
}
],
"offer": {
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
},
"offerCode": "SUMMER25",
"offers": [
{
"id": "89fe0192-ddcd-430a-b285-e1396a4725d2",
"tags": [
"vip",
"partner"
],
"title": "Summer Promotion",
"label": "Save 20%",
"code": "SUMMER25",
"description": "20% off selected departures this month.",
"netDiscount": "FULL",
"restrictions": {
"minUnits": 1,
"maxUnits": 10,
"minTotal": 0,
"maxTotal": 50000,
"unitIds": [
"3d6f0a3a-59d4-4b16-a0c5-11d2d8a4e6b7",
"6b65fd83-4a1f-4744-8f4a-c24d8d770f29"
]
},
"usable": true,
"unusableReason": "Offer is not valid for the selected date.",
"membershipBenefit": {
"id": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"title": "Summer Promotion",
"description": "Morning departure with central pickup included."
}
}
],
"packageAvailabilities": "[Circular Reference]",
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
],
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
],
"dropoffAvailable": true,
"dropoffPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"dropoffRequired": true,
"pickupAvailable": true,
"pickupPoints": [
{
"id": "1cfe2c68-4a91-4df8-8d69-4b393d469caf",
"name": "Union Square Pickup",
"directions": "Meet outside the main entrance beside the red awning.",
"address": "333 O'Farrell St, San Francisco, CA 94102",
"latitude": 37.785452,
"longitude": -122.408058,
"googlePlaceId": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"street": "333 O'Farrell St",
"postalCode": "94102",
"locality": "San Francisco",
"region": "California",
"state": "CA",
"country": "US",
"localDateTime": "2026-05-14T08:30:00-07:00",
"localDateTimeTo": "2026-05-14T08:45:00-07:00"
}
],
"pickupRequired": true,
"hasResources": true,
"mappings": [
{
"resellerReference": "RES-BOOK-10045",
"resellerStatus": "CONFIRMED",
"resellerProduct": "grand-canyon-day-tour",
"productId": "e7cc8bb4-8d1c-4848-8824-5dbedb718681",
"optionId": "94cdd032-3d32-416d-b0a4-abf8b7495b8b",
"unitId": "unit_adult",
"optionRequired": true,
"unitRequired": true,
"validityDays": 2,
"webhookUrl": "https://www.city-sightseeing.com"
}
]
}
]Last updated