---
title: "Get settings snapshots"
method: GET
path: "/guest-folio/settings-snapshot"
tags: ["Guest Folio"]
---

# Get settings snapshots

`GET /guest-folio/settings-snapshot`

## Request

- Base URL: `https://open-api.guesty.com/v1`
- URL: `https://open-api.guesty.com/v1/guest-folio/settings-snapshot`
- Auth: API key in header `authorization`

View the tax, fee, commission, and currency conversion settings that were used to calculate each reservation's financials for every stay. These settings reflect what was applied **at the time of calculation**, which may differ from your current account or listing setup.

### Field selection

Choose at least one field to return using the `fields` query parameter. `reservationId` and `stayIndex` are always included; you do not need to request them. For nested fields like `taxes`, `additionalFees`, or `additionalFees.upsell`, specify the leaf path you want, such as `taxes.name`, `additionalFees.value`, or `additionalFees.upsell.description`. Only `channelCommission`, `cleaningFeeConfig`, `markup`, and `currencyConversion` can be requested by name. If you enter an unrecognized field, you'll receive a 400 error.

### Multi-stay

If a reservation includes multiple stays, you'll see a separate snapshot for each one, each having its own `stayIndex`. For single-stay reservations, the `stayIndex` is 0.

### Response structure

All snapshots for a reservation are grouped under `settingsSnapshots` and sorted by `stayIndex` in ascending order (from lowest to highest).

### Partial success

If a reservation ID is malformed or doesn't exist, it will appear in the `notFound` list. The response always returns HTTP 200.

### Currency

All amounts are shown in the reservation's currency. The `currencyConversion` field shows the exchange rate used **at the time of calculation**.

### Presence

If a field has no stored value, it will be omitted from the response. For older OTA reservations, like Airbnb or Vrbo bookings made before channel commission breakdowns were tracked, `channelCommission` will not appear. Manual-platform reservations are not affected.

### Batching

For large datasets, you can submit up to 200 reservation IDs per request.

### Example request

```shell
curl --request GET \
  --url 'https://open-api.guesty.com/v1/guest-folio/settings-snapshot?reservationIds=64a1f2c3e4b0a1b2c3d4e5f6&fields=taxes.name%2Ctaxes.amount%2CcurrencyConversion' \
  --header 'Authorization: Bearer <access_token>'
```

## Query parameters

- `reservationIds` string[], required
- `fields` string[], required

## Response `200`

Settings snapshots grouped by reservation for each reservation ID that was found. Each snapshot contains only the requested fields plus `stayIndex`. Reservation IDs with no snapshot for this account are listed in `notFound`.

