Gondola · Schema

PartnerSearchResponse

TravelRewardsHotel BookingFintechConsumer

Properties

Name Type Description
search_results object
hotel_date_statuses array
result_status string
View JSON Schema on GitHub

JSON Schema

gondola-ai-partner-search-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gondola-ai/json-schema/gondola-ai-partner-search-response-schema.json",
  "title": "PartnerSearchResponse",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gondola-ai-openapi.json#/components/schemas/PartnerSearchResponse",
  "type": "object",
  "properties": {
    "search_results": {
      "$ref": "#/$defs/PartnerHotelSearchResults"
    },
    "hotel_date_statuses": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/HotelDateStatus"
      }
    },
    "result_status": {
      "type": "string",
      "enum": [
        "complete",
        "partial",
        "unavailable"
      ]
    }
  },
  "required": [
    "search_results",
    "hotel_date_statuses",
    "result_status"
  ],
  "$defs": {
    "Coordinates": {
      "title": "Coordinates",
      "description": "Latitude and longitude",
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "additionalProperties": false
    },
    "CurrencyAmount": {
      "type": "object",
      "description": "An amount of money",
      "properties": {
        "value": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "localized_amount": {
          "$ref": "#/$defs/LocalizedCurrencyAmount"
        }
      },
      "required": [
        "value",
        "currency"
      ]
    },
    "ExternalReview": {
      "type": "object",
      "description": "Curated content for a hotel",
      "properties": {
        "id": {
          "type": "integer"
        },
        "vervotech_property_id": {
          "type": "integer"
        },
        "mapped_property_name": {
          "type": "string"
        },
        "source_name": {
          "type": "string",
          "description": "The source of the curated content, e.g. Conde Nast"
        },
        "article_name": {
          "type": "string",
          "description": "The name of the article"
        },
        "source_link": {
          "type": "string",
          "description": "The link to the source of the curated content"
        },
        "content": {
          "type": "string",
          "description": "The content of the curated article"
        },
        "excerpt": {
          "type": "string",
          "description": "An excerpt of the content"
        },
        "date_reviewed": {
          "type": "string",
          "format": "date",
          "description": "The date the article was reviewed"
        }
      },
      "required": [
        "id",
        "vervotech_property_id",
        "mapped_property_name",
        "source_name",
        "article_name",
        "source_link",
        "content"
      ]
    },
    "FilterRate": {
      "type": "object",
      "description": "Lowest rate for a room/bed type filter, with optional room metadata",
      "properties": {
        "total": {
          "$ref": "#/$defs/CurrencyAmount"
        },
        "nightly": {
          "description": "Average nightly rate for this filter, when displayable",
          "$ref": "#/$defs/CurrencyAmount",
          "nullable": true
        },
        "room_name": {
          "type": "string",
          "description": "Name/description of the room with the lowest rate for this filter"
        },
        "image_url": {
          "type": "string",
          "description": "URL of an image of the room with the lowest rate for this filter"
        },
        "area_sq_ft": {
          "type": "integer",
          "description": "Room area in square feet, if available"
        }
      },
      "required": [
        "total",
        "nightly"
      ]
    },
    "HotelAmenity": {
      "title": "Hotel Amenity",
      "description": "An amenity specific to a hotel, in contrast to room amenities or rate amenities.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the amenity"
        }
      },
      "required": [
        "name"
      ]
    },
    "HotelDateStatus": {
      "type": "object",
      "properties": {
        "hotel_id": {
          "type": "integer"
        },
        "checkin": {
          "type": "string",
          "format": "date"
        },
        "checkout": {
          "type": "string",
          "format": "date"
        },
        "status": {
          "type": "string",
          "enum": [
            "available",
            "missing_content",
            "missing_rate",
            "unavailable"
          ]
        },
        "stay_summary": {
          "type": [
            "object",
            "null"
          ],
          "allOf": [
            {
              "$ref": "#/$defs/StaySummary"
            }
          ]
        }
      },
      "required": [
        "hotel_id",
        "checkin",
        "checkout",
        "status"
      ]
    },
    "HotelImage": {
      "title": "Hotel Image",
      "description": "An image of a hotel and its rooms",
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "description": "Category of the image"
        },
        "url": {
          "type": "string",
          "description": "URL of the image"
        }
      },
      "required": [
        "category",
        "url"
      ]
    },
    "HotelTheme": {
      "title": "Hotel Theme",
      "description": "A theme for a hotel",
      "type": "string",
      "enum": [
        "all",
        "adventure sport",
        "beach",
        "boutique",
        "business",
        "casino",
        "city",
        "eco-certified",
        "family",
        "golf",
        "gondola recommended",
        "historic",
        "hot springs",
        "luxury",
        "natural",
        "pet-friendly",
        "romantic",
        "shopping",
        "ski",
        "spa",
        "winery"
      ]
    },
    "LocalizedCurrencyAmount": {
      "type": "object",
      "description": "A localized amount of money (no recursive localization)",
      "properties": {
        "value": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        }
      },
      "required": [
        "value",
        "currency"
      ]
    },
    "PartnerHotelSearchResults": {
      "type": "object",
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PartnerHotelSummary"
          }
        },
        "total_result_count": {
          "type": "integer"
        },
        "available_amenities": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "available_image_categories": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "available_hotel_themes": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HotelTheme"
          }
        },
        "available_transfer_partners": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TransferPartner"
          }
        },
        "recommended_viewport": {
          "$ref": "#/$defs/Viewport"
        },
        "search_region": {
          "$ref": "#/$defs/Viewport"
        }
      },
      "required": [
        "results",
        "total_result_count",
        "available_amenities",
        "available_image_categories",
        "available_hotel_themes"
      ]
    },
    "PartnerHotelSummary": {
      "type": "object",
      "description": "The non-personalized fields of search v3 HotelSummary in the same flat shape as deals results.",
      "properties": {
        "vervotech_property_id": {
          "type": "integer"
        },
        "provider_property_id": {
          "type": "integer"
        },
        "property_name": {
          "type": "string"
        },
        "property_address": {
          "type": "string"
        },
        "city_name": {
          "type": "string"
        },
        "country_code": {
          "type": "string"
        },
        "chain_name": {
          "type": "string"
        },
        "brand_name": {
          "type": "string"
        },
        "supplier_id": {
          "type": "string"
        },
        "coordinates": {
          "$ref": "#/$defs/Coordinates"
        },
        "description": {
          "type": "string"
        },
        "year_built": {
          "type": "integer"
        },
        "year_last_renovated": {
          "type": "integer"
        },
        "stars": {
          "description": "Number of stars",
          "type": "number",
          "format": "float"
        },
        "average_guest_rating": {
          "description": "Average guest rating",
          "type": "number",
          "format": "float"
        },
        "review_count": {
          "description": "The number of reviews for the property",
          "type": "number",
          "format": "integer"
        },
        "category_ratings": {
          "description": "Average ratings across various review categories, e.g. cleanliness, service, etc",
          "type": "array",
          "items": {
            "$ref": "#/$defs/RatingForCategory"
          }
        },
        "hero_image": {
          "description": "URL of hero image",
          "type": "string"
        },
        "loyalty_program": {
          "description": "Name of loyalty program",
          "type": "string"
        },
        "checkin_time": {
          "type": "string"
        },
        "checkout_time": {
          "type": "string"
        },
        "amenities": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HotelAmenity"
          }
        },
        "full_amenities": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HotelAmenity"
          }
        },
        "notable_amenities": {
          "description": "Small, ordered set of decision-useful amenities for hotel detail pages.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "images": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HotelImage"
          }
        },
        "external_reviews": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ExternalReview"
          }
        },
        "hotel_themes": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/HotelTheme"
          }
        },
        "rooms": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoomInfo"
          }
        },
        "desirability_index": {
          "type": "number",
          "description": "A score representing the desirability of the hotel, based on various factors."
        },
        "is_all_inclusive": {
          "type": "boolean",
          "description": "Whether a stay here includes meals, drinks, and activities."
        },
        "is_adults_only": {
          "type": "boolean",
          "description": "Whether the property is adults-only."
        },
        "checkin": {
          "type": "string",
          "format": "date"
        },
        "checkout": {
          "type": "string",
          "format": "date"
        },
        "checkin_str": {
          "type": "string"
        },
        "checkout_str": {
          "type": "string"
        },
        "nights": {
          "type": "integer"
        },
        "lowest_rate": {
          "description": "Lowest total room rate",
          "type": "number",
          "format": "float"
        },
        "lowest_rate_currency": {
          "description": "Currency of lowest rate and nightly rate",
          "type": "string"
        },
        "nightly_rate": {
          "description": "Average nightly rate for the lowest rate",
          "type": "number",
          "format": "float"
        },
        "best_rate": {
          "description": "Lowest total room rate - whether refundable or non-refundable",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "best_nightly_rate": {
          "description": "Average nightly rate for the lowest rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_refundable_rate": {
          "description": "Lowest total room rate - the best of refundable rates",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "refundable_nightly_rate": {
          "description": "Average nightly rate for the lowest refundable rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_non_refundable_rate": {
          "description": "Lowest total room rate - the best of non-refundable rates",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "non_refundable_nightly_rate": {
          "description": "Average nightly rate for the lowest non-refundable rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_suite_rate": {
          "description": "Lowest total suite room rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "suite_nightly_rate": {
          "description": "Average nightly rate for the lowest suite rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "better_rooms_available": {
          "description": "True when the search check-in is within 14 days and Travelport inventory shows rooms at higher tiers than the base room category. Factual signal based on current availability, not a prediction.\n",
          "type": [
            "boolean",
            "null"
          ]
        },
        "lowest_rates_by_filter": {
          "description": "Lowest rates keyed by filter type. Only populated for filters with matching rooms. Room type keys: suite, studio, standard. Bed type keys: 1_king, 1_queen, 2_queens, 2_double_beds.\n",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/FilterRate"
          }
        },
        "lowest_points": {
          "description": "Lowest points for any room at hotel for the search range",
          "type": "integer"
        },
        "lowest_nightly_points": {
          "description": "Average nightly points for the lowest points rate",
          "type": "integer"
        },
        "lowest_points_amount": {
          "$ref": "#/$defs/PointsAmount"
        },
        "proximity": {
          "description": "Distance from search location in m",
          "type": "number",
          "format": "float"
        },
        "points_percentile": {
          "description": "The percentile of the points deal",
          "type": "number"
        },
        "point_redemption_value": {
          "description": "The number of cents per pt",
          "type": "number"
        },
        "cash_percentile": {
          "description": "The percentile of the cash deal",
          "type": "number"
        },
        "cash_deal_score": {
          "description": "The score of the deal. A value between 0 and 10, where 10 is a great deal.",
          "type": "number"
        },
        "points_deal_score": {
          "description": "The score of the deal. A value between 0 and 10, where 10 is a great deal.",
          "type": "number"
        },
        "nights_free": {
          "description": "The number of free nights for the points deal",
          "type": "integer"
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      }
    },
    "PointsAmount": {
      "type": "object",
      "description": "An amount of points",
      "properties": {
        "value": {
          "type": "number"
        },
        "cash_equivalent": {
          "$ref": "#/$defs/CurrencyAmount"
        },
        "conversion_rate": {
          "description": "The conversion rate from points to cash, expressed as cents/pt",
          "type": "number"
        }
      }
    },
    "RatingForCategory": {
      "title": "Rating for Category",
      "description": "A category rating",
      "type": "object",
      "properties": {
        "category": {
          "type": "string",
          "description": "Name of the category"
        },
        "rating": {
          "type": "number",
          "format": "float"
        }
      }
    },
    "RoomInfo": {
      "type": "object",
      "description": "Room information",
      "properties": {
        "room_name": {
          "type": "string"
        },
        "room_layout_type": {
          "$ref": "#/$defs/RoomLayoutType"
        },
        "room_qualifiers": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoomQualifier"
          }
        },
        "bedroom_count": {
          "type": "integer"
        },
        "views": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/RoomView"
          }
        },
        "service_tier": {
          "$ref": "#/$defs/RoomServiceTier"
        },
        "number_of_single_beds": {
          "type": "integer"
        },
        "number_of_twin_beds": {
          "type": "integer"
        },
        "number_of_full_beds": {
          "type": "integer"
        },
        "number_of_queen_beds": {
          "type": "integer"
        },
        "number_of_king_beds": {
          "type": "integer"
        },
        "area_sq_meter": {
          "type": "number"
        },
        "area_sq_ft": {
          "type": "number"
        },
        "accessible": {
          "type": "boolean"
        },
        "smoking": {
          "type": "boolean"
        },
        "number_of_sofa_beds": {
          "type": "integer"
        },
        "corner": {
          "type": "boolean"
        },
        "floor": {
          "type": "string"
        }
      }
    },
    "RoomLayoutType": {
      "type": "string",
      "enum": [
        "Standard",
        "Suite",
        "Studio"
      ]
    },
    "RoomQualifier": {
      "type": "string",
      "enum": [
        "Standard",
        "Deluxe",
        "Presidential",
        "Executive",
        "Penthouse",
        "Bridal",
        "Honeymoon",
        "Junior",
        "Mini",
        "Premium",
        "Premier",
        "Superior",
        "Terrace",
        "Sky Terrace",
        "Residential",
        "Carnegie",
        "Edwardian"
      ]
    },
    "RoomServiceTier": {
      "type": "string",
      "enum": [
        "Club",
        "Concierge",
        "Exec",
        "Executive",
        "Gold",
        "Luxe",
        "ME",
        "Penthouse",
        "Platinum",
        "Premier",
        "Premium",
        "Red",
        "Royal",
        "Royalty",
        "Signature",
        "Standard",
        "Superior",
        "VIP"
      ]
    },
    "RoomView": {
      "type": "string",
      "enum": [
        "Bay",
        "Beach",
        "Canal",
        "City",
        "Courtyard",
        "Desert",
        "Garden",
        "Golf",
        "Harbor",
        "Hill",
        "Lagoon",
        "Lake",
        "Park",
        "Partial lake",
        "Marina",
        "Mountain",
        "Ocean",
        "Partial ocean",
        "Pool",
        "Resort",
        "River",
        "Sea",
        "Partial sea",
        "Water",
        "Valley",
        "Vineyard"
      ]
    },
    "StaySummary": {
      "title": "Stay Summary",
      "description": "A stay summary - used in conjunction with a hotel summary",
      "type": "object",
      "properties": {
        "checkin": {
          "type": "string",
          "format": "date"
        },
        "checkout": {
          "type": "string",
          "format": "date"
        },
        "checkin_str": {
          "type": "string"
        },
        "checkout_str": {
          "type": "string"
        },
        "nights": {
          "type": "integer"
        },
        "lowest_rate": {
          "description": "Lowest total room rate",
          "type": "number",
          "format": "float"
        },
        "lowest_rate_currency": {
          "description": "Currency of lowest rate and nightly rate",
          "type": "string"
        },
        "nightly_rate": {
          "description": "Average nightly rate for the lowest rate",
          "type": "number",
          "format": "float"
        },
        "best_rate": {
          "description": "Lowest total room rate - whether refundable or non-refundable",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "best_nightly_rate": {
          "description": "Average nightly rate for the lowest rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_refundable_rate": {
          "description": "Lowest total room rate - the best of refundable rates",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "refundable_nightly_rate": {
          "description": "Average nightly rate for the lowest refundable rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_non_refundable_rate": {
          "description": "Lowest total room rate - the best of non-refundable rates",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "non_refundable_nightly_rate": {
          "description": "Average nightly rate for the lowest non-refundable rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "lowest_suite_rate": {
          "description": "Lowest total suite room rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "suite_nightly_rate": {
          "description": "Average nightly rate for the lowest suite rate",
          "$ref": "#/$defs/CurrencyAmount"
        },
        "better_rooms_available": {
          "description": "True when the search check-in is within 14 days and Travelport inventory shows rooms at higher tiers than the base room category. Factual signal based on current availability, not a prediction.\n",
          "type": [
            "boolean",
            "null"
          ]
        },
        "lowest_rates_by_filter": {
          "description": "Lowest rates keyed by filter type. Only populated for filters with matching rooms. Room type keys: suite, studio, standard. Bed type keys: 1_king, 1_queen, 2_queens, 2_double_beds.\n",
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/FilterRate"
          }
        },
        "lowest_points": {
          "description": "Lowest points for any room at hotel for the search range",
          "type": "integer"
        },
        "lowest_nightly_points": {
          "description": "Average nightly points for the lowest points rate",
          "type": "integer"
        },
        "lowest_points_amount": {
          "$ref": "#/$defs/PointsAmount"
        },
        "proximity": {
          "description": "Distance from search location in m",
          "type": "number",
          "format": "float"
        },
        "points_percentile": {
          "description": "The percentile of the points deal",
          "type": "number"
        },
        "point_redemption_value": {
          "description": "The number of cents per pt",
          "type": "number"
        },
        "cash_percentile": {
          "description": "The percentile of the cash deal",
          "type": "number"
        },
        "cash_deal_score": {
          "description": "The score of the deal. A value between 0 and 10, where 10 is a great deal.",
          "type": "number"
        },
        "points_deal_score": {
          "description": "The score of the deal. A value between 0 and 10, where 10 is a great deal.",
          "type": "number"
        },
        "nights_free": {
          "description": "The number of free nights for the points deal",
          "type": "integer"
        },
        "tags": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Tag"
          }
        }
      }
    },
    "StayTag": {
      "type": "string",
      "enum": [
        "Great Points Deal",
        "Great Cash Deal",
        "Recommended for You",
        "Highly Rated",
        "Maximum Earnings",
        "Frequent Stays",
        "Closest to Location",
        "Recently Renovated"
      ]
    },
    "Tag": {
      "type": "object",
      "description": "Tag information",
      "properties": {
        "stay_tag": {
          "$ref": "#/$defs/StayTag"
        },
        "tag_reason": {
          "type": "string"
        }
      },
      "required": [
        "stay_tag",
        "tag_reason"
      ]
    },
    "TransferDuration": {
      "title": "Transfer Duration",
      "description": "The duration of a transfer",
      "type": "string",
      "enum": [
        "instant",
        "one_day",
        "two_days",
        "three_days"
      ]
    },
    "TransferPartner": {
      "type": "object",
      "properties": {
        "from_loyalty_program": {
          "type": "string"
        },
        "to_loyalty_program": {
          "type": "string"
        },
        "transfer_ratio": {
          "type": "number",
          "format": "float"
        },
        "transfer_time": {
          "$ref": "#/$defs/TransferDuration"
        }
      },
      "required": [
        "from_loyalty_program",
        "to_loyalty_program",
        "transfer_ratio"
      ]
    },
    "Viewport": {
      "type": "object",
      "properties": {
        "north": {
          "type": "number",
          "format": "float",
          "description": "The north latitude (max)"
        },
        "east": {
          "type": "number",
          "format": "float",
          "description": "The east longitude (max)"
        },
        "south": {
          "type": "number",
          "format": "float",
          "description": "The south latitude (min)"
        },
        "west": {
          "type": "number",
          "format": "float",
          "description": "The west longitude (min)"
        }
      },
      "required": [
        "north",
        "east",
        "south",
        "west"
      ],
      "additionalProperties": false
    }
  }
}

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/gondola-ai-partner-search-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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

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