---
title: "Get the normalized tax schema of a hotel"
method: GET
path: "/data/hotel/{hotelId}/tax-schema"
tags: ["Hotels"]
---

# Get the normalized tax schema of a hotel

`GET /data/hotel/{hotelId}/tax-schema`

## Request

- Base URL: `https://api.liteapi.travel/v3.0`
- URL: `https://api.liteapi.travel/v3.0/data/hotel/{hotelId}/tax-schema`
- Auth: API key in header `X-API-Key`

## Overview

Returns the taxes and fees of a hotel as normalized static data. Each entry describes one tax or fee: whether it is settled with the booking or paid at the property, whether it is a percentage of the room rate or a fixed amount, how fixed amounts scale (per adult and/or per night), and its category.

## When to Use

- **Price transparency** - Show guests which taxes and fees apply at a property
- **Amount-due-at-property estimates** - Charges with `payAtProperty` = true are collected at the hotel
- **Tax auditing** - Compare a supplier's rate breakdown against the reference schema

## Notes

- Every listed tax or fee applies on top of the room rate
- `included` and `payAtProperty` are always opposites: `included` = true means the charge is settled with the booking, `payAtProperty` = true means the guest pays it at the property
- Percentage rates apply to the room rate (e.g. 13.5 means 13.5%)
- Fixed amounts are expressed in USD unless `currency` says otherwise
- `appliedPer`, `appliedOn`, `validFrom` and `validTo` are present when that detail is known for the charge; an entry without them is complete
- Tax data is refreshed periodically; use `lastUpdated` to detect changes. Hotels without tax data return 404

## Path parameters

- `hotelId` string, required

## Response `200`

OK

- object
  - `data` object
    - `hotelId` string, required: Hotel identifier in 'lp' format.
    - `lastUpdated` string: When the tax data of this hotel was last refreshed.
    - `taxes` object[], required: Normalized list of taxes and fees applying to this hotel.
      - `name` string, required: Display name of the tax or fee.
      - `included` boolean, required: Whether the charge is settled with the booking (true) or paid by the guest at the property (false). Every listed tax or fee applies on top of the room rate. Always the opposite of payAtProperty.
      - `type` 'percentage' | 'fixed', required: 'fixed' when a fixed amount is known for this tax, 'percentage' otherwise.
      - `percentageRate` number: Percentage of the room rate, rounded to two decimals (e.g. 13.5 means 13.5%). May be present alongside fixedAmount when the tax is known in both forms.
      - `fixedAmount` number: Flat amount per unit (see perAdult/perNight). Only present when type is 'fixed'.
      - `currency` string: Currency of fixedAmount, normally 'USD'; the hotel's currency when no USD conversion was available. Always present on a fixed amount.
      - `perAdult` boolean: Whether a fixed amount applies per adult.
      - `perNight` boolean: Whether a fixed amount applies per night.
      - `category` 'Value Added Tax (VAT)' | 'Goods and services tax (GST)' | 'City tax' | 'City hotel fee' | 'County tax' | 'State tax' | 'Federal tax' | 'Country tax' | 'National government tax' | 'Sales tax' | 'Occupancy tax' | 'Lodging tax' | 'Room tax' | 'Bed tax' | 'Total tax' | 'Tourism tax' | 'Convention tax' | 'Convention / Tourism fee' | 'Destination marketing fee' | 'Tourism marketing fee' | 'Assessment/license tax' | 'Energy tax' | 'Service charge' | 'Resort fee' | 'Destination amenity fee' | 'Maintenance fee' | 'Local amenity usage/maintenance fee' | 'Local Government fee' | 'Local fee' | 'Local ordinance surcharge' | 'Surcharge' | 'Total surcharges' | 'Sustainability fee' | 'Charity support fee' | 'Hotel development Fee' | 'State cost recovery fee' | 'Extra person charge' | 'Extra child charge' | 'Crib fee' | 'Rollaway fee' | 'Miscellaneous' | 'Miscellaneous fee': Category of the tax or fee, one of the OpenTravel Fee Tax Type names. 'Total tax' is used when the hotel reports one combined rate without a breakdown. Absent when the name could not be classified.
      - `chargeType` 'tax' | 'fee' | 'charge': tax (government-imposed), fee (property-imposed) or charge (extra person).
      - `appliedPer` string: Unit the charge applies to: 'per_room_per_night', 'per_person_per_night', 'per_room_per_stay' or 'per_person_per_stay'. Present when known.
      - `appliedOn` 'net' | 'net_vat': Base a percentage applies to: 'net' (room rate) or 'net_vat' (room rate plus VAT, i.e. compounded). Present when known.
      - `payAtProperty` boolean: true when the guest pays the charge at the property, false when it is settled with the booking. Always the opposite of included.
      - `validFrom` string, date: First stay date the charge applies to, when it does not apply year-round.
      - `validTo` string, date: Last stay date the charge applies to, when it does not apply year-round.

## Other responses

- `400`: Validation error
- `401`: Authentication required
- `404`: No tax schema found for this hotel
- `500`: Internal server error

---

[API](https://skmtc.dev/liteapi/apis/api-hotel-data.md) - [All operations](https://skmtc.dev/liteapi/apis/api-hotel-data/llms.txt) - [OpenAPI document](https://skmtc.dev/liteapi/apis/api-hotel-data/revisions/f89f11b63949?raw)
