{"openapi":"3.1.0","info":{"title":"ApiXV HotelXV API specification","summary":"ApiXV HotelXV API specification","description":"\nWelcome to the ApiXV HotelXV API specification. A single integration over a wide, unique hotel supply.\nFor more details, be sure to also check out our technical documentation at https://docs.apixv.com\n","version":"1.2.10"},"paths":{"/hotelxv/api/v2/hotels":{"get":{"tags":["hotels"],"summary":"Get Hotel Content","description":"Retrieves detailed content for one or more hotels from the local master database.\n\n- **To get specific hotels**, provide a list of ApiXV Hotel UIDs (Master IDs) in `hotel_uids`.\n\n- **To get all hotels available to you**, omit the `hotel_uids` parameter. The system will return the complete list of hotels from your latest active whitelist.\n\nThe response is paginated.","operationId":"hotels-get_hotels","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hotel_uids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated list of ApiXV Hotel UIDs (Master IDs).","title":"Hotel Uids"},"description":"Comma-separated list of ApiXV Hotel UIDs (Master IDs)."},{"name":"page_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Token for fetching the next page of results.","title":"Page Token"},"description":"Token for fetching the next page of results."},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Number of results to return per page.","default":100,"title":"Size"},"description":"Number of results to return per page."},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HotelListResponseV1"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"500":{"description":"Hotel content could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"503":{"description":"Database unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hotelxv/api/v2/options":{"get":{"tags":["options"],"summary":"Get Availability and Pricing","description":"Searches for available rooms and rates for the given hotels and criteria.\n\nThis endpoint proxies requests to the underlying supplier systems corresponding to the provided `hotel_uids`. It performs a \"fan-out\" to gather options from multiple sources in parallel and aggregates the results into a single list.\n\nAll unique identifiers (`hotel_uid`, `option_uid`) in the response are wrapped in the standardized ApiXV format.","operationId":"options-get_options","security":[{"HTTPBearer":[]}],"parameters":[{"name":"hotel_uids","in":"query","required":true,"schema":{"type":"string","title":"Hotel Uids"}},{"name":"check_in","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Check In"}},{"name":"check_out","in":"query","required":true,"schema":{"type":"string","format":"date","title":"Check Out"}},{"name":"occupancy","in":"query","required":true,"schema":{"type":"string","title":"Occupancy"}},{"name":"currency","in":"query","required":true,"schema":{"type":"string","title":"Currency"}},{"name":"market","in":"query","required":true,"schema":{"type":"string","title":"Market"}},{"name":"language","in":"query","required":true,"schema":{"type":"string","title":"Language"}},{"name":"nationality","in":"query","required":true,"schema":{"type":"string","title":"Nationality"}},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionListResponseV1"}}}},"400":{"description":"hotel_uids, check_in, check_out or occupancy missing or empty.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformError"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"500":{"description":"The search failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hotelxv/api/v2/options/{option_uid}/actions/confirm":{"post":{"tags":["options"],"summary":"Confirm a Rate (Pre-booking)","description":"Confirms a selected rate and retrieves the final details required for booking.\n\nThis is a pre-booking step that re-validates the price and availability of a specific `option_uid` from the availability search. It returns a `confirmation_uid` and a list of required fields that must be provided to the `book` action.\n\nSend the parameters as a JSON body (at least `{}`): some hotel systems reject a confirm without one.","operationId":"options-confirm_option","security":[{"HTTPBearer":[]}],"parameters":[{"name":"option_uid","in":"path","required":true,"schema":{"type":"string","description":"The `option_uid` from the initial availability search.","title":"Option Uid"},"description":"The `option_uid` from the initial availability search.","example":"AXO-LjA3EWynZKvCNXAHT3Ji"},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionActionConfirmExecuteResponseV1"}}}},"400":{"description":"Malformed option_uid, or the hotel system rejected the request.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 400 Options-Confirm Option"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"404":{"description":"No hotel system for this option, or the option expired and could not be refreshed.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/DetailError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 404 Options-Confirm Option"}}}},"409":{"description":"The price moved beyond price_tolerance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierError"}}}},"410":{"description":"The option is sold out.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierError"}}}},"500":{"description":"Platform or hotel system error.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/DetailError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 500 Options-Confirm Option"}}}},"502":{"description":"The hotel system could not be reached.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SupplierError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 502 Options-Confirm Option"}}}},"503":{"description":"The hotel system is unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SupplierError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 503 Options-Confirm Option"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"requestBody":{"description":"Send a JSON body, at least `{}`: some hotel systems reject a confirm without one. `price_tolerance` is read from the body only, never from the query string.","required":false,"content":{"application/json":{"schema":{"properties":{"price_tolerance":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":0,"description":"The percentage higher price allowed to still proceed with confirmation","examples":[2],"title":"Price Tolerance"}},"title":"OptionActionConfirmExecuteRequestV1","type":"object"}}}}}},"/hotelxv/api/v2/bookings":{"get":{"tags":["bookings"],"summary":"Get Booking Details","description":"Retrieves booking information. The behavior of this endpoint changes based on the parameters provided:\n\n- **By `booking_uids`**: If a list of `booking_uids` is given, the endpoint will fetch the details for those specific bookings. It employs a local-first strategy, checking its own database before proxying requests for any missing bookings to the original supplier.\n\n- **By User**: If `booking_uids` is omitted, the endpoint returns a paginated list of all bookings associated with the authenticated user (based on the `sub` claim in the JWT token).","operationId":"bookings-get_bookings","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_uids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Booking Uids"}},{"name":"page_token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Token"}},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingListResponseV1"}}}},"400":{"description":"Malformed or empty booking_uids.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformError"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"500":{"description":"Bookings could not be read.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 500 Bookings-Get Bookings"}}}},"503":{"description":"Database unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hotelxv/api/v2/bookings/{booking_uid}/actions/cancel":{"post":{"tags":["bookings"],"summary":"Cancel a Booking","description":"Initiates the cancellation process for a specific booking.\n\nThe request is proxied to the corresponding supplier's backend system for processing. Upon successful cancellation, the booking's status and cancellation details are updated in the platform's local database.","operationId":"bookings-cancel_booking","security":[{"HTTPBearer":[]}],"parameters":[{"name":"booking_uid","in":"path","required":true,"schema":{"type":"string","description":"The unique ApiXV Booking UID (AXB-...) to be cancelled.","title":"Booking Uid"},"description":"The unique ApiXV Booking UID (AXB-...) to be cancelled.","example":"AXB-01JA6ZQ3V8K2M4N5P6Q7R8S9TW"},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingActionCancelExecuteResponseV1"}}}},"400":{"description":"Malformed booking_uid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformError"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"404":{"description":"Unknown booking, or no hotel system for it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformError"}}}},"500":{"description":"Platform error, or the hotel system refused the cancellation.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 500 Bookings-Cancel Booking"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hotelxv/api/v2/datasets":{"get":{"tags":["datasets"],"summary":"Get Static Data Downloads","description":"Retrieves a list of available static data sets for download.\n\nThese datasets (e.g., hotel catalogs, destination lists, board codes) are generated periodically and are intended for bulk download. The endpoint returns a list of resources, each with a direct download URL (`href`).","operationId":"datasets-get_datasets","security":[{"HTTPBearer":[]}],"parameters":[{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetListResponseV1"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"500":{"description":"Datasets could not be read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"503":{"description":"Database unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hotelxv/api/v2/confirmations/{confirmation_uid}/actions/book":{"post":{"tags":["confirmations"],"summary":"Book a Confirmed Option","description":"Executes the final booking for an option that has already been confirmed.\n\nThis action is the final step in the booking process. It requires the `confirmation_uid` returned by the `confirm` action. The request is routed to the correct supplier to finalize the transaction.\n\nUpon success, the full booking details are saved to the platform's database and a booking record is returned.","operationId":"confirmations-book_option","security":[{"HTTPBearer":[]}],"parameters":[{"name":"confirmation_uid","in":"path","required":true,"schema":{"type":"string","description":"The `confirmation_uid` received from the 'confirm' action.","title":"Confirmation Uid"},"description":"The `confirmation_uid` received from the 'confirm' action.","example":"AXCO-2nyaSSwKw42h3jwGy2KSWTGZshCrhM9XrhL"},{"name":"Authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionActionBookExecuteRequestV1","description":"Read from the JSON body only, never from the query string."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OptionActionBookExecuteResponseV1"}}}},"400":{"description":"Malformed confirmation_uid, or the hotel system rejected the booking.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 400 Confirmations-Book Option"}}}},"401":{"description":"Missing, invalid or expired credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailError"}}}},"404":{"description":"No hotel system for this confirmation, or the confirmation is unknown.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 404 Confirmations-Book Option"}}}},"409":{"description":"The price moved beyond price_tolerance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierError"}}}},"410":{"description":"The room is sold out.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupplierError"}}}},"500":{"description":"Platform or hotel system error.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/DetailError"},{"$ref":"#/components/schemas/SupplierError"}],"title":"Response 500 Confirmations-Book Option"}}}},"502":{"description":"The hotel system could not be reached.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SupplierError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 502 Confirmations-Book Option"}}}},"503":{"description":"The hotel system is unavailable.","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SupplierError"},{"$ref":"#/components/schemas/DetailError"}],"title":"Response 503 Confirmations-Book Option"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AddOn":{"properties":{"addon_uid":{"type":"string","title":"Addon Uid","description":"Addon unique identifier","examples":["resort-fee"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of the addon","examples":["Resort fee may apply"]},"price":{"$ref":"#/components/schemas/UnitPrice","description":"Price details of the addon"}},"type":"object","required":["addon_uid","price"],"title":"AddOn"},"Amenity":{"properties":{"uri":{"type":"string","title":"Uri","description":"URI identifier of the amenity.","examples":["non_smoking_property"]},"label":{"type":"string","title":"Label","description":"Label of the amenity.","examples":["Non Smoking Property"]},"type":{"anyOf":[{"$ref":"#/components/schemas/AmenityType"},{"type":"null"}],"description":"Type of the amenity.","default":"HOTEL","examples":["HOTEL","ROOM"]}},"type":"object","required":["uri","label"],"title":"Amenity"},"AmenityType":{"type":"string","enum":["ROOM","HOTEL"],"title":"AmenityType"},"BoardCode":{"type":"string","enum":["RO","AI","BR","LU","DN","FB","HB","LD","BL","OT"],"title":"BoardCode"},"BookingActionCancelExecuteResponseV1":{"properties":{"cancellation_uid":{"type":"string","title":"Cancellation Uid","description":"Cancellation reference number.","examples":["AXCA-LQZGoZ9FYbwPJPu"]},"status":{"$ref":"#/components/schemas/CancellationActionStatus","description":"The status of the cancellation.","examples":["CANCELLED"]},"price":{"$ref":"#/components/schemas/UnitPrice","description":"The price of the cancellation."},"errors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Errors","description":"List of error messages.","default":[]},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings","description":"List of warning messages.","default":[]}},"type":"object","required":["cancellation_uid","status","price"],"title":"BookingActionCancelExecuteResponseV1"},"BookingDetails":{"properties":{"booking_uid":{"type":"string","title":"Booking Uid","description":"Unique booking identifier.","examples":["AXB-01JA6ZQ3V8K2M4N5P6Q7R8S9TW"]},"reference":{"$ref":"#/components/schemas/BookingReference","description":"Reference details associated with the booking."},"status":{"$ref":"#/components/schemas/BookingStatus","description":"Status of the booking.","examples":["BOOKED"]},"price":{"$ref":"#/components/schemas/UnitPrice","description":"Price details of the booking."},"holder":{"$ref":"#/components/schemas/Holder","description":"Holder information."},"guests":{"anyOf":[{"items":{"$ref":"#/components/schemas/Guest"},"type":"array"},{"type":"null"}],"title":"Guests","description":"Guest names in the order of the occupancy.","default":[]},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks","description":"Additional remarks, if any."},"addons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Addons","description":"List of add ons you want to book. (list of add on uri's).","default":[]},"occupancy":{"type":"string","title":"Occupancy","description":"Room occupancy mapped by the supplier (specification see: <a href=\"https://docs.apixv.com/apixv-website/Formats/Occupancy\">occupancy format</a>)","examples":["A-A-C10"]},"price_breakdown":{"anyOf":[{"$ref":"#/components/schemas/PriceBreakdown"},{"type":"null"}],"description":"Price breakdown"},"cancel_policy":{"$ref":"#/components/schemas/CancelPolicy","description":"Cancellation policy details"},"check_in":{"type":"string","format":"date","title":"Check In","description":"Check-in date in YYYY-MM-DD format","examples":["2024-10-02"]},"check_out":{"type":"string","format":"date","title":"Check Out","description":"Check-out date in YYYY-MM-DD format","examples":["2024-10-03"]},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Check-out date in YYYY-MM-DD format","default":"2026-10-19T13:36:06.424315Z","examples":["2024-10-03T00:00:00"]},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Check-out date in YYYY-MM-DD format","examples":["2024-10-03T00:00:00"]}},"type":"object","required":["booking_uid","reference","status","price","occupancy","cancel_policy","check_in","check_out"],"title":"BookingDetails"},"BookingListResponseV1":{"properties":{"bookings":{"items":{"$ref":"#/components/schemas/BookingDetails"},"type":"array","title":"Bookings"},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token","description":"Page token to fetch next page of data"}},"type":"object","required":["bookings"],"title":"BookingListResponseV1"},"BookingOption":{"properties":{"hotel_uid":{"type":"string","title":"Hotel Uid","description":"Unique hotel identifier.","examples":["AXH-qCzrQmMQvRPa"]},"option_uid":{"type":"string","title":"Option Uid","description":"Unique option code.","examples":["AXO-LjA3EWynZKvCNXAHT3Ji"]},"board_code":{"$ref":"#/components/schemas/BoardCode","description":"Board code","examples":["BR"]},"board_code_supplier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Board Code Supplier","description":"Supplier board code details","default":""},"payment_type":{"type":"string","title":"Payment Type","description":"Type of payment","examples":["MERCHANT"]},"status":{"$ref":"#/components/schemas/OptionStatus","description":"Status of the option","examples":["AVAILABLE","ON_REQUEST","UNAVAILABLE"]},"occupancy":{"type":"string","title":"Occupancy","description":"Room occupancy mapped by the supplier (specification see: <a href=\"https://docs.apixv.com/apixv-website/Formats/Occupancy\">occupancy format</a>)","examples":["A-A-C10"]},"rooms":{"items":{"$ref":"#/components/schemas/Room"},"type":"array","title":"Rooms","description":"List of rooms in the option"},"price":{"$ref":"#/components/schemas/UnitPrice","description":"Price details of the option"},"addons":{"items":{"$ref":"#/components/schemas/AddOn"},"type":"array","title":"Addons","description":"List of additional addons"},"price_breakdown":{"anyOf":[{"$ref":"#/components/schemas/PriceBreakdown"},{"type":"null"}],"description":"Price breakdown"},"cancel_policy":{"$ref":"#/components/schemas/CancelPolicy","description":"Cancellation policy details"},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks","description":"Additional remarks"}},"type":"object","required":["hotel_uid","option_uid","board_code","payment_type","status","occupancy","rooms","price","addons","cancel_policy"],"title":"BookingOption"},"BookingReference":{"properties":{"supplier":{"type":"string","title":"Supplier","description":"Supplier booking reference.","examples":["PR2312318686"]},"client":{"type":"string","title":"Client","description":"Client booking reference.","examples":["123456789"]},"hotel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hotel","description":"Hotel booking reference, if any.","examples":["B22270"]},"platform":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform","description":"Platform booking reference, if any.","examples":["1@1[241002[241003[231219[88463[en[USD[22270[123456789[PR2312318686"]}},"type":"object","required":["supplier","client"],"title":"BookingReference"},"BookingStatus":{"type":"string","enum":["PENDING","BOOKED","CANCELLED","FAILED"],"title":"BookingStatus"},"CancelPenalty":{"properties":{"start_time":{"type":"string","format":"date-time","title":"Start Time","description":"Start date/time of the penalty","examples":["2021-01-01T00:00:00Z"]},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time","description":"End date/time of the penalty, when empty it means until check-in","examples":["2021-01-01T00:00:00Z"]},"currency":{"type":"string","title":"Currency","description":"Currency of the penalty","examples":["USD"]},"value":{"type":"integer","title":"Value","description":"Amount due in cents of the currency (base amount = cents/100)","examples":[10050]}},"type":"object","required":["start_time","end_time","currency","value"],"title":"CancelPenalty"},"CancelPolicy":{"properties":{"cancel_penalties":{"items":{"$ref":"#/components/schemas/CancelPenalty"},"type":"array","title":"Cancel Penalties","description":"List of cancellation penalties"}},"type":"object","required":["cancel_penalties"],"title":"CancelPolicy"},"CancellationActionStatus":{"type":"string","enum":["PENDING","CANCELLED","FAILED"],"title":"CancellationActionStatus"},"ChargeItem":{"properties":{"code":{"type":"string","title":"Code","description":"Code of charge item (Uri/Slug)","examples":["room-price","season-discount","city-tax"]},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Description of charge item","default":"","examples":["Fall season discount 10%","City tax"]},"value":{"type":"integer","minimum":0.0,"title":"Value","description":"Price in cents of the currency (base amount = cents/100)","examples":[19100]},"type":{"$ref":"#/components/schemas/ChargeType","description":"Charge type (Included in base price (INCLUDED) or to be paid on arrival (EXCLUDED))","default":"INCLUDED","examples":["INCLUDED","EXCLUDED"]}},"type":"object","required":["code","value"],"title":"ChargeItem"},"ChargeType":{"type":"string","enum":["INCLUDED","EXCLUDED"],"title":"ChargeType"},"ConfirmationActionStatus":{"type":"string","enum":["CONFIRMED","FAILED"],"title":"ConfirmationActionStatus"},"Contact":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"E-mail address","examples":["info@example.com"]},"telephone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Telephone","description":"Telephone number","examples":["(62) 222 042 816"]},"fax":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fax","description":"Fax number","examples":["(62) 222 042 822"]},"web":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web","description":"Web address","examples":["https://website.com"]}},"type":"object","title":"Contact"},"Coordinates":{"properties":{"latitude":{"type":"number","title":"Latitude","description":"Latitude of the location.","examples":[45.470311]},"longitude":{"type":"number","title":"Longitude","description":"Longitude of the location.","examples":[6.908233]}},"type":"object","required":["latitude","longitude"],"title":"Coordinates"},"CountryCode":{"type":"string","enum":["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"title":"CountryCode"},"DatasetLink":{"properties":{"uri":{"type":"string","title":"Uri","description":"URI of the dataset","examples":["hotel-content","board-codes"]},"href":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Href","description":"Download url of the dataset","examples":["https://cdn.apixv.com/hotels/datasets/3f9c6c2e-6a1b-4e0d-9b7a-2d5f8c1e4a70/hotel-content.ndjson.gz","https://cdn.apixv.com/hotels/datasets/3f9c6c2e-6a1b-4e0d-9b7a-2d5f8c1e4a70/board-codes.ndjson.gz"]}},"type":"object","required":["uri","href"],"title":"DatasetLink"},"DatasetListResponseV1":{"properties":{"datasets":{"items":{"$ref":"#/components/schemas/DatasetLink"},"type":"array","title":"Datasets","description":"List of downloadable datasets"}},"type":"object","required":["datasets"],"title":"DatasetListResponseV1"},"Description":{"properties":{"type":{"type":"string","title":"Type","description":"Type of the description (e.g., GENERAL, LOCATION, ROOM).","examples":["GENERAL"]},"text":{"type":"string","title":"Text","description":"Text content describing the property.","examples":["Comfortable residence with mountain view."]}},"type":"object","required":["type","text"],"title":"Description"},"DetailError":{"properties":{"detail":{"type":"string","title":"Detail","description":"What went wrong.","examples":["Token has expired"]}},"type":"object","required":["detail"],"title":"DetailError"},"Guest":{"properties":{"first_name":{"type":"string","title":"First Name","description":"The first name of the person.","examples":["John"]},"last_name":{"type":"string","title":"Last Name","description":"The last name of the person.","examples":["Appleseed"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"The title of the person.","default":"","examples":["Mr","Mrs"]},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"The birthdate of the person.","examples":["1997-01-02"]}},"type":"object","required":["first_name","last_name"],"title":"Guest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Holder":{"properties":{"first_name":{"type":"string","title":"First Name","description":"The first name of the person.","examples":["John"]},"last_name":{"type":"string","title":"Last Name","description":"The last name of the person.","examples":["Appleseed"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"The title of the person.","default":"","examples":["Mr","Mrs"]},"birth_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Birth Date","description":"The birthdate of the person.","examples":["1997-01-02"]},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address","description":"The address of the person.","examples":["Memorylane 123"]},"country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"description":"The country of the person.","examples":["US"]},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone","description":"The phone number of the person.","examples":["+1 123 456 789"]},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"The email of the person.","examples":["some@exmaple.com"]}},"type":"object","required":["first_name","last_name"],"title":"Holder"},"HotelContent":{"properties":{"hotel_uid":{"type":"string","title":"Hotel Uid","description":"Unique hotel code","examples":["AXH-NQEcrUihdcYvPgt","9403213","JP12938"]},"mapping":{"anyOf":[{"$ref":"#/components/schemas/HotelMapping"},{"type":"null"}],"description":"Codes associated with the hotel (GIATA, Expedia etc.)"},"label":{"type":"string","title":"Label","description":"Official name of the hotel.","examples":["Waldorf Astoria New York","Belmond Copacabana Palace"]},"star_rating":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Star Rating","description":"Star rating associated with the property.","default":0.0,"examples":[2.5,4.0]},"location":{"anyOf":[{"$ref":"#/components/schemas/Location"},{"type":"null"}],"description":"Location details of the property."},"contact":{"anyOf":[{"$ref":"#/components/schemas/Contact"},{"type":"null"}],"description":"Contact details of the property."},"type":{"anyOf":[{"$ref":"#/components/schemas/PropertyType"},{"type":"null"}],"description":"Type of property."},"descriptions":{"anyOf":[{"items":{"$ref":"#/components/schemas/Description"},"type":"array"},{"type":"null"}],"title":"Descriptions","description":"Descriptions of the property in various contexts."},"amenities":{"anyOf":[{"items":{"$ref":"#/components/schemas/Amenity"},"type":"array"},{"type":"null"}],"title":"Amenities","description":"List of amenities offered by the property."},"images":{"anyOf":[{"items":{"$ref":"#/components/schemas/Image"},"type":"array"},{"type":"null"}],"title":"Images","description":"Images of the property."},"status":{"$ref":"#/components/schemas/HotelStatus","description":"The status of the hotel.","examples":["ACTIVE"]}},"type":"object","required":["hotel_uid","label","status"],"title":"HotelContent"},"HotelListResponseV1":{"properties":{"hotels":{"items":{"$ref":"#/components/schemas/HotelContent"},"type":"array","title":"Hotels","description":"List of hotels"},"next_page_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Page Token","description":"Page token to fetch next page of data"}},"type":"object","required":["hotels"],"title":"HotelListResponseV1"},"HotelMapping":{"properties":{"giata_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Giata Code","description":"Hotel code assigned by GIATA.","examples":[12345]},"expedia_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expedia Code","description":"Hotel code assigned by Expedia.","examples":[56789]}},"type":"object","title":"HotelMapping"},"HotelStatus":{"type":"string","enum":["ACTIVE","INACTIVE"],"title":"HotelStatus"},"Image":{"properties":{"order":{"type":"integer","title":"Order","description":"Order of the images","examples":[0,1,2,3]},"type":{"type":"string","title":"Type","description":"Type of the image","examples":["GENERAL","ROOM"]},"url":{"type":"string","maxLength":2083,"minLength":1,"format":"uri","title":"Url","description":"Url of the image","examples":["https://cdn.apixv.com/123123/123123/image.jog"]},"caption":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Caption","description":"Supplier caption of the image, when available.","examples":["Room","View from room","Balcony"]}},"type":"object","required":["order","type","url"],"title":"Image"},"Location":{"properties":{"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City","description":"City where the property is located.","examples":["Amsterdam"]},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address","description":"Full address of the property.","examples":["Keizerstraat 23"]},"zip_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip Code","description":"ZIP code of the property's location.","examples":["1010AB"]},"country":{"anyOf":[{"$ref":"#/components/schemas/CountryCode"},{"type":"null"}],"description":"Country code where the property is located.","examples":["NL"]},"coordinates":{"anyOf":[{"$ref":"#/components/schemas/Coordinates"},{"type":"null"}],"description":"Geographic coordinates of the property."},"pluscode_10":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pluscode 10","description":"Pluscode 10 of the property.","examples":["6HXQPMR3+37"]},"pluscode_8":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pluscode 8","description":"Pluscode 8 of the property.","examples":["6HXQPMR3"]},"pluscode_6":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pluscode 6","description":"Pluscode 6 of the property.","examples":["6HXQPM"]},"pluscode_4":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pluscode 4","description":"Pluscode 4 of the property.","examples":["6HXQ"]}},"type":"object","title":"Location"},"NightlyCharge":{"properties":{"night_index":{"type":"integer","title":"Night Index","description":"Index of the night"},"items":{"items":{"$ref":"#/components/schemas/ChargeItem"},"type":"array","title":"Items","description":"List of charge items"}},"type":"object","required":["night_index","items"],"title":"NightlyCharge"},"OptionActionBookExecuteRequestV1":{"properties":{"client_reference":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Reference","description":"Optional client reference to refer the booking later.","examples":["B123456789"]},"price_tolerance":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Price Tolerance","description":"The percentage higher price to still allow to make the booking.","default":0,"examples":[2]},"holder":{"$ref":"#/components/schemas/Holder","description":"Information about the holder."},"guests":{"items":{"$ref":"#/components/schemas/Guest"},"type":"array","title":"Guests","description":"Guest names in the order of the occupancy. (If holder is staying, include holder as the first guest)"},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks","description":"Remarks for the supplier to consider."},"addons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Addons","description":"List of add ons you want to book. (list of add on uri's).","default":[""]}},"type":"object","required":["holder","guests"],"title":"OptionActionBookExecuteRequestV1"},"OptionActionBookExecuteResponseV1":{"properties":{"booking_uid":{"type":"string","title":"Booking Uid","description":"Unique booking identifier.","examples":["AXB-01JA6ZQ3V8K2M4N5P6Q7R8S9TW"]},"reference":{"$ref":"#/components/schemas/BookingReference","description":"Reference details associated with the booking."},"status":{"$ref":"#/components/schemas/BookingStatus","description":"Status of the booking.","examples":["BOOKED"]},"price":{"$ref":"#/components/schemas/UnitPrice","description":"Price details of the booking."},"holder":{"$ref":"#/components/schemas/Holder","description":"Holder information."},"guests":{"anyOf":[{"items":{"$ref":"#/components/schemas/Guest"},"type":"array"},{"type":"null"}],"title":"Guests","description":"Guest names in the order of the occupancy.","default":[]},"remarks":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Remarks","description":"Additional remarks, if any."},"addons":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Addons","description":"List of add ons you want to book. (list of add on uri's).","default":[]},"occupancy":{"type":"string","title":"Occupancy","description":"Room occupancy mapped by the supplier (specification see: <a href=\"https://docs.apixv.com/apixv-website/Formats/Occupancy\">occupancy format</a>)","examples":["A-A-C10"]},"price_breakdown":{"anyOf":[{"$ref":"#/components/schemas/PriceBreakdown"},{"type":"null"}],"description":"Price breakdown"},"cancel_policy":{"$ref":"#/components/schemas/CancelPolicy","description":"Cancellation policy details"},"check_in":{"type":"string","format":"date","title":"Check In","description":"Check-in date in YYYY-MM-DD format","examples":["2024-10-02"]},"check_out":{"type":"string","format":"date","title":"Check Out","description":"Check-out date in YYYY-MM-DD format","examples":["2024-10-03"]},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Check-out date in YYYY-MM-DD format","default":"2026-10-19T13:36:06.424315Z","examples":["2024-10-03T00:00:00"]},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At","description":"Check-out date in YYYY-MM-DD format","examples":["2024-10-03T00:00:00"]},"errors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Errors","description":"List of error messages.","default":[]},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings","description":"List of warning messages.","default":[]}},"type":"object","required":["booking_uid","reference","status","price","occupancy","cancel_policy","check_in","check_out"],"title":"OptionActionBookExecuteResponseV1"},"OptionActionConfirmExecuteResponseV1":{"properties":{"confirmation_uid":{"type":"string","title":"Confirmation Uid","description":"Unique identifier of the confirmation","examples":["AXCO-2nyaSSwKw42h3jwGy2KSWTGZshCrhM9XrhL"]},"required_fields_holder":{"items":{"$ref":"#/components/schemas/RequiredField"},"type":"array","title":"Required Fields Holder","description":"Required fields for the holder when booking","default":[],"examples":[["email","phone","address","country","title"]]},"required_fields_guests":{"items":{"$ref":"#/components/schemas/RequiredField"},"type":"array","title":"Required Fields Guests","description":"Required fields for each guest when booking","default":[],"examples":[["email","phone","address","country","title"]]},"option":{"$ref":"#/components/schemas/BookingOption","description":"Booking option details"},"status":{"$ref":"#/components/schemas/ConfirmationActionStatus","description":"Status of the confirmation action","examples":["CONFIRMED"]},"errors":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Errors","description":"List of error messages.","default":[]},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings","description":"List of warning messages.","default":[]}},"type":"object","required":["confirmation_uid","option","status"],"title":"OptionActionConfirmExecuteResponseV1"},"OptionListResponseV1":{"properties":{"options":{"items":{"$ref":"#/components/schemas/BookingOption"},"type":"array","title":"Options","description":"List of available options"}},"type":"object","required":["options"],"title":"OptionListResponseV1"},"OptionStatus":{"type":"string","enum":["AVAILABLE","ON_REQUEST","UNAVAILABLE"],"title":"OptionStatus"},"PlatformError":{"properties":{"error":{"type":"string","title":"Error","description":"What the platform rejected.","examples":["Booking not found"]}},"type":"object","required":["error"],"title":"PlatformError"},"PriceBreakdown":{"properties":{"currency":{"type":"string","title":"Currency","description":"The currency code","examples":["USD"]},"nightly_charges":{"anyOf":[{"items":{"$ref":"#/components/schemas/NightlyCharge"},"type":"array"},{"type":"null"}],"title":"Nightly Charges","description":"List of nightly charges"},"additional_charges":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChargeItem"},"type":"array"},{"type":"null"}],"title":"Additional Charges","description":"List of other charges"}},"type":"object","required":["currency"],"title":"PriceBreakdown"},"PropertyType":{"properties":{"code":{"type":"string","title":"Code","description":"Code representing the type of property.","examples":["A"]},"name":{"type":"string","title":"Name","description":"Name of the property type.","examples":["Appartment"]}},"type":"object","required":["code","name"],"title":"PropertyType"},"RequiredField":{"type":"string","enum":["email","phone","address","country","title","first_name","last_name","birth_date","age"],"title":"RequiredField"},"Room":{"properties":{"room_uid":{"type":"string","title":"Room Uid","description":"Unique identifier of the room","examples":["1280688200157286Â£200885292"]},"description":{"type":"string","title":"Description","description":"Description of the room","examples":["Superior, 1 King-size Bed"]},"refundable":{"type":"boolean","title":"Refundable","description":"Indicates if the room is refundable","examples":[true]},"price":{"$ref":"#/components/schemas/UnitPrice","description":"Room pricing details"}},"type":"object","required":["room_uid","description","refundable","price"],"title":"Room"},"SupplierDetail":{"properties":{"detail":{"type":"string","title":"Detail","description":"The hotel system's own message.","examples":["Option not found"]}},"type":"object","required":["detail"],"title":"SupplierDetail"},"SupplierError":{"properties":{"detail":{"$ref":"#/components/schemas/SupplierDetail","description":"The hotel system's error body, passed through unchanged."}},"type":"object","required":["detail"],"title":"SupplierError"},"UnitPrice":{"properties":{"currency":{"type":"string","title":"Currency","description":"The currency code","examples":["USD"]},"value":{"type":"integer","minimum":0.0,"title":"Value","description":"Price in cents of the currency (base amount = cents/100)","examples":[19100]}},"type":"object","required":["currency","value"],"title":"UnitPrice"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}