{
  "openapi": "3.1.0",
  "info": {
    "title": "Book for Work API",
    "description": "\nWelcome to Book for Work API! Before reading the documentation please\nmake sure you read the tab Getting Started.\n\n## Authentication\n\nAll endpoints require HMAC-SHA256 signature authentication via\nthe `Authorization` header:\n\n**Format**: `Authorization: API-Key={key},Signature={hmac_signature},\nTimestamp={unix_timestamp}`\n\n**Steps to generate signature**:\n1. Generate the current Unix timestamp (UTC, seconds).\n2. Create the signing message by concatenating the following values\n   **in this exact order with no separators**:\n   ```\n   {api_key}{secret}{timestamp}\n   ```\n3. Generate an HMAC-SHA256 signature using the API secret as the HMAC key.\n4. Encode the signature as a hexadecimal string.\n5. Include the API key, signature, and timestamp in the `Authorization` header.\n\nRequests are rejected if the timestamp differs from the server time\nby more than 5 minutes.\n\n",
    "contact": {
      "name": "Book for Work",
      "email": "support@bookforwork.com"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/api/v1"
    },
    {
      "url": "https://bookforwork.com",
      "description": "BFW API Production server"
    },
    {
      "url": "https://staging.bookforwork.com",
      "description": "BFW API Staging server"
    }
  ],
  "paths": {
    "/properties/availability": {
      "get": {
        "tags": [
          "Availability"
        ],
        "summary": "Search Property Availability",
        "description": "Search for available rooms across multiple properties.",
        "operationId": "get_availability_properties_availability_get",
        "parameters": [
          {
            "name": "checkin",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "description": "Check-in date. Type: `String`, format: `(YYYY-MM-DD)`",
              "title": "Checkin"
            },
            "description": "Check-in date. Type: `String`, format: `(YYYY-MM-DD)`"
          },
          {
            "name": "checkout",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date",
              "description": "Check-out date. Type: `String`, format: `(YYYY-MM-DD)`",
              "title": "Checkout"
            },
            "description": "Check-out date. Type: `String`, format: `(YYYY-MM-DD)`"
          },
          {
            "name": "property_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer"
              },
              "description": "List of property IDs to check the availability for. Maximum 200 properties (IDs) per search. Type: List of integers, Example: `[1011, 2402, 3813]`.",
              "title": "Property Id"
            },
            "description": "List of property IDs to check the availability for. Maximum 200 properties (IDs) per search. Type: List of integers, Example: `[1011, 2402, 3813]`."
          },
          {
            "name": "occupancy",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "List of occupancy strings (e.g., `'2'`, `'2-9,4'`) for each room. Occupancy strings format is `numberOfAdults-firstChildAge,nextChildAge`. Example 2-9,4 -> 2 adults, 1 child 9 yo, 1 child 4 yo.",
              "title": "Occupancy"
            },
            "description": "List of occupancy strings (e.g., `'2'`, `'2-9,4'`) for each room. Occupancy strings format is `numberOfAdults-firstChildAge,nextChildAge`. Example 2-9,4 -> 2 adults, 1 child 9 yo, 1 child 4 yo."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful availability search",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailabilityResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/properties/content/": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Get Properties List by Country",
        "description": "Retrieve paginated list of active properties filtered by country code. \n\n**Pagination**: Page size is fixed at 200 items per page. The `total` field in response represents the **total number of properties** (not pages). To calculate the number of pages, use: `total_pages = total / page_size`.",
        "operationId": "get_hotels_properties_content__get",
        "parameters": [
          {
            "name": "country_code",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "pattern": "^[A-Z]{2}$",
              "description": "Type: String, ISO 3166-1 alpha-2 country code (e.g., 'US', 'DE')",
              "title": "Country Code"
            },
            "description": "Type: String, ISO 3166-1 alpha-2 country code (e.g., 'US', 'DE')"
          },
          {
            "name": "language_code",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "en",
                "it"
              ],
              "type": "string",
              "default": "en",
              "title": "Language Code"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number - Type: `Integer`, Example: `1`",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number - Type: `Integer`, Example: `1`"
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful properties list retrieval",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HotelListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/properties/content/{hotel_id}": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Get Property Details by ID",
        "description": "Retrieve complete property information by ID. Returns all hotel details including descriptions, images, themes, attributes, amenities, and rooms.",
        "operationId": "get_hotel_detail_properties_content__hotel_id__get",
        "parameters": [
          {
            "name": "hotel_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Hotel Id to get all the details - Type: `Integer`, Example: `75843`",
              "title": "Hotel Id"
            },
            "description": "Hotel Id to get all the details - Type: `Integer`, Example: `75843`"
          },
          {
            "name": "language_code",
            "in": "query",
            "required": false,
            "schema": {
              "enum": [
                "en",
                "it"
              ],
              "type": "string",
              "default": "en",
              "title": "Language Code"
            }
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful hotel detail retrieval",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HotelDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Property not found or inactive",
            "content": {
              "application/json": {
                "examples": {
                  "property_not_found": {
                    "summary": "Property not found or inactive",
                    "value": {
                      "detail": "Property not found or inactive"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/price-check": {
      "get": {
        "tags": [
          "Booking"
        ],
        "summary": "Price Check for bookings",
        "description": "Price check for a specific availability search by its Option ID. Option ID should be chosen among Room IDs returned by the search endpoint inside Room objects. If there is a price change status you will see the change in the pricing and null otherwise.",
        "operationId": "get_price_check_price_check_get",
        "parameters": [
          {
            "name": "option_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Option Id needed for this price check request. Type: `String`, Example: `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.",
              "title": "Option Id"
            },
            "description": "Option Id needed for this price check request. Type: `String`, Example: `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Price Check for bookings",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PriceCheckResponseForView"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/booking": {
      "post": {
        "tags": [
          "Booking"
        ],
        "summary": "Create a new booking",
        "description": "Creates a new booking for a specific availability search. This endpoint requires the Option ID returned by the price check endpoint.",
        "operationId": "booking_endpoint_booking_post",
        "parameters": [
          {
            "name": "option_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Option Id returned by the price check endpoint needed for the booking request. Type: `String`, Example: `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`.",
              "title": "Option Id"
            },
            "description": "Option Id returned by the price check endpoint needed for the booking request. Type: `String`, Example: `'75731f0a2be62d7ffd64f4ec41a96793a918bc4003bedf17c44fcf823e80fd29'`."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BookingRequest",
                "description": "Room details with guest information."
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Create a new booking",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookingResponseToClient"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/cancel": {
      "delete": {
        "tags": [
          "Manage Booking"
        ],
        "summary": "Cancel Booking",
        "description": "Cancels a specific booking by its Booking Id.",
        "operationId": "booking_cancelation_endpoint_cancel_delete",
        "parameters": [
          {
            "name": "booking_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Booking Id needed for the cancel request. Type: `Integer`, Example: `7579`.",
              "title": "Booking Id"
            },
            "description": "Booking Id needed for the cancel request. Type: `Integer`, Example: `7579`."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted - Request is valid but the status of the booking is not known yet",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BookingCancelResponse"
                }
              }
            }
          },
          "204": {
            "description": "No Content - Booking has been successfully canceled",
            "content": {
              "application/json": {}
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/retrieve": {
      "get": {
        "tags": [
          "Manage Booking"
        ],
        "summary": "Retrieve Booking Details",
        "description": "Retrieves the details of a specific booking by its Booking Id.",
        "operationId": "booking_retrieval_endpoint_retrieve_get",
        "parameters": [
          {
            "name": "booking_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "description": "Booking Id needed for the retrieval request. Type: `Integer`, Example: `7579`.",
              "title": "Booking Id"
            },
            "description": "Booking Id needed for the retrieval request. Type: `Integer`, Example: `7579`."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful booking details retrieval list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetrieveBookingResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Booking not found",
            "content": {
              "application/json": {
                "examples": {
                  "not_found": {
                    "summary": "Booking not found",
                    "value": {
                      "detail": "Sorry! We couldn't find your booking with ID: 90."
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/RetrieveBookingNotFound"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/static_content_reference_list": {
      "get": {
        "tags": [
          "Content"
        ],
        "summary": "Static Content Reference List",
        "description": "Retrieves the list of static content reference in English or Italian language.",
        "operationId": "static_content_endpoint_static_content_reference_list_get",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "description": "language needed for static content reference list. Type: `String`, Example: `en`.",
              "title": "Language"
            },
            "description": "language needed for static content reference list. Type: `String`, Example: `en`."
          },
          {
            "name": "authorization",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}",
              "examples": [
                "API-Key=a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0,Signature=d8e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3,Timestamp=1234567890"
              ],
              "title": "Authorization"
            },
            "description": "Authorization header with HMAC signature. Format: API-Key={key},Signature={hmac_signature},Timestamp={unix_timestamp}"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful static content reference list retrieval",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AllAmenitiesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Invalid or missing API credentials",
            "content": {
              "application/json": {
                "examples": {
                  "invalid_api_credentials": {
                    "summary": "Invalid API credentials",
                    "value": {
                      "detail": "Invalid API credentials"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Company account is not active",
            "content": {
              "application/json": {
                "examples": {
                  "company_account_not_active": {
                    "summary": "Company account is not active",
                    "value": {
                      "detail": "Company account is not active"
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation error (missing or invalid parameters)",
            "content": {
              "application/json": {
                "examples": {
                  "validation_error": {
                    "summary": "Validation error",
                    "value": {
                      "detail": [
                        {
                          "type": "missing",
                          "loc": [
                            "header",
                            "authorization"
                          ],
                          "msg": "Field required"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AllAmenitiesResponse": {
        "properties": {
          "categories": {
            "items": {
              "$ref": "#/components/schemas/AmenityItem"
            },
            "type": "array",
            "title": "Categories",
            "description": "List of all available categories.",
            "examples": [
              [
                {
                  "id": "0",
                  "name": "Property"
                },
                {
                  "id": "1",
                  "name": "Hotel"
                }
              ]
            ]
          },
          "treatment_categories": {
            "items": {
              "$ref": "#/components/schemas/AmenityItem"
            },
            "type": "array",
            "title": "Treatment Categories",
            "description": "List of all available treatment categories.",
            "examples": [
              [
                {
                  "id": "0",
                  "name": "Half Board"
                },
                {
                  "id": "1",
                  "name": "Full Board"
                }
              ]
            ]
          },
          "room_amenities": {
            "items": {
              "$ref": "#/components/schemas/AmenityItem"
            },
            "type": "array",
            "title": "Room Amenities",
            "description": "List of all available room amenities.",
            "examples": [
              [
                {
                  "id": "0",
                  "name": "Air conditioning"
                },
                {
                  "id": "1",
                  "name": "Room service (limited hours)"
                }
              ]
            ]
          },
          "property_amenities": {
            "items": {
              "$ref": "#/components/schemas/AmenityItem"
            },
            "type": "array",
            "title": "Property Amenities",
            "description": "List of all available property amenities.",
            "examples": [
              [
                {
                  "id": "0",
                  "name": "Hiking/biking trails on site"
                },
                {
                  "id": "1",
                  "name": "Free beach shuttle"
                }
              ]
            ]
          },
          "hotel_attributes": {
            "items": {
              "$ref": "#/components/schemas/AmenityItem"
            },
            "type": "array",
            "title": "Hotel Attributes",
            "description": "List of all available hotel attributes.",
            "examples": [
              [
                {
                  "id": "0",
                  "name": "Parking height restrictions apply"
                },
                {
                  "id": "1",
                  "name": "Only dogs and cats are allowed"
                }
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "categories",
          "treatment_categories",
          "room_amenities",
          "property_amenities",
          "hotel_attributes"
        ],
        "title": "AllAmenitiesResponse"
      },
      "AmenityItem": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Amenity ID",
            "examples": [
              "0"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Detail of the amenity.",
            "examples": [
              "Air conditioning"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "AmenityItem"
      },
      "AvailabilityResponse": {
        "properties": {
          "properties": {
            "items": {
              "$ref": "#/components/schemas/Property"
            },
            "type": "array",
            "title": "Properties",
            "description": "Availability information for requested properties"
          },
          "warnings": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Warnings",
            "description": "List of properties not found IDs",
            "examples": [
              [
                "228934",
                "3849405",
                "2839404"
              ]
            ]
          }
        },
        "type": "object",
        "title": "AvailabilityResponse"
      },
      "BedGroup": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique identifier for the bed group",
            "examples": [
              "37321"
            ]
          },
          "description": {
            "type": "string",
            "title": "Description",
            "description": "Description of the bed configuration",
            "examples": [
              "1 King Bed"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "description"
        ],
        "title": "BedGroup"
      },
      "BookStatus": {
        "type": "string",
        "enum": [
          "PROCESSING",
          "WAITING_CONFIRMATION",
          "CONFIRMED",
          "NOT_CONFIRMED",
          "PENDING",
          "CANCELLED"
        ],
        "title": "BookStatus"
      },
      "BookingCancelResponse": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/Status",
            "description": "Status of the booking.",
            "examples": [
              "NOT AVAILABLE"
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message",
            "description": "The booking could not be found or is already cancelled.",
            "examples": [
              "Sorry! We couldn't find your booking with ID: 90."
            ]
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "BookingCancelResponse"
      },
      "BookingRequest": {
        "properties": {
          "room_detail": {
            "items": {
              "$ref": "#/components/schemas/RoomRequest"
            },
            "type": "array",
            "title": "Room Detail",
            "description": "List of rooms with guest details."
          },
          "phone_number_prefix": {
            "type": "string",
            "title": "Phone Number Prefix",
            "description": "Phone number prefix. Type - `String`.",
            "examples": [
              "0039"
            ]
          },
          "phone_number": {
            "type": "string",
            "title": "Phone Number",
            "description": "Guest phone number. Type - `String`.",
            "examples": [
              "3632323278"
            ]
          },
          "email": {
            "anyOf": [
              {
                "type": "string",
                "format": "email"
              },
              {
                "type": "null"
              }
            ],
            "title": "Email",
            "description": "Guest email address. Type - `String`.",
            "examples": [
              "francesca.mario@gmail.com"
            ]
          },
          "custom_fields": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomFieldCorrespondence"
              },
              {
                "additionalProperties": true,
                "type": "object"
              }
            ],
            "title": "Custom Fields",
            "description": "Dynamic custom fields can be added up to 10 fields in type string. These fields can be added for reconciliation purposes and they will be added to the invoices (ex. Order Number: 37484).",
            "examples": [
              {
                "custom_field_1": "value 1",
                "custom_field_2": "value 2"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "room_detail",
          "phone_number_prefix",
          "phone_number"
        ],
        "title": "BookingRequest"
      },
      "BookingResponseToClient": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/BookStatus",
            "description": "Status of the booking",
            "examples": [
              "CONFIRMED"
            ]
          },
          "booking_id": {
            "type": "integer",
            "title": "Booking Id",
            "description": "Booking Id",
            "examples": [
              "626"
            ]
          }
        },
        "type": "object",
        "required": [
          "status",
          "booking_id"
        ],
        "title": "BookingResponseToClient"
      },
      "CoordinatesSchema": {
        "properties": {
          "latitude": {
            "type": "number",
            "title": "Latitude",
            "description": "Latitude coordinate",
            "examples": [
              40.715195
            ]
          },
          "longitude": {
            "type": "number",
            "title": "Longitude",
            "description": "Longitude coordinate",
            "examples": [
              -74.00917
            ]
          }
        },
        "type": "object",
        "required": [
          "latitude",
          "longitude"
        ],
        "title": "CoordinatesSchema"
      },
      "CountrySchema": {
        "properties": {
          "code": {
            "type": "string",
            "title": "Code",
            "description": "Country code ISO 3166-1 alpha-2 format",
            "examples": [
              "US"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Country name",
            "examples": [
              "United States of America"
            ]
          }
        },
        "type": "object",
        "required": [
          "code",
          "name"
        ],
        "title": "CountrySchema"
      },
      "CustomFieldCorrespondence": {
        "type": "string",
        "enum": [
          "custom_field_1",
          "custom_field_2",
          "custom_field_3",
          "custom_field_4",
          "custom_field_5",
          "custom_field_6",
          "custom_field_7",
          "custom_field_8",
          "custom_field_9",
          "custom_field_10"
        ],
        "title": "CustomFieldCorrespondence"
      },
      "ErrorResponse": {
        "properties": {
          "detail": {
            "type": "string",
            "title": "Detail"
          }
        },
        "type": "object",
        "required": [
          "detail"
        ],
        "title": "ErrorResponse"
      },
      "HotelAttributeSchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Attribute ID",
            "examples": [
              9
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Attribute name",
            "examples": [
              "Service animals are allowed"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value",
            "description": "Attribute value"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "HotelAttributeSchema"
      },
      "HotelDescription": {
        "properties": {
          "rooms": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rooms",
            "description": "Room description"
          },
          "dining": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Dining",
            "description": "Dining description"
          },
          "headline": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Headline",
            "description": "Headline"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location",
            "description": "Location description"
          },
          "amenities": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amenities",
            "description": "Amenities description"
          },
          "attractions": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Attractions",
            "description": "Nearby attractions"
          },
          "business_amenities": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Business Amenities",
            "description": "Business amenities description"
          },
          "renovations": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Renovations",
            "description": "Renovation information"
          }
        },
        "type": "object",
        "title": "HotelDescription"
      },
      "HotelDetailResponse": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Hotel ID",
            "examples": [
              255450
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Hotel name",
            "examples": [
              "Smyth Tribeca"
            ]
          },
          "stars": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Stars",
            "description": "Star rating",
            "examples": [
              4
            ]
          },
          "pic": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pic",
            "description": "Main image URL",
            "examples": [
              "https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/f83fa98d_z.jpg"
            ]
          },
          "city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "City",
            "description": "City name",
            "examples": [
              "New York"
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address",
            "description": "Address",
            "examples": [
              "85 West Broadway"
            ]
          },
          "state_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State Code",
            "description": "State code",
            "examples": [
              "NY"
            ]
          },
          "state_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "State Name",
            "description": "State name",
            "examples": [
              "New York"
            ]
          },
          "zipcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zipcode",
            "description": "ZIP code",
            "examples": [
              "10017"
            ]
          },
          "coordinates": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CoordinatesSchema"
              },
              {
                "type": "null"
              }
            ],
            "description": "GPS coordinates"
          },
          "country": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CountrySchema"
              },
              {
                "type": "null"
              }
            ],
            "description": "Country information"
          },
          "category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Category",
            "description": "Property category",
            "examples": [
              "Hotel"
            ]
          },
          "phone_nr": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Phone Nr",
            "description": "Phone number",
            "examples": [
              "1-917-997-2700"
            ]
          },
          "guest_rating_count": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Count",
            "description": "Number of guest ratings",
            "examples": [
              828
            ]
          },
          "guest_rating_overall": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Overall",
            "description": "Overall rating",
            "examples": [
              8.8
            ]
          },
          "guest_rating_cleanliness": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Cleanliness",
            "description": "Cleanliness rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_service": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Service",
            "description": "Service rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_comfort": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Comfort",
            "description": "Comfort rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_condition": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Condition",
            "description": "Condition rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_location": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Location",
            "description": "Location rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_neighborhood": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Neighborhood",
            "description": "Neighborhood rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_amenities": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Amenities",
            "description": "Amenities rating",
            "examples": [
              9.2
            ]
          },
          "guest_rating_rec_percent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Guest Rating Rec Percent",
            "description": "Recommendation percentage",
            "examples": [
              9.2
            ]
          },
          "check_in_begin_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Check In Begin Time",
            "description": "Check-in begin time. HH:MM:SS",
            "examples": [
              "15:00:00"
            ]
          },
          "check_in_end_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Check In End Time",
            "description": "Check-in end time. HH:MM:SS",
            "examples": [
              "23:00:00"
            ]
          },
          "check_out_time": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Check Out Time",
            "description": "Check-out time. HH:MM:SS",
            "examples": [
              "12:00:00"
            ]
          },
          "min_age": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Min Age",
            "description": "Minimum age requirement",
            "examples": [
              18
            ]
          },
          "instructions": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Instructions",
            "description": "Instructions",
            "examples": [
              "This is a sample instruction"
            ]
          },
          "special_instructions": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Special Instructions",
            "description": "Special instructions",
            "examples": [
              "This is a sample special instruction"
            ]
          },
          "mandatory_fees": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mandatory Fees",
            "description": "Mandatory fees",
            "examples": [
              "This is a sample mandatory fee"
            ]
          },
          "optional_fees": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Optional Fees",
            "description": "Optional fees",
            "examples": [
              "This is a sample optional fees"
            ]
          },
          "policies": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policies",
            "description": "Hotel policies",
            "examples": [
              "This is a sample hotel policies"
            ]
          },
          "description": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/HotelDescription"
              },
              {
                "type": "null"
              }
            ],
            "description": "Hotel description",
            "examples": [
              "This is a sample description"
            ]
          },
          "importance": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Importance",
            "description": "Importance ranking",
            "examples": [
              233434
            ]
          },
          "nr_of_rooms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Nr Of Rooms",
            "description": "Number of rooms",
            "examples": [
              250
            ]
          },
          "property_area_sq": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property Area Sq",
            "description": "Property area in sq meters",
            "examples": [
              300000
            ]
          },
          "active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Active",
            "description": "Active status",
            "examples": [
              true
            ]
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "Creation timestamp",
            "examples": [
              "2025-03-21T20:35:43.717023+00:00"
            ]
          },
          "updated_at": {
            "type": "string",
            "title": "Updated At",
            "description": "Last update timestamp",
            "examples": [
              "2025-08-26T12:37:07.210607+00:00"
            ]
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/HotelImageSchema"
            },
            "type": "array",
            "title": "Images",
            "description": "Hotel images"
          },
          "themes": {
            "items": {
              "$ref": "#/components/schemas/HotelThemeSchema"
            },
            "type": "array",
            "title": "Themes",
            "description": "Hotel themes"
          },
          "attributes": {
            "items": {
              "$ref": "#/components/schemas/HotelAttributeSchema"
            },
            "type": "array",
            "title": "Attributes",
            "description": "Hotel attributes"
          },
          "amenities": {
            "items": {
              "$ref": "#/components/schemas/HotelPropertyAmenitySchema"
            },
            "type": "array",
            "title": "Amenities",
            "description": "Hotel amenities"
          },
          "rooms": {
            "items": {
              "$ref": "#/components/schemas/HotelRoomSchema"
            },
            "type": "array",
            "title": "Rooms",
            "description": "Hotel rooms"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "created_at",
          "updated_at"
        ],
        "title": "HotelDetailResponse"
      },
      "HotelImageSchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Image ID",
            "examples": [
              1938121
            ]
          },
          "link": {
            "type": "string",
            "title": "Link",
            "description": "Image URL",
            "examples": [
              "https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/f83fa98d_z.jpg"
            ]
          },
          "caption": {
            "type": "string",
            "title": "Caption",
            "description": "Image caption",
            "examples": [
              "Lobby"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "link",
          "caption"
        ],
        "title": "HotelImageSchema"
      },
      "HotelListResponse": {
        "properties": {
          "country_code": {
            "type": "string",
            "title": "Country Code",
            "description": "Country code",
            "examples": [
              "US"
            ]
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page",
            "description": "Current page number",
            "examples": [
              1
            ]
          },
          "page_size": {
            "type": "integer",
            "title": "Page Size",
            "description": "Page size (fixed at 200)",
            "examples": [
              200
            ]
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total",
            "description": "Total number of properties (not pages). Calculate total pages as: total / page_size",
            "examples": [
              60450
            ]
          },
          "hotels": {
            "items": {
              "$ref": "#/components/schemas/HotelShortInfo"
            },
            "type": "array",
            "title": "Hotels",
            "description": "List of properties"
          }
        },
        "type": "object",
        "required": [
          "country_code",
          "page",
          "page_size",
          "total"
        ],
        "title": "HotelListResponse"
      },
      "HotelPropertyAmenitySchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Amenity ID",
            "examples": [
              59
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Amenity name",
            "examples": [
              "24-hour front desk"
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Value",
            "description": "Amenity value"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "HotelPropertyAmenitySchema"
      },
      "HotelRoomAmenitySchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Room amenity ID",
            "examples": [
              153
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Room amenity name",
            "examples": [
              "Non-smoking"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "HotelRoomAmenitySchema"
      },
      "HotelRoomImageSchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Room image ID",
            "examples": [
              1683306
            ]
          },
          "link": {
            "type": "string",
            "title": "Link",
            "description": "Room image URL",
            "examples": [
              "https://i.travelapi.com/lodging/3000000/2300000/2292900/2292873/af5f733b_z.jpg"
            ]
          },
          "caption": {
            "type": "string",
            "title": "Caption",
            "description": "Room image caption",
            "examples": [
              "Room"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "link",
          "caption"
        ],
        "title": "HotelRoomImageSchema"
      },
      "HotelRoomSchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Room ID",
            "examples": [
              222938
            ]
          },
          "code": {
            "type": "string",
            "title": "Code",
            "description": "Room code",
            "examples": [
              "1"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Room name",
            "examples": [
              "Standard Room"
            ]
          },
          "area_sq": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Area Sq",
            "description": "Room area in sq meters",
            "examples": [
              74
            ]
          },
          "max_occupancy": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Max Occupancy",
            "description": "Maximum occupancy",
            "examples": [
              4
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "description": "Room description",
            "examples": [
              "This is a sample description"
            ]
          },
          "amenities": {
            "items": {
              "$ref": "#/components/schemas/HotelRoomAmenitySchema"
            },
            "type": "array",
            "title": "Amenities",
            "description": "Room amenities"
          },
          "images": {
            "items": {
              "$ref": "#/components/schemas/HotelRoomImageSchema"
            },
            "type": "array",
            "title": "Images",
            "description": "Room images"
          }
        },
        "type": "object",
        "required": [
          "id",
          "code",
          "name"
        ],
        "title": "HotelRoomSchema"
      },
      "HotelShortInfo": {
        "properties": {
          "hotel_id": {
            "type": "integer",
            "title": "Hotel Id",
            "description": "Hotel ID",
            "examples": [
              255450
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Hotel name",
            "examples": [
              "Smyth Tribeca"
            ]
          },
          "city": {
            "type": "string",
            "title": "City",
            "description": "City name",
            "examples": [
              "New York"
            ]
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address",
            "description": "Address",
            "examples": [
              "5th Avenue"
            ]
          },
          "postal_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Postal Code",
            "description": "Postal code",
            "examples": [
              "19404"
            ]
          },
          "country_code": {
            "type": "string",
            "title": "Country Code",
            "description": "Country code ISO 3166-1 alpha-2 format",
            "examples": [
              "US"
            ]
          },
          "coordinates": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CoordinatesSchema"
              },
              {
                "type": "null"
              }
            ],
            "description": "GPS coordinates"
          },
          "last_updated": {
            "type": "string",
            "title": "Last Updated",
            "description": "Last updated timestamp. ISO 8601 format",
            "examples": [
              "2026-11-07T16:00:00Z"
            ]
          }
        },
        "type": "object",
        "required": [
          "hotel_id",
          "name",
          "city",
          "country_code",
          "last_updated"
        ],
        "title": "HotelShortInfo"
      },
      "HotelThemeSchema": {
        "properties": {
          "id": {
            "type": "integer",
            "title": "Id",
            "description": "Theme ID",
            "examples": [
              2334
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Theme name",
            "examples": [
              "Golf property"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "HotelThemeSchema"
      },
      "Occupancy": {
        "properties": {
          "adults": {
            "type": "integer",
            "minimum": 1,
            "title": "Adults",
            "description": "Number of adults"
          },
          "children": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Children",
            "description": "List of children ages (0-17)"
          }
        },
        "type": "object",
        "required": [
          "adults"
        ],
        "title": "Occupancy",
        "description": "Parsed occupancy data"
      },
      "Price": {
        "properties": {
          "without_tax": {
            "type": "string",
            "title": "Without Tax",
            "description": "Price without tax",
            "examples": [
              "3046.84"
            ]
          },
          "taxes": {
            "type": "string",
            "title": "Taxes",
            "description": "Tax amount",
            "examples": [
              "461.67"
            ]
          },
          "sales_taxes": {
            "type": "string",
            "title": "Sales Taxes",
            "description": "Sales tax amount",
            "examples": [
              "0.00"
            ]
          },
          "net": {
            "type": "string",
            "title": "Net",
            "description": "Net price",
            "examples": [
              "3508.51"
            ]
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "description": "Currency code",
            "default": "EUR",
            "examples": [
              "EUR"
            ]
          }
        },
        "type": "object",
        "required": [
          "without_tax",
          "taxes",
          "sales_taxes",
          "net"
        ],
        "title": "Price"
      },
      "PriceCheckResponseForView": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/PriceCheckStatus",
            "description": "Status after the price check.",
            "examples": [
              "PRICE CHANGE"
            ]
          },
          "price": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/Price"
              },
              {
                "type": "null"
              }
            ],
            "description": "In case of price change the new pricing information.",
            "examples": [
              {
                "currency": "EUR",
                "net": "358.25",
                "sales_taxes": "0.00",
                "taxes": "57.10",
                "without_tax": "301.15"
              }
            ]
          },
          "booking_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Booking Id",
            "description": "Booking id which is used as option id to make booking request.",
            "examples": [
              "41db9a7889ffac6b771de3141f2f923c9f655bbab0e415ead9a464e519edf5c0"
            ]
          }
        },
        "type": "object",
        "required": [
          "status"
        ],
        "title": "PriceCheckResponseForView"
      },
      "PriceCheckStatus": {
        "type": "string",
        "enum": [
          "AVAILABLE",
          "NOT AVAILABLE",
          "PRICE CHANGE",
          "POLICY CHANGE"
        ],
        "title": "PriceCheckStatus"
      },
      "Property": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "description": "Property ID",
            "examples": [
              "255450"
            ]
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Overall availability status for the property",
            "examples": [
              "available"
            ]
          },
          "rooms": {
            "items": {
              "$ref": "#/components/schemas/Room"
            },
            "type": "array",
            "title": "Rooms",
            "description": "Available room options"
          }
        },
        "type": "object",
        "required": [
          "property_id",
          "status"
        ],
        "title": "Property"
      },
      "RetrieveBookingNotFound": {
        "properties": {
          "status": {
            "$ref": "#/components/schemas/Status",
            "description": "Status of the booking.",
            "examples": [
              "NOT AVAILABLE"
            ]
          },
          "message": {
            "type": "string",
            "title": "Message",
            "description": "The booking could not be found",
            "examples": [
              "Sorry! We couldn't find your booking with ID: 90."
            ]
          }
        },
        "type": "object",
        "required": [
          "status",
          "message"
        ],
        "title": "RetrieveBookingNotFound"
      },
      "RetrieveBookingResponse": {
        "properties": {
          "booking_id": {
            "type": "integer",
            "title": "Booking Id",
            "description": "Booking ID",
            "examples": [
              938
            ]
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Status of the booking",
            "examples": [
              "CONFIRMED"
            ]
          },
          "guest_contact_number": {
            "type": "string",
            "title": "Guest Contact Number",
            "description": "Guest contact number",
            "examples": [
              "39 56323232"
            ]
          },
          "email": {
            "type": "string",
            "title": "Email",
            "description": "Email of the guest",
            "examples": [
              "francesca.mario@gmail.com"
            ]
          },
          "check_in": {
            "type": "string",
            "title": "Check In",
            "description": "Check-in Date",
            "examples": [
              "2025-12-24"
            ]
          },
          "check_out": {
            "type": "string",
            "title": "Check Out",
            "description": "Check-out Date",
            "examples": [
              "2025-12-27"
            ]
          },
          "cancel_policy": {
            "type": "boolean",
            "title": "Cancel Policy",
            "description": "Whether the booking has a cancel policy",
            "examples": [
              true
            ]
          },
          "penalty_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Penalty Date",
            "description": "Penalty date for booking cancelation",
            "examples": [
              "2025-12-18"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/RetrievePricing",
            "description": "Pricing information"
          },
          "package": {
            "type": "boolean",
            "title": "Package",
            "description": "Whether this is a package rate. Package rates must be sold together with a transport service (ex. flight, rental car, train, etc.)",
            "examples": [
              true
            ]
          },
          "created_at": {
            "type": "string",
            "title": "Created At",
            "description": "Creation date",
            "examples": [
              "2025-12-15"
            ]
          },
          "custom_fields": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/CustomFieldCorrespondence"
              },
              {
                "additionalProperties": true,
                "type": "object"
              }
            ],
            "title": "Custom Fields",
            "description": "Dynamic custom fields can be added up to 10 fields in type string. These fields can be added for reconciliation purposes and they will be added to the invoices (ex. Order Number: 37484).",
            "examples": [
              {
                "custom_field_1": "Value 1",
                "custom_field_2": "Value 2"
              }
            ]
          },
          "rooms": {
            "items": {
              "$ref": "#/components/schemas/RetrieveRoom"
            },
            "type": "array",
            "title": "Rooms",
            "description": "Information about the booked Room"
          }
        },
        "type": "object",
        "required": [
          "booking_id",
          "status",
          "guest_contact_number",
          "email",
          "check_in",
          "check_out",
          "cancel_policy",
          "penalty_date",
          "price",
          "package",
          "created_at"
        ],
        "title": "RetrieveBookingResponse"
      },
      "RetrievePricing": {
        "properties": {
          "total_amount": {
            "type": "string",
            "title": "Total Amount",
            "description": "Total amount for the booking",
            "examples": [
              "626.34"
            ]
          },
          "currency": {
            "type": "string",
            "title": "Currency",
            "description": "Currency",
            "examples": [
              "USD"
            ]
          },
          "payment_status": {
            "type": "string",
            "title": "Payment Status",
            "description": "Payment Status of the booking",
            "examples": [
              "PAID"
            ]
          }
        },
        "type": "object",
        "required": [
          "total_amount",
          "currency",
          "payment_status"
        ],
        "title": "RetrievePricing"
      },
      "RetrieveRoom": {
        "properties": {
          "room_id": {
            "type": "integer",
            "title": "Room Id",
            "description": "Room ID",
            "examples": [
              938
            ]
          },
          "lead_name": {
            "type": "string",
            "title": "Lead Name",
            "description": "First name of the lead",
            "examples": [
              "Francesca"
            ]
          },
          "lead_last_name": {
            "type": "string",
            "title": "Lead Last Name",
            "description": "Last name of the lead",
            "examples": [
              "Mario"
            ]
          },
          "special_requests": {
            "type": "string",
            "title": "Special Requests",
            "description": "Special Request while booking",
            "examples": [
              "Top floor or away from street"
            ]
          },
          "room_name": {
            "type": "string",
            "title": "Room Name",
            "description": "Name of the room",
            "examples": [
              "1 Bedroom Apartment Sea View Prestige"
            ]
          },
          "bed_type": {
            "type": "string",
            "title": "Bed Type",
            "description": "Type of the bed",
            "examples": [
              "King bed"
            ]
          },
          "treatments": {
            "items": {
              "$ref": "#/components/schemas/RetrieveTreatments"
            },
            "type": "array",
            "title": "Treatments",
            "description": "Treatments"
          },
          "number_of_adults": {
            "type": "integer",
            "title": "Number Of Adults",
            "description": "Number of the adults",
            "examples": [
              2
            ]
          },
          "child_ages": {
            "items": {
              "type": "integer"
            },
            "type": "array",
            "title": "Child Ages",
            "description": "Child ages",
            "examples": [
              [
                2,
                3
              ]
            ]
          }
        },
        "type": "object",
        "required": [
          "room_id",
          "lead_name",
          "lead_last_name",
          "special_requests",
          "room_name",
          "bed_type",
          "number_of_adults",
          "child_ages"
        ],
        "title": "RetrieveRoom"
      },
      "RetrieveTreatments": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Treatment ID",
            "examples": [
              14
            ]
          },
          "name": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name",
            "description": "Treatment ID",
            "examples": [
              {
                "en": "Room_only",
                "it": "Solo pernottamento"
              }
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "RetrieveTreatments"
      },
      "Room": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Unique room option ID. To be used for Price Check.",
            "examples": [
              "a7c414b282c11168f16d5a3260a87238b59e8bf60e24a44bdbc021eacf2145f7"
            ]
          },
          "number_of_rooms": {
            "type": "integer",
            "title": "Number Of Rooms",
            "description": "Number of rooms returned based on requested occupancy. This is the number of rooms that will be booked when passing the above option ID to the booking request.",
            "examples": [
              1
            ]
          },
          "occupancy_of_rooms": {
            "items": {
              "$ref": "#/components/schemas/Occupancy"
            },
            "type": "array",
            "title": "Occupancy Of Rooms",
            "description": "Occupancy of rooms returned based on requested occupancy. This is the occupancy of rooms that will be booked when passing the above option ID to the booking request.",
            "examples": [
              [
                {
                  "adults": 2,
                  "children": []
                }
              ]
            ]
          },
          "room_name": {
            "type": "string",
            "title": "Room Name",
            "description": "Name of the room type",
            "examples": [
              "Studio Suite (Tribeca Suite)"
            ]
          },
          "status": {
            "type": "string",
            "title": "Status",
            "description": "Availability status",
            "examples": [
              "available"
            ]
          },
          "refundable": {
            "type": "boolean",
            "title": "Refundable",
            "description": "Whether the rate is refundable",
            "examples": [
              true
            ]
          },
          "cancel_penalties": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cancel Penalties",
            "description": "Cancellation penalty information. Returned only if the room is refundable. This defines that latest available date and time to cancel the room free of charges. ISO 8601 format.",
            "examples": [
              "2026-11-07T16:00:00Z"
            ]
          },
          "package": {
            "type": "boolean",
            "title": "Package",
            "description": "Whether this is a package rate. Package rates must be sold together with a transport service (ex. flight, rental car, train, etc.)",
            "examples": [
              true
            ]
          },
          "corporate": {
            "type": "boolean",
            "title": "Corporate",
            "description": "Whether this is a corporate rate. Corporate rates are special rates that include special conditions for corporate guests (ex. free breakfast, delayed cancellation deadline, etc)",
            "examples": [
              false
            ]
          },
          "bed_groups": {
            "items": {
              "$ref": "#/components/schemas/BedGroup"
            },
            "type": "array",
            "title": "Bed Groups",
            "description": "Bed configuration information"
          },
          "price": {
            "$ref": "#/components/schemas/Price",
            "description": "Pricing information"
          },
          "treatments": {
            "items": {
              "$ref": "#/components/schemas/Treatment"
            },
            "type": "array",
            "title": "Treatments",
            "description": "Room treatments"
          }
        },
        "type": "object",
        "required": [
          "id",
          "number_of_rooms",
          "occupancy_of_rooms",
          "room_name",
          "status",
          "refundable",
          "package",
          "corporate",
          "price"
        ],
        "title": "Room"
      },
      "RoomRequest": {
        "properties": {
          "lead_first_name": {
            "type": "string",
            "title": "Lead First Name",
            "description": "Lead guest first name. Type - `String`.",
            "examples": [
              "Francesca"
            ]
          },
          "lead_last_name": {
            "type": "string",
            "title": "Lead Last Name",
            "description": "Lead guest last name. Type - `String`.",
            "examples": [
              "Mario"
            ]
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Notes",
            "description": "Any special requests or notes for the room. Type - `String`.",
            "examples": [
              "Top floor or away from street."
            ]
          }
        },
        "type": "object",
        "required": [
          "lead_first_name",
          "lead_last_name"
        ],
        "title": "RoomRequest"
      },
      "Status": {
        "type": "string",
        "enum": [
          "OK",
          "NOT AVAILABLE",
          "PRICE CHANGE",
          "POLICY CHANGE"
        ],
        "title": "Status"
      },
      "Treatment": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id",
            "description": "Treatment category ID",
            "examples": [
              "1"
            ]
          },
          "name": {
            "type": "string",
            "title": "Name",
            "description": "Treatment name",
            "examples": [
              "Room only"
            ]
          }
        },
        "type": "object",
        "required": [
          "id",
          "name"
        ],
        "title": "Treatment"
      }
    }
  }
}