Impala Hotels API

Accessing hotel content, available rooms and rates.

Operations 2

GET /hotels List all hotels #
GET /hotels/{hotelId} Retrieve a hotel #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/impala-hotels-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

impala-hotels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@impala.travel
    name: Impala Developer Support
    url: https://docs.impala.travel/
  description: 'Add room selling to your app with ease, or expand your existing hotel portfolio. Access all the marketing material you need to sell a room, from hotel amenities to images. Constantly updated, ever expanding and always correct. Impala allows you to start selling hotel rooms and earn a commission with every booking in hours.


    Getting started is easy:


    > **1. Sign-up within seconds**: Head to the [Impala website](https://impala.travel), enter your details and receive your sandbox API key immediately (no credit card needed).


    > **2. Start building within minutes**: Build against a sandbox API with realistic test data. Use a [step-by-step walkthrough](https://impala.travel) to see what''s possible. Check for available hotels and their rates. Make and manage fake bookings without any risk. Add room booking to your existing website or app, or start an online travel agency from scratch. [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/11303451-9b241872-9961-424d-9ef4-9d949534567d?action=collection%2Ffork&collection-url=entityId%3D11303451-9b241872-9961-424d-9ef4-9d949534567d%26entityType%3Dcollection%26workspaceId%3D5ae55f12-332c-4e7d-8acc-3e75df3b2ee2)


    > **3. Go live within hours**: Once your app or integration is ready for prime time, move to production within your Impala dashboard and start making real hotel bookings for your customers right away.


    Want to see how it all works? Watch [a 5-minute walkthrough](https://www.youtube.com/watch?v=7B3evCL3nrY) of the two API requests you need to make a booking, and a demo of one of our customer''s apps.'
  termsOfService: https://impala.travel/terms-and-conditions/
  title: Impala Hotel Booking Bookings Hotels API
  version: '3.0'
  x-apisguru-categories:
  - ecommerce
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_images.prismic.io_impala-v2_8d1fd8ad-ef74-46e6-99b8-a8dca8265c60_IM_LI_POST_LAUNCH.jpg
  x-origin:
  - format: openapi
    url: https://docs.impala.travel/api/v1/projects/impala/booking-api/nodes/spec/openapi.seller.yaml?branch=v1.003
  x-providerName: impala.travel
  x-serviceName: hotels
servers:
- description: Hotel Booking API Sandbox
  url: https://sandbox.impala.travel/v1
- description: Hotel Booking API Production
  url: https://api.impala.travel/v1
security:
- API_Key_Authentication: []
tags:
- description: Accessing hotel content, available rooms and rates.
  name: Hotels
paths:
  /hotels:
    get:
      description: 'Returns a list of all hotels worldwide that can be booked through Impala.


        You can **filter** the results:


        * Adding `longitude`, `latitude` and a `radius` (in meters) query parameters will filter the results to hotels around this location.

        * Adding `start` and `end` dates (in ISO 8601 notation, e.g. `2021-12-31`) for the expected arrival and departure dates of your guests will limit the results to hotels that have at least one room bookable for this timeframe.

        * Adding `starRating`, `name` or `country` allows you to filter to hotels based on these values (e.g. `?starRating[gte]=4&name[like]=palace` for hotels with a rating of 4 or up with a name containing "palace")

        * Adding `hotelIds` allows you to limit the results to include only hotels with the ids listed. Its value should be a comma-separated list of hotel ids (e.g. `?hotelIds[]=hotelIdA,hotelIdB`)


        * Adding `contractable` allows you to filter to hotels that you can directly negotiate with through our [deals feature](https://docs.impala.travel/docs/booking-api/ZG9jOjcyNjgzMTA-contracting-with-hotels). (e.g `?contractable=true` or `?contractable=false`)


        You can specify the **sorting order** in which hotels are returned:

        * This is done by using the `sortBy` query parameter.

        * Results can be sorted by `name` alphabetically, star `rating` and `distance_m` (in meters from the specified latitude/longitude location).

        * The parameter allows for a comma-separated list of arguments with optional `:asc` (ascending, the default if the modifier is omitted) and `:desc` (descending) modifiers.


        If no hotels match your filter criteria, an empty array will be returned.'
      operationId: listHotels
      parameters:
      - description: 'Allows for filtering based on the property name. Available modifiers include equal to (`eq`) or case insensitive search (`like`). Usage example: `?name[like]=palace`'
        example:
          eq: Minimalist Palace
          like: palace
        explode: true
        in: query
        name: name
        schema:
          type: object
        style: deepObject
      - description: 'Allows for filtering based on the starRating of a property. Available modifiers include less than (`lt`), greater than (`gt`), less than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?starRating[gt]=3&starRating[lt]=5`'
        example:
          eq: 4
          gt: 3
          gte: 4
          lt: 4
          lte: 3
        explode: true
        in: query
        name: starRating
        schema:
          type: object
        style: deepObject
      - description: 'Allows for filtering based on the country of a property. The only available modifier for this parameter is equal to (`eq`). Usage example: `?country[eq]=GBR`'
        example:
          eq: GBR
        explode: true
        in: query
        name: country
        schema:
          type: object
        style: deepObject
      - description: The arrival day of the desired stay range in ISO 8601 format (`YYYY-MM-DD`).
        in: query
        name: start
        schema:
          example: '2021-05-20'
          type: string
      - description: The departure day of the desired stay range in ISO 8601 format (`YYYY-MM-DD`).
        in: query
        name: end
        schema:
          example: '2021-05-22'
          type: string
      - description: The WGS 84 latitude of the location to search around (e.g. `58.386186`).
        in: query
        name: latitude
        schema:
          example: 58.386186
          format: double
          maximum: 90
          minimum: -90
          type: number
      - description: The WGS 84 longitude of the location to search around (e.g. `-9.952549`).
        in: query
        name: longitude
        schema:
          example: -9.952549
          format: double
          maximum: 180
          minimum: -180
          type: number
      - description: The distance (in meters) to search around the specified location (e.g. `10000` for 10 km).
        in: query
        name: radius
        schema:
          example: 25000
          format: int32
          minimum: 0
          type: integer
      - description: A comma-separated list of hotel ids you wish to filter by (e.g. `60a06628-2c71-44bf-9685-efbd2df4179e,60a06628-2c71-44bf-9685-efbd2df4179e`).
        explode: false
        in: query
        name: hotelIds
        schema:
          example:
          - 0e25533a-2db2-4894-9db1-4c1ff92d798c,77c272b6-18e6-4036-b9c3-7fc5454e3f6a
          items:
            example: 8a39290a-bcd0-461e-92c6-38e71a06d2f7
            type: string
          type: array
        style: form
      - description: 'Allows for filtering based on the date and time when this hotel was first added to the Impala platform, in ISO 8601 format (e.g. `2020-11-04T17:37:37Z`) and UTC timezone. Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?created[lte]=2020-11-04T19:37:37Z&created[gte]=2020-11-04T15:56:37.000Z`'
        example:
          eq: '2020-11-04T15:56:37.000Z'
          gt: '2020-11-04T15:56:37.000Z'
          gte: '2020-11-04T15:56:37.000Z'
          lt: '2020-11-04T15:56:37.000Z'
          lte: '2020-11-04T15:56:37.000Z'
        explode: true
        in: query
        name: created
        schema:
          type: object
        style: deepObject
      - description: 'Allows for filtering based on the date and time the content of this hotel was last updated, in ISO 8601 format (e.g. `2020-11-04T17:37:37Z`) and UTC timezone. Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?updated[lte]=2020-11-04T19:37:37Z&updated[gte]=2020-11-04T15:56:37.000Z`'
        example:
          eq: '2020-11-04T15:56:37.000Z'
          gt: '2020-11-04T15:56:37.000Z'
          gte: '2020-11-04T15:56:37.000Z'
          lt: '2020-11-04T15:56:37.000Z'
          lte: '2020-11-04T15:56:37.000Z'
        explode: true
        in: query
        name: updated
        schema:
          type: object
        style: deepObject
      - description: Number of hotels returned on a given page (pagination).
        in: query
        name: size
        schema:
          default: 25
          example: 40
          format: int32
          maximum: 300
          minimum: 1
          type: number
      - description: Offset from the first hotel in the result (for pagination).
        in: query
        name: offset
        schema:
          default: 0
          example: 25
          format: int32
          type: number
      - description: Order in which the results should be sorted. Currently allows you to sort by `name` (alphabetical), star `rating`, and `distance_m` in meters from the specified latitude/longitude. Allows for a comma-separated list of of arguments with modifiers for `:asc` (ascending) and `:desc` (descending) ordering.
        in: query
        name: sortBy
        schema:
          default: createdAt:desc
          example: name:asc,distance_m:desc
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                List of available hotels:
                  $ref: '#/components/examples/ExampleHotels'
                No hotels available:
                  $ref: '#/components/examples/NoHotelsAvailable'
              schema:
                properties:
                  data:
                    items:
                      $ref: '#/components/schemas/hotelFullDetail'
                    type: array
                  pagination:
                    $ref: '#/components/schemas/pagination'
                type: object
          description: Returns a paginated list of hotels.
        '400':
          content:
            application/json:
              examples:
                Validation error:
                  summary: Bad request
                  value:
                    code: VALIDATION_ERROR
                    message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"'
                    validations:
                    - code: DATE_FORMAT
                      message: '"start" must be in YYYY-MM-DD format'
                      property: start
                    - code: OBJECT_UNKNOWN
                      message: '"foo" is not allowed'
                      property: foo
                    - code: OBJECT_WITH
                      message: '"lorem" missing required peer "ipsum"'
                      property: lorem
              schema:
                $ref: '#/components/schemas/validationError'
          description: Your request wasn't formatted correctly and therefore couldn't be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don't exist (e.g. due to typos). We're including a list of `validations` to point out where things are going wrong and should be fixed.
        '401':
          content:
            application/json:
              examples:
                API key invalid:
                  value:
                    message: Invalid authentication credentials
                API key missing:
                  value:
                    message: No API key found in request
              schema:
                $ref: '#/components/schemas/genericError'
          description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa.
        '500':
          content:
            application/json:
              examples:
                Internal Server Error:
                  summary: Server has encountered an internal error.
                  value:
                    message: InternalServerError
              schema:
                $ref: '#/components/schemas/genericError'
          description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error.

            We recommend that you contact us at support@impala.travel with the x-correlation-id value contained

            within the response headers. Sending us this value will allow us to identify the precise error you encountered.'
      summary: List all hotels
      tags:
      - Hotels
  /hotels/{hotelId}:
    get:
      description: 'Returns the full content, room types and rates for the specified hotel.


        When querying the hotels API you can query with or without dates. Where querying with dates requires providing valid values for the `start` and `end` parameters. Requests without these values will be considered a query without dates.


        **Querying without dates:**


        When you query without dates, the search result will include all properties that match your request. Including all content that is associated with those properties. However you will find that the `rates` attribute for each room will always be empty.


        **Querying with dates:**


        When you query with dates, the search result will include all properties that match your request, including all content that is associated with those properties. Rooms which do not have available prices for the provided dates will appear with an empty `rates` array.


        For rooms where there are available prices the `rates` array will include both the public rates of the hotel, along with prices that come from deals in which you are participating. This would include private deals which you have negotiated with a hotel, along with Impala deals which you have been verified for.


        Using the `rateId` of any of those rates, you can use the [Create a booking](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1bookings/post) endpoint to make a booking.'
      operationId: retrieveHotel
      parameters:
      - description: The unique identifier of this hotel on the Impala platform.
        in: path
        name: hotelId
        required: true
        schema:
          format: uuid
          type: string
      - description: The arrival day of the desired stay range in ISO 8601 format (`YYYY-MM-DD`).
        in: query
        name: start
        schema:
          example: '2021-05-20'
          type: string
      - description: The departure day of the desired stay range in ISO 8601 format (`YYYY-MM-DD`).
        in: query
        name: end
        schema:
          example: '2021-05-22'
          type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                List Single Hotel:
                  $ref: '#/components/examples/ExampleHotel'
              schema:
                $ref: '#/components/schemas/hotelFullDetail'
          description: Returns the requested hotel.
        '400':
          content:
            application/json:
              examples:
                Validation error:
                  summary: Bad request
                  value:
                    code: VALIDATION_ERROR
                    message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"'
                    validations:
                    - code: DATE_FORMAT
                      message: '"start" must be in YYYY-MM-DD format'
                      property: start
                    - code: OBJECT_UNKNOWN
                      message: '"foo" is not allowed'
                      property: foo
                    - code: OBJECT_WITH
                      message: '"lorem" missing required peer "ipsum"'
                      property: lorem
              schema:
                $ref: '#/components/schemas/validationError'
          description: Your request wasn't formatted correctly and therefore couldn't be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don't exist (e.g. due to typos). We're including a list of `validations` to point out where things are going wrong and should be fixed.
        '401':
          content:
            application/json:
              examples:
                API key invalid:
                  value:
                    message: Invalid authentication credentials
                API key missing:
                  value:
                    message: No API key found in request
              schema:
                $ref: '#/components/schemas/genericError'
          description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa.
        '403':
          content:
            application/json:
              examples:
                fail:
                  summary: No access
                  value:
                    message: Forbidden resource
              schema:
                $ref: '#/components/schemas/genericError'
          description: Forbidden
        '500':
          content:
            application/json:
              examples:
                Internal Server Error:
                  summary: Server has encountered an internal error.
                  value:
                    message: Internal Server Error
              schema:
                $ref: '#/components/schemas/genericError'
          description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error.

            We recommend that you contact us at support@impala.travel with the x-correlation-id value contained

            within the response headers. Sending us this value will allow us to identify the precise error you encountered.'
      summary: Retrieve a hotel
      tags:
      - Hotels
components:
  examples:
    NoHotelsAvailable:
      value:
        data: []
        pagination:
          count: 0
          next: null
          prev: null
          total: 0
    ExampleHotels:
      value:
        data:
        - address:
            city: Impalaland
            country: GBR
            countryName: United Kingdom of Great Britain and Northern Ireland
            line1: 456 Impala Street
            line2: null
            postalCode: 0987-654
            region: Impalaland Beach
          amenities:
          - code: 5
            formatted: Air conditioning
          - code: 7
            formatted: ATM/Cash machine
          - code: 8
            formatted: Baby sitting
          - code: 9
            formatted: BBQ/Picnic area
          - code: 14
            formatted: Business library
          - code: 16
            formatted: Casino
          - code: 22
            formatted: Concierge desk
          checkIn:
            from: '15:00'
          checkOut:
            to: '12:00'
          contractable: true
          createdAt: '2020-12-18T13:29:22.865Z'
          currency: GBP
          description:
            short: This fictional example hotel allows you to experience all the content, rates and features the Impala platform (https://impala.travel) has to offer. Testing with this hotel allows you to experience the full breadth of functionality and rate options hotels might offer on Impala – and to ensure your app displays everything correctly.
          emails:
          - mail@impala-all-avaialable-resort.hotel
          externalUrls:
          - name: BOOKING.COM
            url: https://www.booking.com/hotel/im/impala
          - name: HOTELS.COM
            url: https://uk.hotels.com/imp123456/
          hotelId: 0e25533a-2db2-4894-9db1-4c1ff92d798c
          images:
          - altText: null
            height: 1536
            isHeroImage: true
            url: https://cdn.impala.travel/properties/ckiuattho00013e6ar0tiilgt.jpg
            width: 2884
          - altText: null
            height: 2461
            isHeroImage: false
            url: https://cdn.impala.travel/properties/ckiuavcvm00023e6aordygdiy.jpg
            width: 3072
          - altText: null
            height: 3640
            isHeroImage: false
            url: https://cdn.impala.travel/properties/ckiuavvr100033e6ajep6w5dl.jpg
            width: 2912
          - altText: null
            height: 2848
            isHeroImage: false
            url: https://cdn.impala.travel/properties/ckiuawdeo00043e6ajyqc70nm.jpg
            width: 4288
          - altText: null
            height: 3072
            isHeroImage: false
            url: https://cdn.impala.travel/properties/ckiuawt9y00053e6a76l0qgqe.jpg
            width: 4608
          location:
            latitude: 58.386186
            longitude: -9.952549
          name: Impala All-Inclusive Always Available Resort (Example Hotel)
          phoneNumbers:
          - '+48789789789'
          roomCount: 200
          roomTypes:
          - amenities:
            - code: 11
              formatted: Bathroom amenities (free toiletries)
            - code: 15
              formatted: Bath or Shower
            - code: 28
              formatted: Desk
            - code: 50
              formatted: Hairdryer
            - code: 69
              formatted: Minibar
            - code: 85
              formatted: Private bathroom
            - code: 123
              formatted: Wireless internet connection
            - code: 144
              formatted: Soundproofed room
            - code: 210
              formatted: Satellite television
            - code: 228
              formatted: Slippers
            description: This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.
            images:
            - altText: null
              height: 3255
              url: https://cdn.impala.travel/area-types/ckiub6h8c00093e6ag7kufw24.jpg
              width: 4890
            maxOccupancy: 1
            name: Single Room
            rates:
            - cancellationPolicies:
              - fee:
                  count: 100
                  price:
                    amount: 10500
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after March 11, 2021 00:23
                start: '2021-03-11 00:23:35.718'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 1
              rateId: b0e2ec0fa2ae1b3697f467393558a69a:474f39c17490c46b4e622da1bffbd5c1
              ratePlanId: 1
              retailRate:
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 10500
                  currency:
                    code: EUR
              sellerCommissionPercentage: 10
              start: '2021-07-01'
            - cancellationPolicies:
              - end: '2021-06-28 23:59:59.999'
                fee:
                  price:
                    amount: 0
                    currency:
                      code: EUR
                  type: NONE
                formatted: Fully refundable until June 28, 2021 23:59
                start: '2021-03-11 00:23:35.718'
              - fee:
                  count: 100
                  price:
                    amount: 12600
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after June 29, 2021 00:00
                start: '2021-06-29 00:00:00.000'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 1
              rateId: 17b005e4c35575b654171d4589191b5d:bd277330e925805cad8686093554efe5
              ratePlanId: 2
              retailRate:
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 12600
                  currency:
                    code: EUR
              sellerCommissionPercentage: 10
              start: '2021-07-01'
            - cancellationPolicies:
              - fee:
                  count: 100
                  price:
                    amount: 9975
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after March 11, 2021 00:23
                start: '2021-03-11 00:23:35.718'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 1
              rateId: 058e478777fe3b4248670c6d6be3722c:06bbe6754161b5991e02e51849c6ae83
              ratePlanId: 3
              retailRate:
                deal:
                  conditions: []
                  dealId: D3
                  discount:
                    count: 5
                    type: PERCENTAGE
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 9975
                  currency:
                    code: EUR
              sellerCommissionPercentage: 15
              start: '2021-07-01'
            - cancellationPolicies:
              - end: '2021-06-28 23:59:59.999'
                fee:
                  price:
                    amount: 0
                    currency:
                      code: EUR
                  type: NONE
                formatted: Fully refundable until June 28, 2021 23:59
                start: '2021-03-11 00:23:35.718'
              - fee:
                  count: 100
                  price:
                    amount: 11970
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after June 29, 2021 00:00
                start: '2021-06-29 00:00:00.000'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 1
              rateId: 38143de2077774891c4f136d86ce817a:7fa93ac18e3851dec34dead83648148f
              ratePlanId: 4
              retailRate:
                deal:
                  conditions: []
                  dealId: D3
                  discount:
                    count: 5
                    type: PERCENTAGE
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 11970
                  currency:
                    code: EUR
              sellerCommissionPercentage: 15
              start: '2021-07-01'
            roomTypeId: 7b4e914f-0551-4fdc-b349-db3c32c5afed
          - amenities:
            - code: 228
              formatted: Slippers
            - code: 144
              formatted: Soundproofed room
            - code: 210
              formatted: Satellite television
            - code: 11
              formatted: Bathroom amenities (free toiletries)
            - code: 15
              formatted: Bath or Shower
            - code: 28
              formatted: Desk
            - code: 50
              formatted: Hairdryer
            - code: 69
              formatted: Minibar
            - code: 85
              formatted: Private bathroom
            - code: 123
              formatted: Wireless internet connection
            description: This is a fictional example room type that you can use to test all the features you might encounter on any hotel available on the Impala platform on the Impala platform (https://impala.travel). Testing with this room type means your app or site will be able to handle any values that you might find on Impala.
            images:
            - altText: null
              height: 3024
              url: https://cdn.impala.travel/area-types/ckiub0igb00063e6am6q2b0w3.jpg
              width: 4032
            maxOccupancy: 2
            name: Junior Suite
            rates:
            - cancellationPolicies:
              - end: '2021-06-28 23:59:59.999'
                fee:
                  price:
                    amount: 0
                    currency:
                      code: EUR
                  type: NONE
                formatted: Fully refundable until June 28, 2021 23:59
                start: '2021-03-11 00:23:35.719'
              - fee:
                  count: 100
                  price:
                    amount: 31500
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after June 29, 2021 00:00
                start: '2021-06-29 00:00:00.000'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 2
              rateId: b815b95a5b6a847b7b0c09c1a9ea5827:77a228b50273fad2c224468c91739c3c
              ratePlanId: 1
              retailRate:
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 31500
                  currency:
                    code: EUR
              sellerCommissionPercentage: 10
              start: '2021-07-01'
            - cancellationPolicies:
              - end: '2021-06-28 23:59:59.999'
                fee:
                  price:
                    amount: 0
                    currency:
                      code: EUR
                  type: NONE
                formatted: Fully refundable until June 28, 2021 23:59
                start: '2021-03-11 00:23:35.719'
              - fee:
                  count: 100
                  price:
                    amount: 28875
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after June 29, 2021 00:00
                start: '2021-06-29 00:00:00.000'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 1
              rateId: bcd9e5f11c6e747374d63d635b6f2d07:f5d244b004c18e3fef40606f83b72e76
              ratePlanId: 22
              retailRate:
                taxesAndFees:
                  includedInRate: []
                  payAtHotel: []
                total:
                  amount: 28875
                  currency:
                    code: EUR
              sellerCommissionPercentage: 10
              start: '2021-07-01'
            - cancellationPolicies:
              - end: '2021-06-28 23:59:59.999'
                fee:
                  price:
                    amount: 0
                    currency:
                      code: EUR
                  type: NONE
                formatted: Fully refundable until June 28, 2021 23:59
                start: '2021-03-11 00:23:35.719'
              - fee:
                  count: 100
                  price:
                    amount: 29925
                    currency:
                      code: EUR
                  type: PERCENTAGE
                formatted: Non-refundable after June 29, 2021 00:00
                start: '2021-06-29 00:00:00.000'
              components: []
              end: '2021-07-02'
              hotelAgreement: null
              maxOccupancy: 2
              rateId: e3d5af44011974bf705e792735778b44:88853f3b36a97a6adf8009d97102ad79
              ratePlanId: 11
  

# --- truncated at 32 KB (130 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/impala/refs/heads/main/openapi/impala-hotels-api-openapi.yml