- object
  - `results` object[], required: One entry per reservation ID that was found, in the same order as the input `reservationIds`.
    - `reservationId` string, required: The reservation ID these snapshots belong to. Always returned.
    - `settingsSnapshots` object[], required: Settings snapshots for this reservation, one per stay, sorted by `stayIndex` ascending. Each contains only the requested fields plus `stayIndex`.
      - `stayIndex` integer, required: Zero-based stay index. Always returned; single-stay reservations return 0.
      - `id` string: Snapshot document ID.
      - `listingId` string: Listing this snapshot applies to.
      - `createdAt` string, date-time: When the snapshot was created, ISO 8601.
      - `updatedAt` string, date-time: When the snapshot was last updated, ISO 8601.
      - `extraPersonFee` number: Fee charged per extra guest, per night.
      - `guestsIncludedInBaseRate` number: Guests included in the base rate before extra-person fees apply.
      - `monthlyPriceFactor` number: Monthly price factor applied to long stays.
      - `weeklyPriceFactor` number: Weekly price factor applied to week-long stays.
      - `cleaningFeeConfig` object: Captured cleaning-fee rule. May be absent; not guaranteed to equal the charged amount.
        - `amount` number: Configured cleaning-fee amount. May differ from the amount actually charged.
        - `unit` 'PERCENTAGE' | 'FIXED': Whether the amount is a percentage or a fixed amount.
        - `multiplier` 'PER_STAY' | 'PER_GUEST' | 'PER_NIGHT' | 'PER_GUEST_PER_NIGHT': How the fee scales (e.g. `PER_STAY`, `PER_NIGHT`, `PER_GUEST`, `PER_GUEST_PER_NIGHT`).
      - `markup` object: Markup configuration.
        - `amount` number: Markup amount. Negative values represent a discount.
        - `unit` 'PERCENTAGE' | 'FIXED': Whether the amount is a percentage or a fixed amount.
        - `applyOn` string[]: Additional fare components the markup applies to beyond the accommodation fare.
      - `currencyConversion` object: Currency-conversion applied at calculation time.
        - `from` string: Account base / payout currency the conversion is from (ISO 4217).
        - `to` string: Reservation (listing) currency the conversion is to (ISO 4217).
        - `rate` number: FX rate applied at calculation time. `1` means no conversion.
        - `rateDate` string, date-time: Timestamp the FX rate was captured, ISO 8601.
      - `channelCommission` object: Effective channel commission applied to this reservation. Absent when none is configured.
        - `commissionValue` number: Effective commission value applied to this reservation. Omitted for legacy OTA snapshots that have no commission entry.
        - `commissionAppliedOn` string[]: Fare components the commission is configured to apply to. Multiple entries mean the commission is calculated on their combined total.
        - `commissionTax` number: Tax applied on the commission.
        - `isPreDeducted` boolean: Whether the commission is pre-deducted from the payout.
      - `useAccountRevenueShare` boolean: Whether account-level revenue share settings were used.
      - `useAccountAdditionalFees` boolean: Whether account-level additional fees were used.
      - `taxes` object[]: Tax configuration captured for this stay.
        - `id` string: Tax configuration ID.
        - `name` string: Tax display name.
        - `type` 'LOCAL_TAX' | 'CITY_TAX' | 'VAT' | 'GOODS_AND_SERVICES_TAX' | 'TOURISM_TAX' | 'OTHER' | 'STATE_TAX' | 'COUNTY_TAX' | 'OCCUPANCY_TAX' | 'TRANSIENT_OCCUPANCY_TAX' | 'HOME_SHARING_TAX' | 'HARMONIZED_SALES_TAX' | 'MINIMUM_ALTERNATE_TAX': Tax type code (e.g. `CITY_TAX`, `VAT`, `LOCAL_TAX`).
        - `unit` 'PERCENTAGE' | 'FIXED': Whether the amount is a percentage or a fixed amount.
        - `multiplier` 'PER_STAY' | 'PER_GUEST' | 'PER_NIGHT' | 'PER_GUEST_PER_NIGHT': How the tax scales (e.g. `PER_NIGHT`, `PER_GUEST`, `PER_GUEST_PER_NIGHT`, `PER_STAY`).
        - `amount` number: Tax amount.
        - `appliedToAllFees` boolean: Whether the tax applies to all fees.
        - `appliedOnFees` string[]: Fee codes the tax applies to. Ignored when `appliedToAllFees` is true.
        - `isInclusive` boolean: Whether the tax is inclusive in the price.
        - `isDeductedEnabled` boolean: Whether tax-deduction mode is enabled. When true, the tax is deducted from the accommodation fare rather than added on top. For percentage taxes, the amount is calculated on the accommodation fare as the sole base, regardless of `appliedOnFees` or other fee-target configuration.
        - `deductedEnabledOnChannels` string[]: Booking channels on which tax-deduction mode applies, as channel identifier strings (e.g. `manual`, `bookingCom`, `expedia`). On channels not listed here, the tax is calculated normally (added on top per the standard rules). Only meaningful when `isDeductedEnabled` is true.
        - `conditionalOverrides` object: Conditional overrides that change how or when the tax applies, based on date range and night-count rules.
          - `rules` object[]: Conditional rules defining per-date-range and per-night-range tax amounts.
            - `dateRange` object: Date range (MM-DD) the rule applies to.
              - …
            - `nightRanges` object[]: Per night-count-range tax amounts applying within `dateRange`.
              - …
          - `maxNightCountToApplyOn` number: Maximum number of nights the tax is applied on.
      - `additionalFees` object[]: Additional fee configuration captured for this stay.
        - `id` string: Additional fee configuration ID.
        - `name` string: Fee name.
        - `type` 'ACTIVITIES' | 'ADDITIONAL_BED' | 'ADDITIONAL_CHARGE' | 'AIR_CONDITIONING' | 'BABY_BED' | 'BEVERAGE' | 'BOOKING_FEE' | 'BREAKFAST' | 'BUSINESS_CENTER' | 'CAR_RENTAL' | 'CHEF' | 'CLEANING' | 'CLUB_CARD' | 'COMMISSION_CHARGE' | 'COMMUNITY' | 'CONCIERGE' | 'CREDIT_CARD_PROCESSING_FEE' | 'DAMAGE_CHARGE' | 'DAMAGE_WAIVER' | 'DEPOSIT' | 'DIRECT_SERVICE' | 'DOCK_FEE' | 'EARLY_CHECK_IN' | 'EARLY_CHECKOUT' | 'ELECTRICITY' | 'EQUIPMENT_RENTAL' | 'FLIGHTS' | 'FOOD' | 'GIFT_BASKET' | 'GOLF_CART_RENTAL' | 'GUEST_SERVICE' | 'GUESTY_BASIC_TRAVEL_COVERAGE' | 'GUESTY_EXTENDED_TRAVEL_COVERAGE' | 'GUESTY_SHIELD' | 'HEATING' | 'HOMEOWNERS_ASSOCIATION' | 'HOT_TUB' | 'HOUSEKEEPING' | 'INSURANCE' | 'PROPERTY_INSURANCE' | 'INTERNET' | 'LATE_CHECK_IN' | 'LATE_CHECKOUT' | 'LAUNDRY' | 'LINENS' | 'MANAGEMENT' | 'MEAL' | 'MEET_AND_GREET' | 'MINIBAR' | 'MISCELLANEOUS' | 'OIL' | 'PARKING' | 'PAYMENT_FEE' | 'PET' | 'POOL' | 'POOL_HEATING' | 'RESERVATION_FEE' | 'RESORT' | 'SERVICE' | 'SHIPPING' | 'SPA' | 'TOILETRIES' | 'TOTAL_PAYOUT_BASED' | 'TOUR' | 'TOWELS' | 'TRANSFER' | 'TRANSPORTATION' | 'UTILITY_FEE' | 'VALET' | 'VIP_SERVICES' | 'WATER' | 'WELLNESS' | 'WIFI' | 'WOOD': Fee type code identifying the kind of additional charge (e.g. `CLEANING`, `PET`, `POOL_HEATING`).
        - `value` number: Configured fee amount. Interpreted as a percentage when `isPercentage` is true, otherwise a fixed amount.
        - `isPercentage` boolean: Whether `value` is a percentage rather than a fixed amount.
        - `targetFee` 'PAYOUT' | 'CLEANING_FEE' | 'ACCOMMODATION_FARE' | 'TOTAL_PAYOUT': The fare component a percentage fee is calculated against. Only meaningful when `isPercentage` is true.
        - `multiplier` 'PER_STAY' | 'PER_GUEST' | 'PER_NIGHT' | 'PER_GUEST_PER_NIGHT' | 'PER_PET_PER_NIGHT' | 'PER_PET_PER_STAY': How the fee scales (e.g. `PER_NIGHT`, `PER_GUEST`, `PER_GUEST_PER_NIGHT`, `PER_STAY`, `PER_PET_PER_NIGHT`, `PER_PET_PER_STAY`).
        - `isBundled` boolean: Whether the fee is bundled into the accommodation fare rather than charged separately.
        - `isDeducted` boolean: Whether the fee is deducted from the payout.
        - `convertedValue` number: Fee value converted to the reservation currency. Present only for non-percentage fees when a currency conversion was applied.
        - `isUpsell` boolean: Whether the fee is an upsell (guest-optional).
        - `listingId` string: Listing this fee is associated with.
        - `upsell` object: Upsell details. Present only for upsell fees.
          - `description` string: Upsell description shown to guests.
          - `images` object[]: Upsell images. Each element contains `url` and `fileName`.
            - `url` string: Image URL.
            - `fileName` string: Image file name.
        - `conditions` union[]: Conditions that gate or override this fee. Polymorphic by `type`: `dateRange` (date spans that trigger the override), `lengthOfStay` (night-count brackets), `feeTypesExclusion` (fee-type codes that suppress this fee). `value` is trigger criteria — never the fee amount.
          - union
            - object
              - …
            - object
              - …
            - object
              - …
        - `channelConfigurations` object[]: Per-channel fee configurations.
          - `channel` string: Booking channel this configuration applies to, as a channel identifier string (e.g. `manual`, `bookingCom`, `expedia`).
          - `isEnabled` boolean: Whether the fee is enabled for this channel.
          - `type` 'ACTIVITIES' | 'ADDITIONAL_BED' | 'ADDITIONAL_CHARGE' | 'AIR_CONDITIONING' | 'BABY_BED' | 'BEVERAGE' | 'BOOKING_FEE' | 'BREAKFAST' | 'BUSINESS_CENTER' | 'CAR_RENTAL' | 'CHEF' | 'CLEANING' | 'CLUB_CARD' | 'COMMISSION_CHARGE' | 'COMMUNITY' | 'CONCIERGE' | 'CREDIT_CARD_PROCESSING_FEE' | 'DAMAGE_CHARGE' | 'DAMAGE_WAIVER' | 'DEPOSIT' | 'DIRECT_SERVICE' | 'DOCK_FEE' | 'EARLY_CHECK_IN' | 'EARLY_CHECKOUT' | 'ELECTRICITY' | 'EQUIPMENT_RENTAL' | 'FLIGHTS' | 'FOOD' | 'GIFT_BASKET' | 'GOLF_CART_RENTAL' | 'GUEST_SERVICE' | 'GUESTY_BASIC_TRAVEL_COVERAGE' | 'GUESTY_EXTENDED_TRAVEL_COVERAGE' | 'GUESTY_SHIELD' | 'HEATING' | 'HOMEOWNERS_ASSOCIATION' | 'HOT_TUB' | 'HOUSEKEEPING' | 'INSURANCE' | 'PROPERTY_INSURANCE' | 'INTERNET' | 'LATE_CHECK_IN' | 'LATE_CHECKOUT' | 'LAUNDRY' | 'LINENS' | 'MANAGEMENT' | 'MEAL' | 'MEET_AND_GREET' | 'MINIBAR' | 'MISCELLANEOUS' | 'OIL' | 'PARKING' | 'PAYMENT_FEE' | 'PET' | 'POOL' | 'POOL_HEATING' | 'RESERVATION_FEE' | 'RESORT' | 'SERVICE' | 'SHIPPING' | 'SPA' | 'TOILETRIES' | 'TOTAL_PAYOUT_BASED' | 'TOUR' | 'TOWELS' | 'TRANSFER' | 'TRANSPORTATION' | 'UTILITY_FEE' | 'VALET' | 'VIP_SERVICES' | 'WATER' | 'WELLNESS' | 'WIFI' | 'WOOD': Fee type code identifying the kind of additional charge (e.g. `CLEANING`, `PET`, `POOL_HEATING`).
          - `value` number: Configured fee amount. Interpreted as a percentage when `isPercentage` is true, otherwise a fixed amount.
          - `convertedValue` number: Fee value converted to the reservation currency. Present only for non-percentage fees when a currency conversion was applied.
          - `isPercentage` boolean: Whether `value` is a percentage rather than a fixed amount.
          - `targetFee` 'PAYOUT' | 'CLEANING_FEE' | 'ACCOMMODATION_FARE' | 'TOTAL_PAYOUT': The fare component a percentage fee is calculated against. Only meaningful when `isPercentage` is true.
          - `multiplier` 'PER_STAY' | 'PER_GUEST' | 'PER_NIGHT' | 'PER_GUEST_PER_NIGHT' | 'PER_PET_PER_NIGHT' | 'PER_PET_PER_STAY': How the fee scales (e.g. `PER_NIGHT`, `PER_GUEST`, `PER_GUEST_PER_NIGHT`, `PER_STAY`, `PER_PET_PER_NIGHT`, `PER_PET_PER_STAY`).
          - `isBundled` boolean: Whether the fee is bundled into the accommodation fare rather than charged separately.
          - `isOverrideConditions` boolean: Whether these conditions override the base fee conditions. When false, conditions are inherited from the root fee.
          - `conditions` union[]: Channel-specific override conditions (same shape as `additionalFees.conditions`). Present when `isOverrideConditions` is true.
            - union
              - …
        - `sourcesConfigurations` object[]: Per-source fee configurations.
          - `sources` string[]: Booking sources this configuration applies to.
          - `isEnabled` boolean: Whether the fee is enabled for these sources.
          - `value` number: Configured fee amount. Interpreted as a percentage when `isPercentage` is true, otherwise a fixed amount.
          - `convertedValue` number: Fee value converted to the reservation currency. Present only for non-percentage fees when a currency conversion was applied.
          - `isPercentage` boolean: Whether `value` is a percentage rather than a fixed amount.
          - `targetFee` 'PAYOUT' | 'CLEANING_FEE' | 'ACCOMMODATION_FARE' | 'TOTAL_PAYOUT': The fare component a percentage fee is calculated against. Only meaningful when `isPercentage` is true.
          - `multiplier` 'PER_STAY' | 'PER_GUEST' | 'PER_NIGHT' | 'PER_GUEST_PER_NIGHT' | 'PER_PET_PER_NIGHT' | 'PER_PET_PER_STAY': How the fee scales (e.g. `PER_NIGHT`, `PER_GUEST`, `PER_GUEST_PER_NIGHT`, `PER_STAY`, `PER_PET_PER_NIGHT`, `PER_PET_PER_STAY`).
          - `isBundled` boolean: Whether the fee is bundled into the accommodation fare rather than charged separately.
          - `isOverrideConditions` boolean: Whether these conditions override the base fee conditions. When false, conditions are inherited from the root fee.
          - `conditions` union[]: Source-specific override conditions (same shape as `additionalFees.conditions`). Present when `isOverrideConditions` is true.
            - union
              - …
        - `deductedConfiguration` object: Deduction targeting configuration.
          - `isApplyToAll` boolean: Whether the deduction applies to all channels/sources.
          - `channels` string[]: Booking channels the deduction applies to, as channel identifier strings (e.g. `manual`, `bookingCom`, `expedia`).
          - `sources` string[]: Booking sources the deduction applies to.
  - `notFound` string[], required: Reservation IDs for which no snapshot was found for this account. Returns HTTP 200 even when some or all IDs are not found.

## Other responses

- `400`: The request is invalid. Common causes: missing or empty `reservationIds`, more than 200 reservation IDs, missing or empty `fields`, or an unrecognized field name in `fields`.

## Changes

- **2026-11-03** `3122b8618183`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/guesty/apis/guesty-open-api/changes/guest-folio/settings-snapshot/get.md)

---

[API](https://skmtc.dev/guesty/apis/guesty-open-api.md) - [All operations](https://skmtc.dev/guesty/apis/guesty-open-api/llms.txt) - [OpenAPI document](https://skmtc.dev/guesty/apis/guesty-open-api/revisions/3122b8618183?raw)
