Quote several rooms of one listing as a single order
Prices every room server-side and returns one signed token carrying the per-item breakdown. Reservation initiation reads prices from the token claims rather than from the request body, so the client never determines what is charged.
Authorization
x-calry-api-key In: header
Query Parameters
Currency to display pricing in (ISO 4217)
Header Parameters
Optional tenant ID to specify which tenant to operate as. Controls access to listings and affects quote creation. If not provided, the default tenant will be used.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/quote/cart" \ -H "Content-Type: application/json" \ -d '{ "listingID": "string", "checkInDate": "2026-09-10", "checkOutDate": "2026-09-13", "items": [ { "unitID": "3830fa58-8d6e-417f-8191-ebc7b3f1213f", "guests": 2 } ] }'{
"quoteId": "q_abcdefghijklmnopqrstuv",
"quoteExpiresAt": "string",
"currency": "EUR",
"items": [
{
"unitID": "string",
"roomType": {},
"guests": 0,
"priceCents": 30250,
"basePriceCents": 28000,
"feePriceCents": 1500,
"taxPriceCents": 750
}
],
"totalCents": 60500,
"cartQuoteToken": "string",
"cartQuoteTokenExpiresAt": "2026-09-10T12:15:00.000Z",
"cancellationPolicy": {
"policyID": "string",
"name": "Moderate",
"version": 0,
"source": "LISTING_CHANNEL",
"salesChannel": "direct",
"timeZone": "Europe/Sofia",
"fixedAt": "2026-10-20T12:00:00.000Z",
"refundable": true,
"refundableTag": "RFN",
"freeCancellationUntil": "string",
"penalties": [
{
"from": "2026-11-30T13:00:00.000Z",
"percentage": 50,
"amount": 117,
"currency": "EUR"
}
],
"description": "Full refund if cancelled before 2026-11-30 15:00 (Europe/Sofia). No refund after that."
}
}{
"timestamp": "2025-03-05T11:45:49.631Z",
"path": "<URL_PATH>",
"message": "Authentication failed",
"details": []
}