Skip to main content
POST
/
api
/
v1
/
quote
Create a quote
curl --request POST \
  --url https://api.example.com/api/v1/quote \
  --header 'Content-Type: application/json' \
  --header 'x-calry-api-key: <api-key>' \
  --data '
{
  "listingID": "123e4567-e89b-12d3-a456-426614174000",
  "checkInDate": "2025-06-01",
  "checkOutDate": "2025-06-05",
  "guests": 2,
  "guestCountInfo": {
    "adults": 2,
    "children": 1,
    "infants": 0,
    "pets": 0
  },
  "promotionID": "123e4567-e89b-12d3-a456-426614174000"
}
'
{
  "listingID": "123e4567-e89b-12d3-a456-426614174000",
  "checkInDate": "2025-12-15",
  "checkOutDate": "2025-12-20",
  "guests": 2,
  "currency": "USD",
  "totalPrice": 485,
  "priceBeforeTaxes": 400,
  "components": {
    "basePrice": {
      "amount": 393.85,
      "breakdown": [
        {
          "name": "Base rate",
          "description": "Base rate",
          "price": 393.85
        }
      ]
    },
    "fees": {
      "amount": 0,
      "breakdown": []
    },
    "taxes": {
      "amount": 90.42,
      "breakdown": [
        {
          "name": "City / Tourism tax",
          "description": "City / Tourism tax",
          "price": 10.36
        },
        {
          "name": "Hotel tax",
          "description": "Hotel tax",
          "price": 10.36
        },
        {
          "name": "Lodging tax",
          "description": "Lodging tax",
          "price": 10.36
        },
        {
          "name": "Occupancy tax",
          "description": "Occupancy tax",
          "price": 10.36
        },
        {
          "name": "Other taxes",
          "description": "Other taxes",
          "price": 10.36
        },
        {
          "name": "Room tax",
          "description": "Room tax",
          "price": 10.36
        },
        {
          "name": "Sales tax",
          "description": "Sales tax",
          "price": 9.42
        },
        {
          "name": "VAT / GST",
          "description": "VAT / GST",
          "price": 18.84
        }
      ]
    },
    "discounts": {
      "amount": 0,
      "breakdown": []
    }
  },
  "priceModifications": {
    "defaultDiscount": {
      "percentage": 10,
      "value": 50
    },
    "markup": {
      "percentage": 10,
      "value": 50
    },
    "promotionDiscount": {
      "percentage": 10,
      "value": 50,
      "promotionID": "123e4567-e89b-12d3-a456-426614174000",
      "promotionName": "Summer Special"
    }
  },
  "originalTotalPrice": 600,
  "originalBasePrice": {
    "amount": 500,
    "breakdown": [
      {
        "name": "Nightly Rate",
        "description": "Price per night",
        "price": 100,
        "id": "nightly-rate",
        "type": "rate"
      },
      {
        "name": "Weekend Rate",
        "description": "Weekend premium",
        "price": 50,
        "id": "weekend-rate",
        "type": "rate"
      }
    ]
  },
  "deposit": 200,
  "promotionID": "123e4567-e89b-12d3-a456-426614174000",
  "promotionName": "Summer Special"
}

Authorizations

x-calry-api-key
string
header
required

Headers

x-calry-tenant-id
string

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.

Query Parameters

displayCurrency
string

Currency to display pricing in (ISO 4217)

Example:

"USD"

Body

application/json

Quote details including listing ID, dates, and number of guests

listingID
string
required

ID of the listing to create a quote for

Example:

"123e4567-e89b-12d3-a456-426614174000"

checkInDate
string<date-time>
required

Check-in date (must not be before today)

Example:

"2025-06-01"

checkOutDate
string<date-time>
required

Check-out date (must be after check-in date)

Example:

"2025-06-05"

guests
number
required

Number of guests

Required range: x >= 1
Example:

2

guestCountInfo
object

Guest count information

Example:
{
  "adults": 2,
  "children": 1,
  "infants": 0,
  "pets": 0
}
promotionID
string

ID of the promotion to apply to the quote

Example:

"123e4567-e89b-12d3-a456-426614174000"

Response

Quote created successfully

listingID
string
required

ID of the listing the quote is for

Example:

"123e4567-e89b-12d3-a456-426614174000"

checkInDate
string
required

Check-in date

Example:

"2025-12-15"

checkOutDate
string
required

Check-out date

Example:

"2025-12-20"

guests
number
required

Number of guests

Example:

2

currency
string
required

Currency code (ISO 4217)

Example:

"USD"

totalPrice
number
required

Total price after all modifications

Example:

485

priceBeforeTaxes
number
required

Total price before taxes, after discounts and markups

Example:

400

components
object
required

Price component breakdown

Example:
{
  "basePrice": {
    "amount": 393.85,
    "breakdown": [
      {
        "name": "Base rate",
        "description": "Base rate",
        "price": 393.85
      }
    ]
  },
  "fees": { "amount": 0, "breakdown": [] },
  "taxes": {
    "amount": 90.42,
    "breakdown": [
      {
        "name": "City / Tourism tax",
        "description": "City / Tourism tax",
        "price": 10.36
      },
      {
        "name": "Hotel tax",
        "description": "Hotel tax",
        "price": 10.36
      },
      {
        "name": "Lodging tax",
        "description": "Lodging tax",
        "price": 10.36
      },
      {
        "name": "Occupancy tax",
        "description": "Occupancy tax",
        "price": 10.36
      },
      {
        "name": "Other taxes",
        "description": "Other taxes",
        "price": 10.36
      },
      {
        "name": "Room tax",
        "description": "Room tax",
        "price": 10.36
      },
      {
        "name": "Sales tax",
        "description": "Sales tax",
        "price": 9.42
      },
      {
        "name": "VAT / GST",
        "description": "VAT / GST",
        "price": 18.84
      }
    ]
  },
  "discounts": { "amount": 0, "breakdown": [] }
}
priceModifications
object
required

Price modifications applied to the quote

originalTotalPrice
number
required

Original total price before modifications

Example:

600

originalBasePrice
object
required

Original base price component before modifications

deposit
number

Required deposit amount, if applicable

Example:

200

promotionID
string

ID of the applied promotion, if any

Example:

"123e4567-e89b-12d3-a456-426614174000"

promotionName
string

Name of the applied promotion, if any

Example:

"Summer Special"