Brek - Hotel Wholesale Booking

Search hotels, compare room offers and public or masked wholesale rates, then continue on Brek.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
80%
Vollständigkeit des Schemas
93%
Qualität der Benennung
100%
Risiko der Vergiftung
40%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (7)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool 'search_accommodations' description contains placeholder textin search_accommodations
  • MEDIUMTool 'get_accommodation_details' description contains placeholder textin get_accommodation_details
  • MEDIUMTool 'get_accommodation_offers' description contains placeholder textin get_accommodation_offers
  • INFOTool description contains placeholder or incomplete textin search_accommodations
  • INFOTool description contains placeholder or incomplete textin get_accommodation_details
  • INFOTool description contains placeholder or incomplete textin get_accommodation_offers

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,842Tokens (Tool-Definitionen)
~17.2 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.78% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "brek": {
      "url": "https://mcp.brek.com/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.brek.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (3)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢search_accommodations(destination, latitude, longitude, user_locale, user_location_city, ...)

Searches and compares multiple hotels in a city, neighborhood, airport, landmark, or other destination. Every search requires both checkinDate and checkoutDate, or dateIntent=tonight when the user explicitly asks for tonight. If the user supplied neither, ask for stay dates before calling; do not choose dates for them. Supports occupancy, price range, star rating, guest score, property types, amenities, cancellation preference, and sort order. Returns an ordered list with property IDs, hotel facts, masked wholesale price bands, public-rate comparisons, and Brek links. For a follow-up by position or partial hotel name, match against the most recent relevant search list. If one hotel matches, copy its propertyId exactly into get_accommodation_details or get_accommodation_offers; never shorten, combine, or replace IDs with placeholders. If the ID is unavailable, pass hotelName and optional destination instead. If several hotels match, ask which hotel the user means. Intended for destination discovery and multi-hotel comparison; room-level offers for one property are not included. Exact private wholesale prices are available on Brek.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "destination": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160,
      "description": "City, neighborhood, airport, landmark, or other broad destination."
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Optional latitude when already known."
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Optional longitude when already known."
    },
    "user_locale": {
      "type": "string",
      "minLength": 2,
      "maxLength": 35,
      "description": "Optional traveler locale from the Claude client context, such as en-US. Omit if unavailable; do not infer it from the hotel destination."
    },
    "user_location_city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Optional approximate traveler city supplied by the Claude client. Omit if unavailable; this is not the hotel destination."
    },
    "user_location_country": {
      "type": "string",
      "minLength": 2,
      "maxLength": 2,
      "description": "Optional two-letter traveler country supplied by the Claude client, such as US. Omit if unavailable; do not infer it from the hotel destination."
    },
    "user_location_region": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Optional traveler state or region supplied by the Claude client. Omit if unavailable; do not infer it from the hotel destination."
    },
    "user_location_timezone": {
      "type": "string",
      "minLength": 3,
      "maxLength": 80,
      "description": "Optional IANA timezone of the traveler supplied by the Claude client. Omit if unavailable; this does not set the hotel's local stay dates."
    },
    "checkinDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
    },
    "checkoutDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
    },
    "dateIntent": {
      "type": "string",
      "enum": [
        "tonight"
      ],
      "description": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
    },
    "timeZone": {
      "type": "string",
      "minLength": 3,
      "maxLength": 80,
      "description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 16,
      "description": "Total adult guests. When omitted, Brek defaults to 2 adults per room."
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "maximum": 8,
      "description": "Total child guests; when omitted, uses childrenAges.length."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 17
      },
      "maxItems": 8,
      "default": [],
      "description": "Age of every child at check-in. The array length must equal children."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3,
      "default": 1,
      "description": "Number of rooms. Each room receives the default of 2 adults when adults is omitted."
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
    },
    "page": {
      "type": "integer",
      "minimum": 1,
      "default": 1
    },
    "sort": {
      "type": "string",
      "enum": [
        "top-picks",
        "distance",
        "total",
        "total-desc",
        "reviews"
      ],
      "default": "top-picks",
      "description": "Result order: top-picks, distance, total price ascending, total price descending, or guest reviews."
    },
    "minimumPrice": {
      "type": "number",
      "minimum": 0,
      "description": "Minimum nightly price in the selected currency."
    },
    "maximumPrice": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Maximum nightly price in the selected currency."
    },
    "minimumStarRating": {
      "type": "number",
      "minimum": 1,
      "maximum": 5,
      "description": "Minimum hotel star classification from 1 to 5; distinct from guest review score."
    },
    "starRatings": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 1,
        "maximum": 5
      },
      "maxItems": 5,
      "description": "Exact accepted hotel star classifications."
    },
    "minimumReviewScore": {
      "type": "number",
      "minimum": 0,
      "maximum": 10,
      "description": "Minimum guest review score out of 10; distinct from hotel star classification."
    },
    "propertyTypes": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "hotel",
          "motel",
          "resort",
          "hostel",
          "apartment",
          "apart-hotel",
          "extended-stay",
          "condo",
          "studio",
          "house",
          "townhome",
          "guesthouse",
          "bed-and-breakfast",
          "villa",
          "cabin",
          "cottage",
          "campground",
          "rv",
          "estate",
          "boat",
          "chateau",
          "hotel-suites",
          "corporate-apartment",
          "farm-house",
          "lodge",
          "barn",
          "mobile-home",
          "house-boat",
          "castle",
          "mas",
          "tower",
          "mill",
          "building"
        ]
      },
      "maxItems": 12,
      "description": "Accepted accommodation types, such as hotel, motel, resort, hostel, or apartment."
    },
    "freeCancellationOnly": {
      "type": "boolean",
      "default": false,
      "description": "Whether results require free cancellation or refundable rates."
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "pool",
          "parking",
          "wifi",
          "free-wifi",
          "kitchen",
          "fireplace",
          "beachfront",
          "washer",
          "dryer",
          "air-conditioning",
          "tv",
          "heating",
          "family-friendly",
          "kids-friendly",
          "pet-friendly",
          "hot-tub",
          "free-breakfast",
          "free-cancellation",
          "laundry-in-unit",
          "laundry-on-site",
          "accessible",
          "for-couples",
          "solarium",
          "long-term-deals",
          "pay-over-time",
          "accept-local"
        ]
      },
      "maxItems": 12,
      "description": "Amenities required in every result."
    }
  },
  "required": [
    "destination"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "stay_dates_required",
        "stay_dates_invalid",
        "destination_not_found"
      ]
    },
    "message": {
      "type": "string"
    },
    "requiredInput": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "checkinDate",
          "checkoutDate",
          "destination"
        ]
      }
    },
    "accommodations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "address": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "stateCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "propertyType": {
            "type": [
              "string",
              "null"
            ]
          },
          "imageUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "latitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "longitude": {
            "type": [
              "number",
              "null"
            ]
          },
          "starRating": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewScore": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewScale": {
            "type": [
              "number",
              "null"
            ]
          },
          "reviewCount": {
            "type": [
              "number",
              "null"
            ]
          },
          "ratingLabel": {
            "type": [
              "string",
              "null"
            ]
          },
          "refundable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "highlights": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pointsOfInterest": {
            "type": [
              "string",
              "null"
            ]
          },
          "highlightReview": {
            "type": [
              "string",
              "null"
            ]
          },
          "consecutivePositiveReviewCount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "wholesale": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "availability": {
                "type": "string",
                "enum": [
                  "available",
                  "sold_out"
                ],
                "description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "nightly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "maskedTotal": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currency": {
                "type": "string"
              },
              "includesTaxesAndFees": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "required": [
              "label",
              "url",
              "nightly",
              "total",
              "maskedTotal",
              "currency",
              "includesTaxesAndFees"
            ],
            "additionalProperties": false
          },
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/properties/accommodations/items/properties/wholesale"
              },
              {
                "type": "null"
              }
            ]
          },
          "savings": {
            "type": [
              "number",
              "null"
            ]
          },
          "savingsPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "detailsUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "availabilityToken": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "address",
          "city",
          "stateCode",
          "propertyType",
          "imageUrl",
          "images",
          "latitude",
          "longitude",
          "starRating",
          "reviewScore",
          "reviewScale",
          "reviewCount",
          "ratingLabel",
          "refundable",
          "highlights",
          "pointsOfInterest",
          "highlightReview",
          "consecutivePositiveReviewCount",
          "wholesale",
          "comparison",
          "savings",
          "savingsPercent",
          "detailsUrl",
          "availabilityToken"
        ],
        "additionalProperties": false
      }
    },
    "page": {
      "type": "integer"
    },
    "total": {
      "type": "integer"
    },
    "totalPages": {
      "type": "integer"
    },
    "search": {
      "type": "object",
      "properties": {
        "destination": {
          "type": "string"
        },
        "checkinDate": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "adults": {
          "type": "integer"
        },
        "children": {
          "type": "integer"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "rooms": {
          "type": "integer"
        },
        "currency": {
          "type": "string"
        },
        "sort": {
          "type": "string",
          "enum": [
            "top-picks",
            "distance",
            "total",
            "total-desc",
            "reviews"
          ]
        }
      },
      "required": [
        "destination",
        "checkinDate",
        "checkoutDate",
        "adults",
        "children",
        "childrenAges",
        "rooms",
        "currency",
        "sort"
      ],
      "additionalProperties": false
    },
    "priceDisclosure": {
      "type": "string"
    }
  },
  "required": [
    "accommodations",
    "page",
    "total",
    "totalPages",
    "search",
    "priceDisclosure"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_accommodation_details(propertyId, hotelName, destination, currency)

Returns undated facts for one identified Brek property ID, including address, description, photos, amenities, check-in and checkout times, star rating, and guest-review data. When the user refers to a hotel from a previous search_accommodations result by full or partial name or list position, copy that result's propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. If no exact property ID is available, hotelName and optional destination can identify a unique hotel. No stay dates are needed. Availability, room offers, prices, breakfast, and cancellation terms are not included.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "propertyId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Exact Brek property ID copied from a previous search result. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
    },
    "hotelName": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Hotel name when no propertyId is available; a unique match is required."
    },
    "destination": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160,
      "description": "Optional city or region to disambiguate hotelName."
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "hotel_selection_required",
        "hotel_not_found"
      ]
    },
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "images": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "latitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "longitude": {
      "type": [
        "number",
        "null"
      ]
    },
    "starRating": {
      "type": [
        "number",
        "null"
      ]
    },
    "reviewScore": {
      "type": [
        "number",
        "null"
      ]
    },
    "reviewScale": {
      "type": [
        "number",
        "null"
      ]
    },
    "reviewCount": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "highlights": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "checkinFrom": {
      "type": [
        "string",
        "null"
      ]
    },
    "checkoutUntil": {
      "type": [
        "string",
        "null"
      ]
    },
    "propertyType": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "name",
    "address",
    "description",
    "images",
    "latitude",
    "longitude",
    "starRating",
    "reviewScore",
    "reviewScale",
    "reviewCount",
    "highlights",
    "amenities",
    "checkinFrom",
    "checkoutUntil",
    "propertyType"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_accommodation_offers(propertyId, hotelName, destination, checkinDate, checkoutDate, ...)

