/v1/quotes
POST
/v1/quotes
const url = 'http://localhost:8787/v1/quotes';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"currency":"example","from":"2026-04-15T12:00:00Z","partySize":1,"ratePlanId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","resourceId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","to":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8787/v1/quotes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "currency": "example", "from": "2026-04-15T12:00:00Z", "partySize": 1, "ratePlanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "resourceId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "to": "2026-04-15T12:00:00Z" }'Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”Media typeapplication/json
object
currency
string
from
required
string format: date-time
partySize
required
integer
ratePlanId
string format: uuid
resourceId
required
string format: uuid
to
required
string format: date-time
Examplegenerated
{ "currency": "example", "from": "2026-04-15T12:00:00Z", "partySize": 1, "ratePlanId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "resourceId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "to": "2026-04-15T12:00:00Z"}Responses
Section titled “Responses”A priced, signed, 15-minute quote.
Media typeapplication/json
object
displayTotal
required
object
amountMinorUnits
required
string
currency
required
string
expiresAt
required
string
from
required
string
fx
required
object
effectiveAt
required
string
fromCurrency
required
string
rateBps
required
string
source
required
string
toCurrency
required
string
partySize
required
integer
priceBreakdown
required
object
currency
required
string
leadTimeAdjustment
required
object
amountMinorUnits
required
string
kind
required
string
multiplierBps
required
integer
lengthOfStayAdjustment
required
object
amountMinorUnits
required
string
kind
required
string
multiplierBps
required
integer
nights
required
Array<object>
object
amountMinorUnits
required
string
baseAmountMinorUnits
required
string
date
required
string
dayOfWeekMultiplierBps
required
integer
seasonalMultiplierBps
required
integer
subtotalMinorUnits
required
string
totalMinorUnits
required
string
quoteId
required
string format: uuid
ratePlanId
required
string | null format: uuid
resourceId
required
string format: uuid
signedQuoteToken
required
string
to
required
string
Example
{ "priceBreakdown": { "leadTimeAdjustment": { "kind": "length_of_stay" }, "lengthOfStayAdjustment": { "kind": "length_of_stay" } }}from is not strictly before to, or a rate plan was given for a resource with no room type.
Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
number
title
required
string
type
required
string
Example
{ "code": "resource_not_found"}No such resource for this tenant, or (with a ratePlanId) no such rate plan.
Media typeapplication/problem+json
object
code
required
string
detail
required
string
status
required
number
title
required
string
type
required
string
Example
{ "code": "resource_not_found"}The requested stay fails availability/restrictions.
Media typeapplication/problem+json
object
code
required
string
detail
required
string
reasons
required
Array<string>
status
required
number
title
required
string
type
required
string
Example
{ "code": "unavailable", "reasons": [ "occupancy_exceeded" ]}No applicable pricing rule for one or more nights, or no FX rate for the requested display currency.
Media typeapplication/problem+json