{"components":{"callbacks":{},"examples":{},"headers":{},"links":{},"parameters":{},"pathItems":{},"requestBodies":{},"responses":{},"schemas":{},"securitySchemes":{"bearerAuth":{"scheme":"bearer","type":"http"}}},"info":{"description":"","title":"Duffel Stays","version":"1","x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","quote":{"header":"X-AISA-Cost-Mode","value":"quote"}},"x-aisa-catalogs":{"duffel-stays":{"description":"","title":"Duffel Stays","x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","quote":{"header":"X-AISA-Cost-Mode","value":"quote"}},"x-aisa-document":{"facts_hash":"0acde870f07f2a77c4e3530faf8814f82b10ee6286c4d80ef8b1fea08763f2ee","generator_version":"3","protocol_version":"1","schema_version":"1"},"x-aisa-plans":{"builder":1.0,"display_plan":"payg","payg":1.0,"similarweb_payg":1.0,"team":1.0,"version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb"}}},"x-aisa-configured-paths":["/apis/v1/duffel/stays/bookings/create","/apis/v1/duffel/stays/bookings/list","/apis/v1/duffel/stays/bookings/{id}","/apis/v1/duffel/stays/bookings/{id}/cancel","/apis/v1/duffel/stays/loyalty-programmes/list","/apis/v1/duffel/stays/quotes/create","/apis/v1/duffel/stays/quotes/{id}","/apis/v1/duffel/stays/search-results/{id}","/apis/v1/duffel/stays/search-results/{id}/rates","/apis/v1/duffel/stays/search/create"],"x-aisa-document":{"composer_version":"26","document_hash":"sha256:9910488f575166e98df4429012efeb0848a1a8c6762e04aa7c0c6d1a3d049f94","facts_hash":"0acde870f07f2a77c4e3530faf8814f82b10ee6286c4d80ef8b1fea08763f2ee","generator_version":"3","protocol_version":"1","response_pending":[{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_results_id","path":"/apis/v1/duffel/stays/search-results/{id}","reason":"public success response has no authoritative payload declaration","statuses":["200"]},{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_resu_1d74a6","path":"/apis/v1/duffel/stays/search-results/{id}/rates","reason":"public success response has no authoritative payload declaration","statuses":["200"]}],"schema_version":"1"},"x-aisa-plans":{"builder":1.0,"display_plan":"payg","payg":1.0,"similarweb_payg":1.0,"team":1.0,"version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb"},"x-aisa-provider":"duffel-stays"},"jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","openapi":"3.1.0","paths":{"/apis/v1/duffel/stays/bookings/create":{"post":{"description":"Create Stay Booking via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $2 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"post_duffel_stays_apis_v1_duffel_stays_bookings_create","requestBody":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"accommodation_special_requests":{"description":"Guest's specific requests about this booking to be forwarded to the accommodation. This field should not be used to provide medical or otherwise sensitive information.","example":"2:00 PM early check-in required","maxLength":1000,"type":["string","null"]},"email":{"description":"Lead guest's email address","example":"amelia.earheart@duffel.com","format":"email","type":"string"},"guests":{"description":"List of guests that will stay on this booking. A minimum of one guest must be provided.\nFor bookings of more than one room, the reservation will be made under the name of the first guest provided. We recommend (though optional) that you pass an additional guest name per additional room.\n","items":{"properties":{"family_name":{"description":"Guest's family name","example":"Earheart","type":"string"},"given_name":{"description":"Guest's given name","example":"Amelia","type":"string"},"user_id":{"description":"Creates an association between the guest and a previously created user.\n\nThis is intended to allow guests the ability to manage their own bookings.\n","example":"icu_00009htyDGjIfajdNBZRlw","type":["string","null"]}},"required":["given_name","family_name"],"type":"object"},"type":"array"},"loyalty_programme_account_number":{"description":"Loyalty programme account number to associate with this booking.\n\nUse this only when the quote has a [supported_loyalty_programme](/docs/api/v2/quotes/create-quote#quotes-schema-supported-loyalty-programme) indicated. Otherwise, this will result in an error.\n\nAccount number is relayed to the hotel on a best-effort basis, it is at the hotel's discretion to honour the loyalty programme.\n","example":"201154908","type":["string","null"]},"metadata":{"description":"Metadata contains a set of key-value pairs that you can attach to an\nobject. It can be useful for storing additional information about the\nobject, in a structured format. Duffel does not use this information.\nYou should not store sensitive information in this field.\n\nThe metadata is a collection of key-value pairs, both of which are strings.\nYou can store a maximum of 50 key-value pairs, where each key has a maximum\nlength of 40 characters and each value has a maximum length of 500 characters.\n\nKeys must only contain numbers, letters, dashes, or underscores.\n","example":{"customer_reference_number":"DLXYYZ5"},"type":["object","null"]},"payment":{"description":"The payment details to use to pay for the booking.\n\nWhen you want to pay using the \"balance\" payment method, this must be omitted.\n\nWhen you want to pay using the \"card\" payment method, this object is required.\n","properties":{"three_d_secure_session_id":{"description":"The ID of the ThreeDSecureSession","example":"3ds_0000AWr2XsTRIF1Vp34gh5","type":"string"}},"type":["object","null"]},"phone_number":{"description":"Lead guest's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) (international) format.","example":"+442080160509","type":"string"},"quote_id":{"description":"The `id` of the stay quote you want to book.","example":"quo_0000AS0NZdKjjnnHZmSUbI","type":"string"},"users":{"description":"The `id`s of customer users that would be allowed to manage the booking.\n","items":{"example":"icu_00009htyDGjIfajdNBZRlw","type":"string"},"type":"array"}},"required":["quote_id","guests","email","phone_number"],"title":"Body parameters","type":"object"}},"required":["data"],"type":"object"}}},"required":true},"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"Details of the accommodation reserved for this booking","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"cancelled_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime of the cancellation of this booking. This is `null` if the booking is not yet cancelled.","example":null,"format":"date-time","type":["string","null"]},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest can check in","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest needs to check out","example":"2023-05-28","format":"date","type":"string"},"confirmed_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime at which the booking was made.","example":"2023-04-13T15:48:11.642Z","format":"date-time","type":["string","null"]},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay.\n","example":"109.99","type":"string"},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"email":{"description":"Lead guest's email address","example":"amelia.earheart@duffel.com","format":"email","type":"string"},"estimated_commission_amount":{"description":"The estimated commission amount for this booking. Will be `null` if the estimated commission amount is unknown. This may vary from the [rate's estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount).\n","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-bookings-bookings-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"guest_types":{"description":"The list of guests provided at the time of search","items":{"additionalProperties":false,"properties":{"age":{"description":"The age provided at the time of search","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest provided at the time of search","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"guests":{"description":"List of guests that will stay on this booking. A minimum of one guest must be provided.\nFor bookings of more than one room, the reservation will be made under the name of the first guest provided. We recommend (though optional) that you pass an additional guest name per additional room.\n","items":{"additionalProperties":false,"properties":{"family_name":{"description":"The family name of the guest","example":"Earhart","type":"string"},"given_name":{"description":"The given name of the guest","example":"Amelia","type":"string"},"user_id":{"description":"An association between the guest and a previously created user.\n\nThis is intended to allow guests the ability to manage their own bookings.\n","example":"icu_00009htyDGjIfajdNBZRlw","type":["string","null"]}},"title":"Guest","type":"object"},"type":"array"},"id":{"description":"The `id` of the booking","example":"bok_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_account_number":{"description":"The loyalty programme account number [provided for the Booking](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when the [create Booking endpoint](/docs/api/v2/bookings/create-booking#) was called.\n\nAccount number is relayed to the hotel on a best-effort basis, it is at the hotel's discretion to honour the loyalty programme.\n","example":"201154908","type":["string","null"]},"metadata":{"description":"Metadata contains a set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object, in a structured format. Duffel does not use this information. You should not store sensitive information in this field.\n","example":{"checkout_reference":"usr_0000AePJGl5G9ZYfmNllrs"},"type":["object","null"]},"phone_number":{"description":"Lead guest's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) (international) format.","example":"+442080160509","type":"string"},"reference":{"description":"A booking reference for the guest's reservation at the accommodation. This is the reference you should use when contacting the accommodation.","example":"AFE33SE2","type":["string","null"]},"rooms":{"description":"The number of rooms in the booking.","example":1,"type":"number"},"status":{"description":"The status of the booking.","enum":["confirmed","cancelled"],"example":"confirmed","type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this booking supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"users":{"description":"The `id`s of customer users that are allowed to manage the booking.\n","items":{"example":"icu_00009htyDGjIfajdNBZRlw","type":"string"},"type":"array"}},"title":"Booking","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Create Stay Booking","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/post_duffel_stays_apis_v1_duffel_stays_bookings_create","x-aisa-passthrough":true,"x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":2.0,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":true},"x-aisa-response-source":{"content_hash":"sha256:596bf6715d8213c4134c7adb8bfada8e331ec6c7dd92783a2fa03f300bda58bb","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-revision":{"customer_pricing_ref":"06915e99881b","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"9ae659692086"},"x-aisa-runtime-operation":{"method":"POST","operation_id":"post_duffel_stays_apis_v1_duffel_stays_bookings_create","path":"/apis/v1/duffel/stays/bookings/create"},"x-aisa-source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"},"x-aisa-status":"enabled","x-aisa-upstream-path":"/stays/bookings","x-aisa-validation":"provider"}},"/apis/v1/duffel/stays/bookings/list":{"get":{"description":"List Stay Bookings via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_bookings_list","parameters":[{"in":"query","name":"after","required":false,"schema":{"type":"string"}},{"in":"query","name":"before","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":200,"minimum":1,"type":"integer"}}],"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"Details of the accommodation reserved for this booking","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"cancelled_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime of the cancellation of this booking. This is `null` if the booking is not yet cancelled.","example":null,"format":"date-time","type":["string","null"]},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest can check in","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest needs to check out","example":"2023-05-28","format":"date","type":"string"},"confirmed_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime at which the booking was made.","example":"2023-04-13T15:48:11.642Z","format":"date-time","type":["string","null"]},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay.\n","example":"109.99","type":"string"},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"email":{"description":"Lead guest's email address","example":"amelia.earheart@duffel.com","format":"email","type":"string"},"estimated_commission_amount":{"description":"The estimated commission amount for this booking. Will be `null` if the estimated commission amount is unknown. This may vary from the [rate's estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount).\n","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-bookings-bookings-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"guest_types":{"description":"The list of guests provided at the time of search","items":{"additionalProperties":false,"properties":{"age":{"description":"The age provided at the time of search","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest provided at the time of search","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"guests":{"description":"List of guests that will stay on this booking. A minimum of one guest must be provided.\nFor bookings of more than one room, the reservation will be made under the name of the first guest provided. We recommend (though optional) that you pass an additional guest name per additional room.\n","items":{"additionalProperties":false,"properties":{"family_name":{"description":"The family name of the guest","example":"Earhart","type":"string"},"given_name":{"description":"The given name of the guest","example":"Amelia","type":"string"},"user_id":{"description":"An association between the guest and a previously created user.\n\nThis is intended to allow guests the ability to manage their own bookings.\n","example":"icu_00009htyDGjIfajdNBZRlw","type":["string","null"]}},"title":"Guest","type":"object"},"type":"array"},"id":{"description":"The `id` of the booking","example":"bok_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_account_number":{"description":"The loyalty programme account number [provided for the Booking](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when the [create Booking endpoint](/docs/api/v2/bookings/create-booking#) was called.\n\nAccount number is relayed to the hotel on a best-effort basis, it is at the hotel's discretion to honour the loyalty programme.\n","example":"201154908","type":["string","null"]},"metadata":{"description":"Metadata contains a set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object, in a structured format. Duffel does not use this information. You should not store sensitive information in this field.\n","example":{"checkout_reference":"usr_0000AePJGl5G9ZYfmNllrs"},"type":["object","null"]},"phone_number":{"description":"Lead guest's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) (international) format.","example":"+442080160509","type":"string"},"reference":{"description":"A booking reference for the guest's reservation at the accommodation. This is the reference you should use when contacting the accommodation.","example":"AFE33SE2","type":["string","null"]},"rooms":{"description":"The number of rooms in the booking.","example":1,"type":"number"},"status":{"description":"The status of the booking.","enum":["confirmed","cancelled"],"example":"confirmed","type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this booking supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"users":{"description":"The `id`s of customer users that are allowed to manage the booking.\n","items":{"example":"icu_00009htyDGjIfajdNBZRlw","type":"string"},"type":"array"}},"title":"Booking","type":"object"},"type":"array"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"List Stay Bookings","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_bookings_list","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-source":{"content_hash":"sha256:0a8655160459a0633d98d1fc4577447fd5a10f2c59b2eda614fc21612e319c66","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:fadcc0f4c8c218ca9526247dcb17f85e25484e810cfd079cb2df8a54e00eb80f","converter":"scripts/import_duffel_reference.py@1+explicit-response-binding@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","parent_source_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","path_space":"public","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_only":true,"response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"upstream_origin_sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","upstream_path_sha256":"9dbd80e367b6d84a1b087f85eef9996ac383ed992c803ab16f8705f4cdc55032","url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"9dbd80e367b6d84a1b087f85eef9996ac383ed992c803ab16f8705f4cdc55032","x-aisa-revision":{"customer_pricing_ref":"7439b501cfcf","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"3fdb255d75cc"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_bookings_list","path":"/apis/v1/duffel/stays/bookings/list"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/bookings/{id}":{"get":{"description":"Get Stay Booking via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_bookings_id","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"Details of the accommodation reserved for this booking","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"cancelled_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime of the cancellation of this booking. This is `null` if the booking is not yet cancelled.","example":null,"format":"date-time","type":["string","null"]},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest can check in","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest needs to check out","example":"2023-05-28","format":"date","type":"string"},"confirmed_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime at which the booking was made.","example":"2023-04-13T15:48:11.642Z","format":"date-time","type":["string","null"]},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay.\n","example":"109.99","type":"string"},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"email":{"description":"Lead guest's email address","example":"amelia.earheart@duffel.com","format":"email","type":"string"},"estimated_commission_amount":{"description":"The estimated commission amount for this booking. Will be `null` if the estimated commission amount is unknown. This may vary from the [rate's estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount).\n","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-bookings-bookings-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"guest_types":{"description":"The list of guests provided at the time of search","items":{"additionalProperties":false,"properties":{"age":{"description":"The age provided at the time of search","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest provided at the time of search","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"guests":{"description":"List of guests that will stay on this booking. A minimum of one guest must be provided.\nFor bookings of more than one room, the reservation will be made under the name of the first guest provided. We recommend (though optional) that you pass an additional guest name per additional room.\n","items":{"additionalProperties":false,"properties":{"family_name":{"description":"The family name of the guest","example":"Earhart","type":"string"},"given_name":{"description":"The given name of the guest","example":"Amelia","type":"string"},"user_id":{"description":"An association between the guest and a previously created user.\n\nThis is intended to allow guests the ability to manage their own bookings.\n","example":"icu_00009htyDGjIfajdNBZRlw","type":["string","null"]}},"title":"Guest","type":"object"},"type":"array"},"id":{"description":"The `id` of the booking","example":"bok_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_account_number":{"description":"The loyalty programme account number [provided for the Booking](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when the [create Booking endpoint](/docs/api/v2/bookings/create-booking#) was called.\n\nAccount number is relayed to the hotel on a best-effort basis, it is at the hotel's discretion to honour the loyalty programme.\n","example":"201154908","type":["string","null"]},"metadata":{"description":"Metadata contains a set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object, in a structured format. Duffel does not use this information. You should not store sensitive information in this field.\n","example":{"checkout_reference":"usr_0000AePJGl5G9ZYfmNllrs"},"type":["object","null"]},"phone_number":{"description":"Lead guest's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) (international) format.","example":"+442080160509","type":"string"},"reference":{"description":"A booking reference for the guest's reservation at the accommodation. This is the reference you should use when contacting the accommodation.","example":"AFE33SE2","type":["string","null"]},"rooms":{"description":"The number of rooms in the booking.","example":1,"type":"number"},"status":{"description":"The status of the booking.","enum":["confirmed","cancelled"],"example":"confirmed","type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this booking supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"users":{"description":"The `id`s of customer users that are allowed to manage the booking.\n","items":{"example":"icu_00009htyDGjIfajdNBZRlw","type":"string"},"type":"array"}},"title":"Booking","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Get Stay Booking","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_bookings_id","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-source":{"content_hash":"sha256:596bf6715d8213c4134c7adb8bfada8e331ec6c7dd92783a2fa03f300bda58bb","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:554436d7155480b0b97548cad2d3323d0f40b834b2fab1be57d62b1766a0118a","converter":"scripts/import_duffel_reference.py@1+explicit-response-binding@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","parent_source_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","path_space":"public","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_only":true,"response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"upstream_origin_sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","upstream_path_sha256":"8b325cf24ba535e7146a9805d08151a23c47106b63bf2a6472d4a414f6c7c339","url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"8b325cf24ba535e7146a9805d08151a23c47106b63bf2a6472d4a414f6c7c339","x-aisa-revision":{"customer_pricing_ref":"fa247a82cf43","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"2fcdce5c1753"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_bookings_id","path":"/apis/v1/duffel/stays/bookings/{id}"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/bookings/{id}/cancel":{"post":{"description":"Cancel Stay Booking via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"post_duffel_stays_apis_v1_duffel_stays_bookings_i_b0bf64","parameters":[{"description":"Duffel's unique identifier for the booking","in":"path","name":"id","required":true,"schema":{"description":"The `id` of the booking","example":"bok_0000BTVRuKZTavzrZDJ4cb","type":"string"}}],"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"Details of the accommodation reserved for this booking","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"cancelled_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime of the cancellation of this booking. This is `null` if the booking is not yet cancelled.","example":null,"format":"date-time","type":["string","null"]},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest can check in","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest needs to check out","example":"2023-05-28","format":"date","type":"string"},"confirmed_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime at which the booking was made.","example":"2023-04-13T15:48:11.642Z","format":"date-time","type":["string","null"]},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay.\n","example":"109.99","type":"string"},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"email":{"description":"Lead guest's email address","example":"amelia.earheart@duffel.com","format":"email","type":"string"},"estimated_commission_amount":{"description":"The estimated commission amount for this booking. Will be `null` if the estimated commission amount is unknown. This may vary from the [rate's estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount).\n","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-bookings-bookings-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"guest_types":{"description":"The list of guests provided at the time of search","items":{"additionalProperties":false,"properties":{"age":{"description":"The age provided at the time of search","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest provided at the time of search","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"guests":{"description":"List of guests that will stay on this booking. A minimum of one guest must be provided.\nFor bookings of more than one room, the reservation will be made under the name of the first guest provided. We recommend (though optional) that you pass an additional guest name per additional room.\n","items":{"additionalProperties":false,"properties":{"family_name":{"description":"The family name of the guest","example":"Earhart","type":"string"},"given_name":{"description":"The given name of the guest","example":"Amelia","type":"string"},"user_id":{"description":"An association between the guest and a previously created user.\n\nThis is intended to allow guests the ability to manage their own bookings.\n","example":"icu_00009htyDGjIfajdNBZRlw","type":["string","null"]}},"title":"Guest","type":"object"},"type":"array"},"id":{"description":"The `id` of the booking","example":"bok_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_account_number":{"description":"The loyalty programme account number [provided for the Booking](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when the [create Booking endpoint](/docs/api/v2/bookings/create-booking#) was called.\n\nAccount number is relayed to the hotel on a best-effort basis, it is at the hotel's discretion to honour the loyalty programme.\n","example":"201154908","type":["string","null"]},"metadata":{"description":"Metadata contains a set of key-value pairs that you can attach to an object. It can be useful for storing additional information about the object, in a structured format. Duffel does not use this information. You should not store sensitive information in this field.\n","example":{"checkout_reference":"usr_0000AePJGl5G9ZYfmNllrs"},"type":["object","null"]},"phone_number":{"description":"Lead guest's phone number in [E.164](https://www.twilio.com/docs/glossary/what-e164) (international) format.","example":"+442080160509","type":"string"},"reference":{"description":"A booking reference for the guest's reservation at the accommodation. This is the reference you should use when contacting the accommodation.","example":"AFE33SE2","type":["string","null"]},"rooms":{"description":"The number of rooms in the booking.","example":1,"type":"number"},"status":{"description":"The status of the booking.","enum":["confirmed","cancelled"],"example":"confirmed","type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this booking supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"users":{"description":"The `id`s of customer users that are allowed to manage the booking.\n","items":{"example":"icu_00009htyDGjIfajdNBZRlw","type":"string"},"type":"array"}},"title":"Booking","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Cancel Stay Booking","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/post_duffel_stays_apis_v1_duffel_stays_bookings_i_b0bf64","x-aisa-passthrough":true,"x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":true},"x-aisa-response-source":{"content_hash":"sha256:596bf6715d8213c4134c7adb8bfada8e331ec6c7dd92783a2fa03f300bda58bb","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-revision":{"customer_pricing_ref":"d09908c2fdbc","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"13c0f42bc7a9"},"x-aisa-runtime-operation":{"method":"POST","operation_id":"post_duffel_stays_apis_v1_duffel_stays_bookings_i_b0bf64","path":"/apis/v1/duffel/stays/bookings/{id}/cancel"},"x-aisa-source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"},"x-aisa-status":"enabled","x-aisa-upstream-path":"/stays/bookings/{id}/actions/cancel","x-aisa-validation":"provider"}},"/apis/v1/duffel/stays/loyalty-programmes/list":{"get":{"description":"List Loyalty Programmes via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_loyalty_pro_d3855f","parameters":[{"in":"query","name":"after","required":false,"schema":{"type":"string"}},{"in":"query","name":"before","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":200,"minimum":1,"type":"integer"}}],"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"items":{"additionalProperties":false,"description":"Details of a loyalty programme which Duffel Stays supports.\nThe reference field can be used to match this loyalty programme to the `supported_loyalty_programme` field on an [Accommodation](/docs/api/v2/accommodation/schema#accommodation-schema-supported-loyalty-programme) or [Rate](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-supported-loyalty-programme). \nYou can then utilise the name and logo_url fields to display the loyalty programme to your users for that Accommodation or Rate.\nThe `duffel_hotel_group_rewards` value is an example programme for testing and integration purposes, and will only appear on Duffel Hotel Group test hotels and rates.\"\n","properties":{"logo_url_png_small":{"description":"The URL of the loyalty programme's logo.","example":"https://assets.duffel.com/img/stays/loyalty-programmes/transparent-logo/duffel_hotel_group_rewards.png","format":"url","type":"string"},"logo_url_svg":{"description":"The URL of the loyalty programme's logo.","example":"https://assets.duffel.com/img/stays/loyalty-programmes/full-color-logo/duffel_hotel_group_rewards-square.svg","format":"url","type":"string"},"name":{"description":"The name of the loyalty programme.","example":"Duffel Hotel Group Rewards","type":"string"},"reference":{"description":"The reference of this loyalty programme. This can be used to identify supported \nloyalty programmes on an [Accommodation](/docs/api/v2/accommodation/schema#accommodation-schema-supported-loyalty-programme) or [Rate](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-supported-loyalty-programme).\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":"string"}},"title":"Accommodation Loyalty Programme","type":"object"},"type":"array"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"List Loyalty Programmes","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_loyalty_pro_d3855f","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-source":{"content_hash":"sha256:43254885f2689fb2fb37c24bc51296c440b23507162f53bcc2ea8076e0e17ad6","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1e10d91df3be928d740dea121e6d26591964dd92ed0d5277e88107b0364140a5","converter":"scripts/import_duffel_reference.py@1+explicit-response-binding@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","parent_source_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","path_space":"public","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_only":true,"response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"upstream_origin_sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","upstream_path_sha256":"2d933627c781fb86e8493f15875f3f1938067ca8a041844daf626a4495c988d6","url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"2d933627c781fb86e8493f15875f3f1938067ca8a041844daf626a4495c988d6","x-aisa-revision":{"customer_pricing_ref":"bdaa06c294fe","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"d0d0f325dbf3"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_loyalty_pro_d3855f","path":"/apis/v1/duffel/stays/loyalty-programmes/list"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/quotes/create":{"post":{"description":"Create Stay Quote via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"post_duffel_stays_apis_v1_duffel_stays_quotes_create","requestBody":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"rate_id":{"description":"The `id` of the rate you want to book.","example":"rat_0000ARxBI85qTkbVapZDD2","type":"string"}},"required":["rate_id"],"title":"Body parameters","type":"object"}},"required":["data"],"type":"object"}}},"required":true},"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"The accommodation associated with this quote","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"base_amount":{"description":"The base amount for this quote, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check in. This comes from the search request this quote originates from.","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check out. This comes from the search request this quote originates from.","example":"2023-05-28","format":"date","type":"string"},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay. It may be `null` if the quote is for a deposit rate but we couldn't get full deposit information — in that case, deposit details are expected to be specified in the rate conditions.\n","example":"109.99","type":["string","null"]},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Will be `null` if the amount due at accommodation is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"fee_amount":{"description":"The fee amount for this quote.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"guests":{"description":"The list of guests travelling for this quote.","items":{"additionalProperties":false,"properties":{"age":{"description":"The age of the guest at the time of booking. Required for guests of type `child`. Child age must be between 0 and 17. Do not supply an age for guests of type `adult`.","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest. An age is required for guests with a type `child`.","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"id":{"description":"The `id` of the stay quote","example":"quo_0000AS0NZdKjjnnHZmSUbI","type":"string"},"rooms":{"description":"The number of rooms this quote is for","example":1,"type":"integer"},"supported_loyalty_programme":{"description":"The loyalty programme that this quote supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this quote. Will be `null` if the tax amount is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Quote","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Create Stay Quote","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/post_duffel_stays_apis_v1_duffel_stays_quotes_create","x-aisa-passthrough":true,"x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":true},"x-aisa-response-source":{"content_hash":"sha256:1332c24c6e8852ba53713cabfb0f14cece1f7b5f0ddeb73737ca9351d74b2f84","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-revision":{"customer_pricing_ref":"5539c5da4937","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"231e147fd135"},"x-aisa-runtime-operation":{"method":"POST","operation_id":"post_duffel_stays_apis_v1_duffel_stays_quotes_create","path":"/apis/v1/duffel/stays/quotes/create"},"x-aisa-source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"},"x-aisa-status":"enabled","x-aisa-upstream-path":"/stays/quotes","x-aisa-validation":"provider","x-codeSamples":[{"label":"Reference example","lang":"text","source":"# Fixed reference example. Playground inputs do not update this sample.\ncurl --request POST \\\n  --url https://api.aisa.one/apis/v1/duffel/stays/quotes/create \\\n  --header 'Authorization: Bearer <token>' \\\n  --header 'Content-Type: application/json' \\\n  --data '{\n  \"data\": {\n    \"rate_id\": \"rat_0000ARxBI85qTkbVapZDD2\"\n  }\n}'"}]}},"/apis/v1/duffel/stays/quotes/{id}":{"get":{"description":"Get Stay Quote via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_quotes_id","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"The accommodation associated with this quote","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"base_amount":{"description":"The base amount for this quote, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check in. This comes from the search request this quote originates from.","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check out. This comes from the search request this quote originates from.","example":"2023-05-28","format":"date","type":"string"},"deposit_amount":{"description":"The portion of `total_amount` that is payable before check in as deposit for the stay. It may be `null` if the quote is for a deposit rate but we couldn't get full deposit information — in that case, deposit details are expected to be specified in the rate conditions.\n","example":"109.99","type":["string","null"]},"deposit_currency":{"description":"The currency of the `deposit_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Will be `null` if the amount due at accommodation is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"fee_amount":{"description":"The fee amount for this quote.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"guests":{"description":"The list of guests travelling for this quote.","items":{"additionalProperties":false,"properties":{"age":{"description":"The age of the guest at the time of booking. Required for guests of type `child`. Child age must be between 0 and 17. Do not supply an age for guests of type `adult`.","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest. An age is required for guests with a type `child`.","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"id":{"description":"The `id` of the stay quote","example":"quo_0000AS0NZdKjjnnHZmSUbI","type":"string"},"rooms":{"description":"The number of rooms this quote is for","example":1,"type":"integer"},"supported_loyalty_programme":{"description":"The loyalty programme that this quote supports.","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this quote. Will be `null` if the tax amount is unknown.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is the same as the equivalent property of the Rate associated with this Quote. See Rate documentation for more details.\n","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Quote","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Get Stay Quote","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_quotes_id","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-source":{"content_hash":"sha256:1332c24c6e8852ba53713cabfb0f14cece1f7b5f0ddeb73737ca9351d74b2f84","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:7caaaf60f7c5b3421b409991dca57f5fb32c64addf5059fbce5a642ff3f21123","converter":"scripts/import_duffel_reference.py@1+explicit-response-binding@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","parent_source_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","path_space":"public","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_only":true,"response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"upstream_origin_sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","upstream_path_sha256":"c3e42102347c29b5e9b190c64360f295e18ee6ff48eeccda4a0fa98bc908570e","url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"c3e42102347c29b5e9b190c64360f295e18ee6ff48eeccda4a0fa98bc908570e","x-aisa-revision":{"customer_pricing_ref":"55f20c7b981d","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"534d544a6d9e"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_quotes_id","path":"/apis/v1/duffel/stays/quotes/{id}"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/search-results/{id}":{"get":{"description":"Get Stay Search Result via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_search_results_id","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Get Stay Search Result","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_search_results_id","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-pending":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_results_id","path":"/apis/v1/duffel/stays/search-results/{id}","reason":"public success response has no authoritative payload declaration","statuses":["200"]},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"e8fd587472446806041bfbeb362e1334c6251b35f2f6cd184158fb9d460d6b75","x-aisa-revision":{"customer_pricing_ref":"4d96a199e4e8","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"c27f7925cf29"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_results_id","path":"/apis/v1/duffel/stays/search-results/{id}"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/search-results/{id}/rates":{"get":{"description":"List Stay Search Result Rates via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"get_duffel_stays_apis_v1_duffel_stays_search_resu_1d74a6","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response"},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"List Stay Search Result Rates","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/get_duffel_stays_apis_v1_duffel_stays_search_resu_1d74a6","x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.005,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":false},"x-aisa-response-passthrough":true,"x-aisa-response-pending":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_resu_1d74a6","path":"/apis/v1/duffel/stays/search-results/{id}/rates","reason":"public success response has no authoritative payload declaration","statuses":["200"]},"x-aisa-response-upstream-origin-sha256":"e90e5f2b42f9d68931f2f9a9cbbdac739de18e6033ddaf5cd3a7972494a0c8c9","x-aisa-response-upstream-path-sha256":"b25cba14afef2ff245ae814d7261a8fef87b74975a96c0df1763a5a18342d266","x-aisa-revision":{"customer_pricing_ref":"39ab28d05992","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"e35389bd3195"},"x-aisa-runtime-operation":{"method":"GET","operation_id":"get_duffel_stays_apis_v1_duffel_stays_search_resu_1d74a6","path":"/apis/v1/duffel/stays/search-results/{id}/rates"},"x-aisa-status":"enabled","x-aisa-validation":"runtime"}},"/apis/v1/duffel/stays/search/create":{"post":{"description":"Create Stay Search via the Duffel Stays API\n\n<!-- aisa-pricing:start -->\nPublished reference price: $0.02 USD per successful request. Account-specific pricing and final settlement may differ.\n<!-- aisa-pricing:end -->","operationId":"post_duffel_stays_apis_v1_duffel_stays_search_create","requestBody":{"content":{"application/json":{"schema":{"properties":{"data":{"properties":{"accommodation":{"description":"The accommodation to search for. You must use either this object or the `location` object in your request","properties":{"fetch_rates":{"default":false,"description":"Indicates if the accommodation search should return rooms and rates for each search result","example":false,"type":"boolean"},"ids":{"description":"The unique identifiers of the accommodation to search for. The maximum number of IDs is 10 when fetching room and rates, otherwise the maximum number of IDs is 200.","items":{"type":"string"},"type":"array"}},"required":["ids"],"type":["object","null"]},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check in. Check-in date can be no more than 330 days in the future.","example":"2023-06-04","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check out. A stay can be up to 99 nights.","example":"2023-06-07","format":"date","type":"string"},"free_cancellation_only":{"description":"Whether this search is only for rates with free cancellation available. This can affect the rates and accommodation which are returned. If this is false, or omitted, all rates will be searched for.","example":false,"type":"boolean"},"guests":{"description":"The list of guests travelling.","example":[{"type":"adult"},{"age":7,"type":"child"}],"items":{"additionalProperties":false,"properties":{"age":{"description":"The age of the guest at the time of booking. Required for guests of type `child`. Child age must be between 0 and 17. Do not supply an age for guests of type `adult`.","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest. An age is required for guests with a type `child`.","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":"array"},"instant_payment":{"description":"When `true`, only accommodation and rates are returned where payment is collected at the time of booking by Duffel or the source. When `false`, only rates where payment is collected by the accommodation are returned. When omitted, all rates are returned.","example":false,"type":"boolean","x-preview":true},"location":{"description":"Descriptor for an area to search for a stay. Accepts latitude-longitude paired with radius. You must use either this object or the `accommodation` object in your request","properties":{"geographic_coordinates":{"description":"The center of the search criteria's radius. Represented by an object containing latitude and longitude.","properties":{"latitude":{"description":"The latitude position of the search's center, represented in [Decimal degrees](https://en.wikipedia.org/wiki/Decimal_degrees) with 6 decimal points with a range between -90° and 90°","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the search's center, represented in [Decimal degrees](https://en.wikipedia.org/wiki/Decimal_degrees) with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"required":["latitude","longitude"],"type":"object"},"radius":{"default":5,"description":"The search area's extent from the provided coordinates in kilometers. Can only be between 1 and 100. Default of 5km is subject to change.","example":5,"type":"integer"}},"required":["geographic_coordinates"],"type":["object","null"]},"mobile":{"description":"Whether this search has come from a mobile device. This can affect rates and content returned for this search.","example":false,"type":"boolean"},"negotiated_rate_ids":{"description":"A list of [negotiated rate ids](https://duffel.com/docs/api/v2/negotiated-rates#negotiated-rates-schema-id) to perform the search with.\nWill return negotiated alongside public rates on a best effort basis for matching [accommodation ids](https://duffel.com/docs/api/v2/negotiated-rates#negotiated-rates-schema-accommodation-ids) on the negotiated rate.\n","example":["nre_0000ATOwpuYnZohiSmlmym"],"items":{"type":"string"},"type":"array","x-preview":true},"rooms":{"description":"The number of rooms required","example":1,"type":"integer"}},"required":["check_in_date","check_out_date","guests","rooms"],"title":"Body parameters","type":"object"}},"required":["data"],"type":"object"}}},"required":true},"responses":{"2XX":{"content":{"application/json":{"schema":{"properties":{"data":{"additionalProperties":false,"properties":{"created_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime on which the search was requested","example":"2022-12-20T15:21:01Z","format":"date-time","type":"string"},"results":{"description":"A list of Search Results","items":{"additionalProperties":false,"properties":{"accommodation":{"additionalProperties":false,"description":"The accommodation associated with the search result","properties":{"amenities":{"description":"The amenities for this accommodation. This can be null when we are unable to retrieve amenity data.\nAccommodation amenities aid guests in identifying the accommodation that suits their needs. These are intended for programmatic use to support filtering or promoting specific accommodation attributes.\n","items":{"properties":{"description":{"description":"Label-friendly description of the amenity type","example":"Parking","type":"string"},"type":{"description":"The amenity type.","enum":["parking","gym","wifi","24_hour_front_desk","accessibility_hearing","accessibility_mobility","adult_only","business_centre","cash_machine","childcare_service","concierge","laundry","lounge","pets_allowed","pool","restaurant","room_service","spa"],"example":"parking","type":"string"}},"type":"object"},"type":["array","null"]},"brand":{"additionalProperties":false,"description":"The brand associated with the accommodation.","properties":{"id":{"description":"The unique ID for this hotel brand.","example":"bra_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel brand.","example":"Duffel Test","type":"string"}},"title":"Brands","type":["object","null"]},"chain":{"additionalProperties":false,"description":"The chain or group brand the accommodation is a member of","properties":{"id":{"description":"The unique ID for this hotel chain.","example":"chn_0000Alr8BYNsbmDMThHSbI","type":"string"},"name":{"description":"The name of the hotel chain.","example":"Accor Hotels","type":"string"}},"title":"Chains","type":["object","null"]},"check_in_information":{"description":"Check in and check out related information","properties":{"check_in_after_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the earliest time a guest can check in to their room.","example":"14:30","format":"time","type":["string","null"]},"check_in_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check in to their room.\nCustomers who require a late check-in time should request this using the [`accommodation_special_requests`](https://duffel.com/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-accommodation-special-requests) when creating the booking to avoid issues checking in, such as being considered a 'no-show' and the room being offered to someone else.\n","example":"00:00","format":"time","type":["string","null"]},"check_out_before_time":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format for the latest time a guest can check out of their room.","example":"11:30","format":"time","type":["string","null"]}},"type":["object","null"]},"description":{"description":"Description of the accommodation.","example":"Ornate quarters, some with grand pianos, in a luxurious hotel offering acclaimed dining & a spa.","type":["string","null"]},"email":{"description":"The accommodation email address. This field can only be populated on the accommodation for a completed booking. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\n","example":"reservations@duffel-hotel-group.com","format":"email","type":["string","null"]},"id":{"description":"The unique ID for this accommodation. This ID stays consistent between searches — the same accommodation will always have the same ID.","example":"acc_0000AWr2VsUNIF1Vl91xg0","type":"string"},"key_collection":{"additionalProperties":false,"description":"The key collection details for the accommodation.","properties":{"instructions":{"description":"The key collection instructions for the accommodation.","example":"Please collect the keys from accommodation's reception.","type":"string"}},"type":["object","null"]},"location":{"additionalProperties":false,"description":"Information on the accommodation's location","properties":{"address":{"additionalProperties":false,"description":"The accommodation's address","properties":{"city_name":{"description":"The name of the city or metropolitan area where the address is located.","example":"London","type":"string"},"country_code":{"description":"The [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) code for the country where the address is located.","example":"GB","type":"string"},"line_one":{"description":"First line of the address","example":"100 Clifton Street","type":"string"},"postal_code":{"description":"Postal (or zip code) of the address","example":"EC2A 4TP","type":"string"},"region":{"description":"Region or state of the address","example":"England","type":["string","null"]}},"type":"object"},"geographic_coordinates":{"description":"The exact latitude-longitude position of the accommodation. Useful for map views.","properties":{"latitude":{"description":"The latitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -90° and 90°\n","example":51.5071,"format":"float","type":"number"},"longitude":{"description":"The longitude position of the accommodation represented in Decimal degrees with 6 decimal points with a range between -180° and 180°","example":-0.1416,"format":"float","type":"number"}},"type":"object"}},"type":"object"},"name":{"description":"The accommodation's name","example":"Duffel Test Hotel","type":"string"},"payment_instruction_supported":{"description":"Indicates whether the accommodation may hold rates that support [supplying payment instructions](/docs/api/v2/booking-payment-instructions/create-booking-payment-instruction)","example":false,"type":"boolean"},"phone_number":{"description":"The accommodation phone number. This field can only be populated on the accommodation for a completed booking. This is provided directly by the accommodation and the format is not guaranteed. Note that this data may differ from the accommodation records if it was updated directly by the accommodation after the booking was created.\"\n","example":"+442074938181","type":["string","null"]},"photos":{"description":"Photos of the accommodation","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":"array"},"rating":{"description":"A \"star rating\" of this accommodation. If available, this is an integer from 1 to 5 \"stars\".\nThis value is consolidated by Duffel based on data provided by our sources and accommodation providers.\nFor more detailed rating information, see `ratings`.\n","example":3,"format":"integer","type":["number","null"]},"ratings":{"description":"Ratings given to an accommodation by a rating source.\n\nThis can be empty if the accommodation does not have any ratings. This can also be null if we are unable to retrieve ratings.\n\nThese are commonly represented as \"stars\". In Duffel Stays, they have a 1-5 scale.\n\nThey can come from multiple sources. Currently available rating sources are:\n\n- `\"priceline\"`: [Priceline.com star rating](https://pricelinepartnernetwork.com/developers/guides/id/hotel-content#star-rating).\n\nThese should be displayed as \"stars\". While Priceline.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"bookingcom\"`: [Booking.com star rating](https://www.booking.com/content/how_we_work.en-gb.html).\n\nThese should be displayed as \"stars\". While Booking.com can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"expedia\"`: [Expedia star rating](https://developers.expediagroup.com/docs/products/rapid/resources/reference/star-ratings#using-star-ratings).\n\nThese should be displayed as \"stars\". While Expedia can add half a star to a rating, these ratings are rounded down to the nearest full star in Duffel Stays.\n\n- `\"aaa\"`: [American Automobile Association Diamonds](https://www.aaa.com/diamonds/).\n\nThese should be displayed as \"diamonds\".\n\n- `\"northstar\"`: [Northstar Travel Media Hotel Crown Rating](http://www.hospitalityeducators.com/articles/20110215_4#.ZDPo2C8w1f0).\n\nThese should be displayed as \"crowns\".\n","items":{"properties":{"source":{"description":"The source of this rating.","enum":["priceline","aaa","northstar","bookingcom","expedia"],"type":"string"},"value":{"description":"The value of this rating.","enum":[1,2,3,4,5],"type":"integer"}},"title":"Rating","type":"object"},"type":["array","null"]},"review_count":{"description":"The number of reviews that contributed to the aggregated review score\n","example":336,"format":"integer","type":["number","null"]},"review_score":{"description":"A review score of this accommodation, aggregated from guest reviews. If available, the value is a score from the 1.0-10.0 range.\nThis value is consolidated by Duffel based on user review data from multiple sources.\n","example":8.8,"format":"float","type":["number","null"]},"rooms":{"description":"Bookable rooms for this accommodation. A room is a single accommodation unit. It might contain multiple beds.","items":{"additionalProperties":false,"description":"A type of room at an accommodation, containing its characteristics and a range of bookable rates.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"beds":{"description":"Available beds in the room. Bed availability is relayed from the supplier at a best-effort basis, and may not be honoured at the hotel if actual availability does not permit.","items":{"additionalProperties":false,"properties":{"count":{"description":"The number of beds of this type in the room.","example":2,"type":"integer"},"type":{"description":"The type of beds available in the room\nAvailable types: \"single\", \"double\", \"queen\", \"king\", \"sofabed\", \"bunk\"\n","enum":["single","double","queen","king","sofabed","bunk"],"example":"king","type":"string"}},"title":"Bed","type":"object"},"type":["array","null"]},"name":{"description":"The room name.","example":"Double Suite","type":"string"},"photos":{"description":"Supplied photos for the room.","items":{"additionalProperties":false,"properties":{"url":{"description":"The URL to the photo. Supplied photos of the stay. These may consist of photos of the property, rooms, room amenities and local attractions.\n","example":"https://assets.duffel.com/img/stays/image.jpg","format":"url","type":"string"}},"title":"Photo","type":"object"},"type":["array","null"]},"rates":{"description":"The available rates for a specific room, including commission, distribution, payment and included services information.","items":{"additionalProperties":false,"description":"A bookable rate for a stay.\nTo learn more about accommodation, rooms and rates and presenting them to customers, check out [Stays Key Concepts](https://duffel.com/docs/api/overview/stays-key-concepts).\n","properties":{"available_payment_methods":{"description":"Available payment methods are the forms of payment supported for this rate.\n\nA rate with `balance` as an available payment method can be paid for using your Duffel Balance.\n\nA rate with `card` as an available payment method can be paid for with card details provided at time of booking.\n","items":{"description":"NOTE: Please refer to [available_payment_methods](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-available-payment-methods) instead.\n\nThe payment method is the form of payment supported for this rate.\n\nA rate with the `balance` payment method will be paid for using your Duffel Balance.\n\nA rate with the `card` payment method will be paid for with card details provided at time of booking.\n","enum":["balance","card"],"example":["balance"],"title":"Payment Method","type":"string"},"type":"array"},"base_amount":{"description":"The base amount for this rate, excluding taxes and fees. Will be `null` if the base amount is unknown.\nThis is included in the `total_amount`.\n","example":"665.83","type":["string","null"]},"base_currency":{"description":"The currency of the `base_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"benefits":{"description":"The inclusions provided as part of this rate. Only populated on rates that carry benefits and where Duffel is the source.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"The full description of the benefit, including restrictions and any availability conditions. Suitable for display in a tooltip or expanded detail view.","example":"Daily full breakfast for up to two guests, served in the restaurant.","type":"string"},"title":{"description":"The name of the benefit as it should appear to the traveller.","example":"Daily breakfast","type":"string"},"type":{"description":"The type of benefit included with the rate.","enum":["breakfast_included","property_credit","room_upgrade","early_check_in","late_check_out"],"example":"breakfast_included","type":"string"}},"title":"Benefit","type":"object","x-preview":true},"type":["array","null"],"x-preview":true},"board_type":{"description":"Board type is a standard way for the hospitality industry to describe the meals and drinks that are included in the rate.\nThe possible board types are: - `'all_inclusive'` - All meals (breakfast, lunch, dinner and snacks) are included, as well as all drinks (soft drinks, tea, coffee, and in some cases, alcoholic beverages). - `'full_board'` - All meals (breakfast, lunch, dinner) are included, but excludes snacks and drinks. - `'half_board'` - Two meals a day are included in the price of the rate. Usually breakfast and dinner, but depending on the hotel, breakfast and lunch may be possible instead. - `'breakfast'` - Only breakfast is included in the price of the rate. - `'room_only'` - No food or drinks are included in the price of the rate.\n","enum":["room_only","breakfast","half_board","full_board","all_inclusive"],"example":"room_only","type":["string","null"]},"cancellation_timeline":{"description":"A timeline that contains policies, such as possible refunds, once this rate has been booked. This is sorted in ascending chronological order.\n\nIn the event we get no cancellation information for a rate, we return these as non-refundable - the most conservative cancellation scenario. In reality, there may sometimes be some refund due.\n\nThe cancellation timeline may differ across different steps of the booking process as we get more precise cancellation information. Complete cancellation timeline is only guaranteed to be available at the quote step.\n","items":{"additionalProperties":false,"properties":{"before":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime for the deadline of a refund. It can either be in UTC, or have an offset.","example":"2023-05-23T13:00:00Z","format":"date-time","type":"string"},"currency":{"description":"The currency of the `amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"},"refund_amount":{"description":"The amount refundable up until the specified `before` date","example":"799.00","type":"string"}},"title":"Cancellation timeline","type":"object"},"type":"array"},"code":{"description":"A rate code is an alphanumeric identifier of specific negotiated pricing and booking conditions. Rate codes are only returned when special contracted rates are available through the hotel provider, distinguishing them from standard public rates.","example":"ABC","type":["string","null"]},"conditions":{"description":"The conditions or policies that apply to the rate. The information provided should be treated as mandatory and displayed to the guest during and after the booking process.\n","items":{"additionalProperties":false,"properties":{"description":{"description":"One or more paragraphs that outline policy, amenity or refundability conditions for the rate. Take note that this may contain links expressed as HTML tags.","example":"Public parking is available nearby for £15 per day","type":"string"},"title":{"description":"The condition title","example":"Parking","type":"string"}},"title":"Condition","type":"object"},"type":"array"},"deal_types":{"description":"The deal type that applied to the rate. Deals may include benefits beyond a suppliers public rate, such as discounted price or different conditions.\nThis will be an empty list if no deals apply, and null if there are no known deals.\n","example":["closed_user_group","corporate","mobile"],"items":{"enum":["closed_user_group","mobile","seasonal","promotion","corporate"],"type":"string"},"type":["array","null"]},"description":{"description":"The rate description provided by the rate supplier. This typically includes important information about what's included in the rate, such as meal plans, amenities, credits, upgrades, or special benefits. This field is returned exactly as provided by the supplier and is not normalised or standardised across sources. It's intended for internal use or agent review rather than direct display to the guest, as formatting and content quality may vary significantly between suppliers.\n","example":"Complimentary Breakfast 2Ppl, 100Usd Htl Crdt Person Stay Or Lcl Curr Equiv Or 100 Fb Crdt, Nxt Cat Upgrd Subj To Available.","type":["string","null"],"x-preview":true},"due_at_accommodation_amount":{"description":"Mandatory fees or taxes that are due by the guest at the accommodation. Depending on the accommodation these may be payable on check in or check out. These fees are not collected during the booking process. Will be `null` if the amount due at accommodation is unknown.\nThis is not included in the `total_amount`.\n","example":"39.95","type":["string","null"]},"due_at_accommodation_currency":{"description":"The currency of the `due_at_accommodation_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis can be different from `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"estimated_commission_amount":{"description":"This is the gross commission amount for this rate, before profit share being applied as per your order form. The estimate is supplied on a best-effort basis, and the accuracy depends on the rate supplier. Will be `null` if the estimated commission amount is unknown.","example":"100.00","type":["string","null"]},"estimated_commission_currency":{"description":"The currency of the [estimated_commission_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-estimated-commission-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":["string","null"]},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the rate will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"fee_amount":{"description":"The fee amount for this rate.\nThis is included in the `total_amount`.\n","example":"50.94","type":["string","null"]},"fee_currency":{"description":"The currency of the `fee_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"id":{"description":"The `id` of a given rate","example":"rat_0000BTVRuKZTavzrZDJ4cb","type":"string"},"loyalty_programme_required":{"description":"Whether this rate requires you to be a member of the supported loyalty programme. If true, you must supply a [loyalty_programme_account_number](/docs/api/v2/bookings/create-booking#bookings-creating-a-booking-body-parameters-loyalty-programme-account-number) when creating a booking for this rate.","example":false,"type":"boolean"},"name":{"description":"The rate name provided by the rate supplier. This is suitable for display in a rate card or search result. May be null if the hotel or supplier does not return a rate name.\n","example":"Best Available Rate","type":["string","null"],"x-preview":true},"negotiated_rate_id":{"description":"The `id` of the negotiated rate used to obtain this rate","example":"nre_0000ATOwpuYnZohiSmlmyz","type":["string","null"],"x-preview":true},"payment_instruction_allowed":{"description":"Whether it will be possible to submit a [payment instruction](/docs/api/v2/booking-payment-instructions) for a booking created from this rate.","type":"boolean","x-preview":true},"payment_type":{"description":"The payment type for this rate. It describes how and when the payment_method will be charged.\n\n`pay_now` rates require full prepayment at the time of creating a booking or before check-in.\n\n`deposit` rates require a prepayment which will be taken at the time of booking or before check-in. The customer is required to pay for the remainder at the accommodation. The refundability of the deposit depends on the accommodation's cancellation conditions.\n\n`guarantee` rates are only supported for card as the payment method. The card may be charged by the accommodation, i.e. in the event of a no-show. Another form of payment may be requested by the accommodation for payment at check-in or check-out.\n","enum":["pay_now","guarantee","deposit"],"example":"pay_now","type":"string"},"public_amount":{"description":"The public price for the same rate if purchased via the hotel website, or the Online Travel Agency website.\nIf public_amount matches the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount) for the rate, then the rate you have is a public rate.\nIf public_amount is greater than the [total_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-total-amount), then you have a discounted rate.\npublic_amount will be null if no information is available.\n","example":"699.99","type":["string","null"]},"public_currency":{"description":"The currency of the [public_amount](/docs/api/v2/accommodation/schema#accommodation-schema-rooms-rooms-rates-rooms-rates-public-amount), as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"quantity_available":{"description":"The quantity of rooms available to be booked at this rate. This number is not guaranteed to be accurate. Will be `null` if this information is unknown.","example":12,"type":["integer","null"]},"source":{"description":"The source provider of this rate","enum":["sabre","expedia","bookingcom","travelport","priceline","duffel_hotel_group","duffel"],"type":"string"},"supported_loyalty_programme":{"description":"The loyalty programme that this rate supports.\nWhile the accommodation the rate comes from might support a loyalty programme in general (shown in its `supported_loyalty_programme` property), not all rates will. The rate's `supported_loyalty_programme` allows you to check loyalty programme support on a per-rate basis.\nNote that different rates from an accommodation won't have different supported loyalty programmes — it will always be the same one as the accommodation's. If the accommodation does not support a loyalty programme, this will always be `null`.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]},"tax_amount":{"description":"The tax amount for this rate. Will be `null` if the tax amount is unknown.\nThis is included in the `total_amount`.\n","example":"82.23","type":["string","null"]},"tax_currency":{"description":"The currency of the `tax_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\nThis is always the same as `total_currency`.\n","example":"GBP","format":"ISO 4217","type":"string"},"total_amount":{"description":"The total price for the room for all nights and for all guests.\nThis always equals `base_amount` + `tax_amount` + `fee_amount`.\nPlease note, the guest may be required to pay mandatory fees and taxes at the accommodation. These are not included in the `total_amount`, and are included in `due_at_accommodation_amount`.\n","example":"799.00","type":"string"},"total_currency":{"description":"The currency of the `total_amount`, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.","example":"GBP","format":"ISO 4217","type":"string"}},"title":"Rate","type":"object"},"type":"array"}},"title":"Room","type":"object"},"type":"array"},"supported_loyalty_programme":{"description":"The loyalty programme that is supported by the accommodation.\nNote that while the accommodation might support a loyalty programme in general, not all rates will. See the rate's `supported_loyalty_programme` property to check this on a per-rate basis.\n","enum":["wyndham_rewards","choice_privileges","marriott_bonvoy","best_western_rewards","world_of_hyatt","hilton_honors","ihg_one_rewards","leaders_club","stash_rewards","omni_select_guest","i_prefer","accor_live_limitless","my_6","jumeirah_one","global_hotel_alliance_discovery","duffel_hotel_group_rewards"],"example":"duffel_hotel_group_rewards","title":"Loyalty Programme Reference","type":["string","null"]}},"title":"Accommodation","type":"object"},"cheapest_rate_base_amount":{"description":"The `cheapest_rate_base_amount` is for search result display purposes. It is equivalent to the cheapest rate [base_amount](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-base-amount) for the cheapest room at this accommodation.\nThe rate amount is a best effort computation during the time a search is made, and can change when [fetching the rates](/docs/api/v2/search-result/fetch-all-rates). It is not guaranteed to be accurate.\nThis can be `null` if the base amount is unknown.\n","example":"699.00","type":["string","null"]},"cheapest_rate_base_currency":{"description":"The currency for `cheapest_rate_base_amount` for this accommodation, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":["string","null"]},"cheapest_rate_currency":{"description":"The currency for `cheapest_rate_total_amount` for this accommodation, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":"string"},"cheapest_rate_due_at_accommodation_amount":{"description":"The `cheapest_rate_due_at_accommodation_amount` is for search result display purposes. It is equivalent to the cheapest rate [due_at_accommodation_amount](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-due-at-accommodation-amount) for the cheapest room at this accommodation.\nThe rate amount is a best effort computation during the time a search is made, and can change when [fetching the rates](/docs/api/v2/search-result/fetch-all-rates). It is not guaranteed to be accurate.\nThis can be `null` if the due at the accommodation amount is unknown.\n","example":"699.00","type":["string","null"]},"cheapest_rate_due_at_accommodation_currency":{"description":"The currency for `cheapest_rate_due_at_accommodation_amount` for this accommodation, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":["string","null"]},"cheapest_rate_public_amount":{"description":"The `cheapest_rate_public_amount` is for search result display purposes. It is equivalent to the cheapest rate [public_amount](/docs/api/v2/search-result/schema#search-result-schema-accommodation-accommodation-rooms-accommodation-rooms-rates-accommodation-rooms-rates-public-amount) for the cheapest room at this accommodation.\nThe rate amount is a best effort computation during the time a search is made, and can change when [fetching the rates](/docs/api/v2/search-result/fetch-all-rates). It is not guaranteed to be accurate.\nThe amount will usually be higher than the `cheapest_rate_total_amount`, but can be lower. This can be `null` if the public amount is unknown.\n","example":"899.00","type":["string","null"]},"cheapest_rate_public_currency":{"description":"The currency for `cheapest_rate_public_amount` for this accommodation, as an [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.\n","example":"GBP","format":"ISO 4217","type":["string","null"]},"cheapest_rate_total_amount":{"description":"The `cheapest_rate_total_amount` is for search result display purposes. It is equivalent to the cheapest rate [total_amount](/docs/api/internal/rates/schema#rates-schema-total-amount) for the cheapest room at this accommodation.\nThe rate amount is a best effort computation during the time a search is made, and can change when [fetching the rates](/docs/api/v2/search-result/fetch-all-rates). It is not guaranteed to be accurate. It will always show a value, even when rooms data is empty in the initial Search response.\n","example":"799.00","type":"string"},"check_in_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check in","example":"2023-05-24","format":"date","type":"string"},"check_out_date":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date on which the guest wants to check out","example":"2023-05-28","format":"date","type":"string"},"expires_at":{"description":"The [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date and time at which the search result will expire","example":"2023-05-28T12:00:00Z","format":"date-time","type":"string"},"guests":{"description":"The list of guests travelling","items":{"additionalProperties":false,"properties":{"age":{"description":"The age of the guest at the time of booking. Required for guests of type `child`. Child age must be between 0 and 17. Do not supply an age for guests of type `adult`.","example":7,"format":"integer","type":["number","null"]},"type":{"description":"The type of guest. An age is required for guests with a type `child`.","enum":["child","adult"],"example":"adult","type":"string"}},"title":"Guest","type":"object"},"type":["array","null"]},"id":{"description":"The ID for this search result","example":"srr_0000ASVBuJVLdmqtZDJ4ca","type":"string"},"rooms":{"description":"The number of rooms required","example":1,"type":"integer"},"supported_negotiated_rates":{"description":"The list of negotiated rates supported by this search result. Any negotiated rates in this list were used when searching.","items":{"additionalProperties":false,"properties":{"display_name":{"description":"The display name of the negotiated rate","example":"2025 Negotiated Rate","type":"string"},"id":{"description":"The ID of the negotiated rate which has been searched for","example":"nre_0000AvtkNoC81yBytDM9PE","type":"string"}},"title":"Supported Negotiated Rate","type":"object"},"type":"array","x-preview":true}},"title":"Search Result","type":"object"},"type":"array"}},"title":"Search","type":"object"},"meta":{"properties":{"after":{"type":["string","null"]},"before":{"type":"string"},"limit":{"type":"number"}},"type":"object"}},"required":["data"],"type":"object"}}},"description":"Successful JSON response; SDK accepts the successful HTTP range."},"default":{"content":{"application/json":{"schema":{}}},"description":"Error response; upstream passthrough responses may use provider formats"}},"summary":"Create Stay Search","tags":["duffel-stays"],"x-aisa-capabilities":{"idempotency":"Idempotency-Key","max_price":"X-AISA-Max-Price-USD","mpp":false,"mpp_methods":[],"quote":{"header":"X-AISA-Cost-Mode","value":"quote"},"x402":false},"x-aisa-catalog-id":"duffel-stays","x-aisa-category":"duffel-stays","x-aisa-docs-url":"https://aisa.one/docs/api-reference/duffel-stays/post_duffel_stays_apis_v1_duffel_stays_search_create","x-aisa-passthrough":true,"x-aisa-pricing":{"cost_contract":"explicit_zero","customer_pricing":"fixed_success","default_request_estimate_usd":0.02,"estimate_source":"profile_seed","evidence_source":"request_snapshot"},"x-aisa-query-policy":{"ignore_undeclared":false,"request_wins":true},"x-aisa-response-source":{"content_hash":"sha256:eed8e6e4134a2e61a14b0247bf8e33644af84325ee390c53641bfd4235a4dc52","kind":"upstream_success_contract","source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"}},"x-aisa-revision":{"customer_pricing_ref":"114e2de54b91","plan_policy_version":"e70a0959cd1b93b84ae16dffd7a538273ddb9c1d46277b82823c37ff1b6bc0fb","profile_ref":"04d318315ed7"},"x-aisa-runtime-operation":{"method":"POST","operation_id":"post_duffel_stays_apis_v1_duffel_stays_search_create","path":"/apis/v1/duffel/stays/search/create"},"x-aisa-source":{"authority":"official HTML structured schemas plus pinned provider SDK; converted, not downloaded OpenAPI","content_hash":"sha256:1f3e068658e1ec5e11b0f742aa8e46f13e95b8da46e8fbf510e0fb4fc6b823c4","converter":"scripts/import_duffel_reference.py@1","fetched_at":"2026-10-09T03:47:35.116943+00:00","kind":"manual","limitations":["No examples infer types, required fields, response codes or extra fields.","SDK-added status and headers are not wire response fields.","Conditional rules expressed in descriptions remain prose.","Source acquisition and metadata matches do not prove current wire behavior."],"owner":"AIsa-team/docs","policy_revision":"sha256:450c5bf6afa65cf73964b9e5948bc50e54d0b4829b67d2e4a5c249b382161035","references":[{"file":"src__types__ClientType.ts","sha256":"3aa0ea34054d294f71deaad9005eba83e841cfb70588ca47b6ba55a9f59161b5","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/types/ClientType.ts"},{"file":"src__Client.ts","sha256":"0de07d39cc8dd3faae13561cd2e291e7bcaaf58761433bd35db4d929bc8d6b7b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Client.ts"},{"file":"src__Stays__SearchResults__SearchResults.ts","sha256":"3e7bba8537165c3f4ce5335917e83e5033e32ae15be19df138db60a17c48e47b","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/SearchResults/SearchResults.ts"},{"file":"src__Stays__Quotes__Quotes.ts","sha256":"3e23e6b8d5c914fd9bb23360241878a85921734bf21d761207862d8664fca299","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Quotes/Quotes.ts"},{"file":"src__Stays__Bookings__Bookings.ts","sha256":"b903a3227b7a364545853c082db3d2ebb50e46cd9b4cfb1c06f50fe696865c9a","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Bookings/Bookings.ts"},{"file":"src__Stays__LoyaltyProgrammes__LoyaltyProgrammes.ts","sha256":"6fec6a4a64ad279177af097a476d13afce6a2b291ced73d0d32f81f9c4c3ede0","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts"},{"file":"src__Stays__Stays.ts","sha256":"807594b33c581196b12a237bd19186ae1ca77d5f79a31dd8860a709c5e64f4c3","url":"https://raw.githubusercontent.com/duffelhq/duffel-api-javascript/ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16/src/Stays/Stays.ts"},{"sha256":"b60ba21b75715101b0e4fe09f935741eaa2179e54d5b39c4e4fac993d9662d28","url":"https://duffel.com/docs/api/v2/search"},{"sha256":"352bb961eb981d52de48dff9e144211a93129eb097f1f4c371c8d381221c1927","url":"https://duffel.com/docs/api/v2/search-result"},{"sha256":"93e71bbd10d8b238bd4e5566ffe7ccfbb8e1dba3483884900805b03d129da297","url":"https://duffel.com/docs/api/v2/quotes"},{"sha256":"e0f12dfaf26c6b19bebaedf9cf951154ade0a560ba56cbdaa1696bb0dd47b28a","url":"https://duffel.com/docs/api/v2/bookings"},{"sha256":"24e436c8136cb52391512ee66315096b733e2f01496b4aa284369c71da27fe00","url":"https://duffel.com/docs/api/v2/accommodation-loyalty-programmes"}],"refresh_policy":"manual","request_body_required_basis":"Stays.search(params), Quotes.create(rateId) and Bookings.create(payload) have required SDK arguments; Client.request wraps them in data","response_status_basis":"Client.request accepts response.ok; no exact success status is inferred","review_period_days":30,"sdk_revision":"ebcf6c483b0ec7d0290e9e020e261cf5d15b7d16","skipped_operations":[{"operation":"update-booking","reason":"no reviewed SDK envelope binding","resource":"bookings"}],"url":"https://duffel.com/docs/api/v2/search"},"x-aisa-status":"enabled","x-aisa-upstream-path":"/stays/search","x-aisa-validation":"provider"}}},"security":[{"bearerAuth":[]}],"servers":[{"url":"https://api.aisa.one"}]}