Returns one named or identified hotel's full-stay property data and live room offers for specified dates and occupancy. When the user refers to a hotel from a previous search_accommodations result by list position or partial name, copy its propertyId exactly if the match is unique; never shorten, combine, or use a placeholder ID. Ask for clarification if several hotels match. Use hotelName and optional destination when no exact propertyId is available. Includes wholesale room types and photos, breakfast, refundability, cancellation terms, public-rate comparisons, masked wholesale rate bands, and Brek links. Public-only room types are excluded. Wholesale options priced above their public comparison are marked sold_out without a price; the public comparison remains available. Single-room and multi-room stays are supported through aggregate occupancy plus optional per-room arrangements. Exact private wholesale prices are available on Brek.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "propertyId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Exact Brek property ID copied from a previous search result or Brek stay URL. Do not guess, truncate, combine, or pass a placeholder; use hotelName if unsure."
    },
    "hotelName": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Exact hotel name when propertyId is unavailable."
    },
    "destination": {
      "type": "string",
      "minLength": 2,
      "maxLength": 160,
      "description": "Optional city or region for disambiguating hotelName."
    },
    "checkinDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Required with checkoutDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
    },
    "checkoutDate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Required with checkinDate unless the user explicitly requested tonight. Use YYYY-MM-DD."
    },
    "dateIntent": {
      "type": "string",
      "enum": [
        "tonight"
      ],
      "description": "Use only when the user explicitly requests tonight. Resolves check-in as the current local date and check-out as the following date; otherwise provide both stay dates."
    },
    "timeZone": {
      "type": "string",
      "minLength": 3,
      "maxLength": 80,
      "description": "Optional IANA time-zone fallback for resolving relative stay dates; destination or property location takes precedence."
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "maximum": 16,
      "default": 2,
      "description": "Total adult guests."
    },
    "childrenAges": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 17
      },
      "maxItems": 8,
      "default": [],
      "description": "Age of each child at check-in."
    },
    "rooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3,
      "default": 1,
      "description": "Number of rooms. Each room requires at least one adult."
    },
    "roomArrangements": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 8,
            "description": "Adults staying in this specific room."
          },
          "childrenAges": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 8,
            "default": [],
            "description": "Ages of children staying in this specific room."
          },
          "infants": {
            "type": "integer",
            "minimum": 0,
            "maximum": 4,
            "default": 0,
            "description": "Number of infants staying in this room."
          }
        },
        "required": [
          "adults"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "maxItems": 3,
      "description": "Exact per-room occupancy. Example: room 1 has 2 adults and room 2 has 2 adults plus children ages 4 and 2 => [{adults:2,childrenAges:[],infants:0},{adults:2,childrenAges:[4,2],infants:0}]. Array length equals rooms, and aggregate guests equal adults and childrenAges."
    },
    "availabilityToken": {
      "type": "string",
      "maxLength": 500
    },
    "currency": {
      "type": "string",
      "minLength": 3,
      "maxLength": 3,
      "description": "Only specify a currency when the traveler explicitly requests one. Otherwise omit it so Brek can use the visitor country, then locale, then USD. Supported: EUR, USD, INR, GBP, AUD, CAD, ARS, TRY, COP, CLP, SEK, MXN, IDR, BRL."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "const": "hotel_not_found"
    },
    "propertyId": {
      "type": "string"
    },
    "property": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "hotel_selection_required",
            "hotel_not_found"
          ]
        },
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "address": {
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "images": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "latitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "longitude": {
          "type": [
            "number",
            "null"
          ]
        },
        "starRating": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewScore": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewScale": {
          "type": [
            "number",
            "null"
          ]
        },
        "reviewCount": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "highlights": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "amenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "checkinFrom": {
          "type": [
            "string",
            "null"
          ]
        },
        "checkoutUntil": {
          "type": [
            "string",
            "null"
          ]
        },
        "propertyType": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "id",
        "name",
        "address",
        "description",
        "images",
        "latitude",
        "longitude",
        "starRating",
        "reviewScore",
        "reviewScale",
        "reviewCount",
        "highlights",
        "amenities",
        "checkinFrom",
        "checkoutUntil",
        "propertyType"
      ],
      "additionalProperties": false
    },
    "offers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "propertyId": {
            "type": "string"
          },
          "roomTypeName": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "images": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "beds": {
            "type": [
              "string",
              "null"
            ]
          },
          "roomSize": {
            "type": [
              "string",
              "null"
            ]
          },
          "occupancyMax": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "breakfastIncluded": {
            "type": "boolean"
          },
          "refundable": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "cancellationSummary": {
            "type": [
              "string",
              "null"
            ]
          },
          "wholesale": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "availability": {
                "type": "string",
                "enum": [
                  "available",
                  "sold_out"
                ],
                "description": "Wholesale display availability. A wholesale rate higher than its public comparison is sold_out and has no price or booking action."
              },
              "url": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "nightly": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "total": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "maskedTotal": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currency": {
                "type": "string"
              },
              "includesTaxesAndFees": {
                "type": [
                  "boolean",
                  "null"
                ]
              }
            },
            "required": [
              "label",
              "url",
              "nightly",
              "total",
              "maskedTotal",
              "currency",
              "includesTaxesAndFees"
            ],
            "additionalProperties": false
          },
          "comparison": {
            "anyOf": [
              {
                "$ref": "#/properties/offers/items/properties/wholesale"
              },
              {
                "type": "null"
              }
            ]
          },
          "savings": {
            "type": [
              "number",
              "null"
            ]
          },
          "savingsPercent": {
            "type": [
              "number",
              "null"
            ]
          },
          "upgradeTotal": {
            "type": [
              "number",
              "null"
            ]
          },
          "upgradeMaskedTotal": {
            "type": [
              "string",
              "null"
            ]
          },
          "payAtProperty": {
            "type": [
              "string",
              "null"
            ]
          },
          "detailsUrl": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "propertyId",
          "roomTypeName",
          "name",
          "description",
          "images",
          "beds",
          "roomSize",
          "occupancyMax",
          "amenities",
          "breakfastIncluded",
          "refundable",
          "cancellationSummary",
          "wholesale",
          "comparison",
          "savings",
          "savingsPercent",
          "upgradeTotal",
          "upgradeMaskedTotal",
          "payAtProperty",
          "detailsUrl"
        ],
        "additionalProperties": false
      }
    },
    "stay": {
      "type": "object",
      "properties": {
        "checkinDate": {
          "type": "string"
        },
        "checkoutDate": {
          "type": "string"
        },
        "adults": {
          "type": "integer"
        },
        "children": {
          "type": "integer"
        },
        "childrenAges": {
          "type": "array",
          "items": {
            "type": "integer"
          }
        },
        "rooms": {
          "type": "integer"
        },
        "roomArrangements": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "adults": {
                "type": "integer"
              },
              "childrenAges": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "infants": {
                "type": "integer"
              }
            },
            "required": [
              "adults",
              "childrenAges",
              "infants"
            ],
            "additionalProperties": false
          }
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "checkinDate",
        "checkoutDate",
        "adults",
        "children",
        "childrenAges",
        "rooms",
        "roomArrangements",
        "currency"
      ],
      "additionalProperties": false
    },
    "priceDisclosure": {
      "type": "string"
    }
  },
  "required": [
    "propertyId",
    "property",
    "offers",
    "stay",
    "priceDisclosure"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet3 Tools