← WebMCP Directory

Tool tree

journey.com

Travel & EventsTools verified
Website
Journey Rewards is a loyalty program for independent luxury hotels, resorts and private rentals worldwide, with points, member perks and stay booking.
Explore capabilities
    search_propertiesAnswer

    Search Journey stays with live quotes for the requested dates and occupancy. Cards show full-stay totals including published taxes and mandatory fees, published member rates and comparable savings even before connection, and property-specific points earning. Missing quote fields never become zero or an undated replacement. With no dates, date_basis=sample quotes the explicitly displayed sample window. If fewer than three stays are available, nearby ±1-day alternatives are returned separately unless flexible_dates=false. Never silently change dates; ask the human before choosing an alternative. Use get_property with dates to open detailed pricing, amenities, location, stay inclusions and Journey Ambassador benefits. Agents never pay.

    View tool JSON
    {
      "name": "search_properties",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search Journey stays with live quotes for the requested dates and occupancy. Cards show full-stay totals including published taxes and mandatory fees, published member rates and comparable savings even before connection, and property-specific points earning. Missing quote fields never become zero or an undated replacement. With no dates, date_basis=sample quotes the explicitly displayed sample window. If fewer than three stays are available, nearby ±1-day alternatives are returned separately unless flexible_dates=false. Never silently change dates; ask the human before choosing an alternative. Use get_property with dates to open detailed pricing, amenities, location, stay inclusions and Journey Ambassador benefits. Agents never pay.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text destination or property name, e.g. `Aspen, Colorado`, `castle hill inn`, or `Nihi Sumba`."
          },
          "place_id": {
            "type": "string",
            "description": "Google place id from a previous suggestion."
          },
          "property_id": {
            "type": "integer",
            "description": "Numeric Journey property id."
          },
          "bounds": {
            "type": "object",
            "additionalProperties": false,
            "description": "Explicit map viewport. Ignored when `query` or `place_id` is supplied.",
            "properties": {
              "north": {
                "type": "number"
              },
              "south": {
                "type": "number"
              },
              "east": {
                "type": "number"
              },
              "west": {
                "type": "number"
              }
            },
            "required": [
              "north",
              "south",
              "east",
              "west"
            ]
          },
          "check_in": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-in date, YYYY-MM-DD."
          },
          "check_out": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-out date, YYYY-MM-DD."
          },
          "flexible_dates": {
            "type": "boolean",
            "default": true,
            "description": "When fewer than three stays are available on the first page, check nearby dates ±1 day and return separately labelled alternatives. Set false for strictly fixed dates. Never silently changes the requested trip."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Adults, default 2."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Children, default 0."
          },
          "child_age": {
            "type": "integer",
            "minimum": 0,
            "maximum": 17,
            "description": "Age in years for a single child (e.g. 5). Prefer `child_ages` for more than one."
          },
          "child_ages": {
            "type": "array",
            "description": "Ages in years for each child, e.g. `[5]`. Flows through search, pricing, availability occupancy, and is echoed on the result. Booking URLs use the site's `children` count.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 20
          },
          "property_types": {
            "type": "array",
            "description": "Filter by stay type.",
            "items": {
              "type": "string",
              "enum": [
                "hotel",
                "residence",
                "unique"
              ]
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25,
            "description": "Results per page, default 12."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Result offset for paging."
          }
        }
      }
    }
    get_propertyAnswer

    Open a detailed Journey property sheet: published PDP descriptions, photos, amenities, dining, location/map coordinates, offers, and live Ambassador benefits from the website entitlements API. Pass both dates and occupancy for live full-stay room quotes, tax/fee breakdowns, same-offer savings, cancellation conditions and points estimates. Existing connected membership personalizes quotes. Program benefits and offers are not guaranteed stay inclusions. Agents never pay.

    View tool JSON
    {
      "name": "get_property",
      "kind": "answer",
      "impl": "imperative",
      "description": "Open a detailed Journey property sheet: published PDP descriptions, photos, amenities, dining, location/map coordinates, offers, and live Ambassador benefits from the website entitlements API. Pass both dates and occupancy for live full-stay room quotes, tax/fee breakdowns, same-offer savings, cancellation conditions and points estimates. Existing connected membership personalizes quotes. Program benefits and offers are not guaranteed stay inclusions. Agents never pay.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id_or_slug": {
            "type": "string",
            "description": "Journey property slug (e.g. `castle-hill-inn`, as it appears in /hotels/{slug} or /residences/{slug}), numeric property id, or documentId."
          },
          "check_in": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Optional check-in date; pass both dates to load live room totals in the detail sheet."
          },
          "check_out": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Optional check-out date."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Adults, default 2."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Children, default 0."
          },
          "child_age": {
            "type": "integer",
            "minimum": 0,
            "maximum": 17,
            "description": "Age in years for a single child (e.g. 5). Prefer `child_ages` for more than one."
          },
          "child_ages": {
            "type": "array",
            "description": "Ages in years for each child, e.g. `[5]`. Flows through search, pricing, availability occupancy, and is echoed on the result. Booking URLs use the site's `children` count.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 20
          }
        },
        "required": [
          "id_or_slug"
        ]
      }
    }
    check_availabilityAnswer

    Night-by-night availability for a stay. `date_from` is check-in and `date_to` is check-out: occupied nights are check-in inclusive and check-out exclusive, so 2026-10-23 → 2026-10-25 is nights 2026-10-23 and 2026-10-24 and `days` equals that length. Includes minimum-stay restrictions where the property supplies them. `available: null` is unpublished (not unknown-but-bookable) and sets `partial_calendar` / `cannot_confirm_stay` when mixed with published nights. `open_for_booking` is the catalog/HDP gate — dated HMS nights can still exist when it is false; see `catalog_vs_hms`. Returns a `booking_url` so the human can complete the stay on journey.com (an account may be required). Agents never pay.

    View tool JSON
    {
      "name": "check_availability",
      "kind": "answer",
      "impl": "imperative",
      "description": "Night-by-night availability for a stay. `date_from` is check-in and `date_to` is check-out: occupied nights are check-in inclusive and check-out exclusive, so 2026-10-23 → 2026-10-25 is nights 2026-10-23 and 2026-10-24 and `days` equals that length. Includes minimum-stay restrictions where the property supplies them. `available: null` is unpublished (not unknown-but-bookable) and sets `partial_calendar` / `cannot_confirm_stay` when mixed with published nights. `open_for_booking` is the catalog/HDP gate — dated HMS nights can still exist when it is false; see `catalog_vs_hms`. Returns a `booking_url` so the human can complete the stay on journey.com (an account may be required). Agents never pay.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id_or_slug": {
            "type": "string",
            "description": "Journey property slug (e.g. `castle-hill-inn`, as it appears in /hotels/{slug} or /residences/{slug}), numeric property id, or documentId."
          },
          "date_from": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-in date, YYYY-MM-DD. First occupied night."
          },
          "date_to": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-out date, YYYY-MM-DD. Exclusive of the last occupied night. Max 90 nights after `date_from`."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Adults, default 2."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Children, default 0."
          },
          "child_age": {
            "type": "integer",
            "minimum": 0,
            "maximum": 17,
            "description": "Age in years for a single child (e.g. 5). Prefer `child_ages` for more than one."
          },
          "child_ages": {
            "type": "array",
            "description": "Ages in years for each child, e.g. `[5]`. Flows through search, pricing, availability occupancy, and is echoed on the result. Booking URLs use the site's `children` count.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 20
          }
        },
        "required": [
          "id_or_slug",
          "date_from",
          "date_to"
        ]
      }
    }
    get_pricingAnswer

    See Rooms and Prices: live room quotes with room photos, descriptions, capacity, and explicit parent hotel context for the requested dates and occupancy. Call when a human chooses a hotel. Residence results describe the whole residence, not hotel rooms. Public Rate and Member Rate compare the same room, rate conditions and full stay including taxes and mandatory fees only when comparison.comparable is true. Missing fee data prevents a total or savings claim. No undated catalog teaser is substituted. Includes published member prices before connection, cancellation, earning multiplier and total points, pay-with-points counts or labeled estimates, and booking links. Call get_member_pricing for connected member quotes; get_property with the dates loads full property and Ambassador benefits. Read-only; agents never pay.

    View tool JSON
    {
      "name": "get_pricing",
      "kind": "answer",
      "impl": "imperative",
      "description": "See Rooms and Prices: live room quotes with room photos, descriptions, capacity, and explicit parent hotel context for the requested dates and occupancy. Call when a human chooses a hotel. Residence results describe the whole residence, not hotel rooms. Public Rate and Member Rate compare the same room, rate conditions and full stay including taxes and mandatory fees only when comparison.comparable is true. Missing fee data prevents a total or savings claim. No undated catalog teaser is substituted. Includes published member prices before connection, cancellation, earning multiplier and total points, pay-with-points counts or labeled estimates, and booking links. Call get_member_pricing for connected member quotes; get_property with the dates loads full property and Ambassador benefits. Read-only; agents never pay.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id_or_slug": {
            "type": "string",
            "description": "Journey property slug (e.g. `castle-hill-inn`, as it appears in /hotels/{slug} or /residences/{slug}), numeric property id, or documentId."
          },
          "check_in": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-in date, YYYY-MM-DD."
          },
          "check_out": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-out date, YYYY-MM-DD."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Adults, default 2."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Children, default 0."
          },
          "child_age": {
            "type": "integer",
            "minimum": 0,
            "maximum": 17,
            "description": "Age in years for a single child (e.g. 5). Prefer `child_ages` for more than one."
          },
          "child_ages": {
            "type": "array",
            "description": "Ages in years for each child, e.g. `[5]`. Flows through search, pricing, availability occupancy, and is echoed on the result. Booking URLs use the site's `children` count.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 20
          }
        },
        "required": [
          "id_or_slug",
          "check_in",
          "check_out"
        ]
      }
    }
    search_experiencesAnswer

    Things to do, restaurants and seasonal events around a Journey destination, plus on-site dining at a specific property. Pass `destination` as a Journey destination path (e.g. `united-states/colorado/aspen`) or pass `id_or_slug` for a property's own experiences.

    View tool JSON
    {
      "name": "search_experiences",
      "kind": "answer",
      "impl": "imperative",
      "description": "Things to do, restaurants and seasonal events around a Journey destination, plus on-site dining at a specific property. Pass `destination` as a Journey destination path (e.g. `united-states/colorado/aspen`) or pass `id_or_slug` for a property's own experiences.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "destination": {
            "type": "string",
            "description": "Journey destination path, `{country}/{region}/{city}`, matching /destinations/{country}/{region}/{city}."
          },
          "id_or_slug": {
            "type": "string",
            "description": "Journey property slug (e.g. `castle-hill-inn`, as it appears in /hotels/{slug} or /residences/{slug}), numeric property id, or documentId."
          },
          "query": {
            "type": "string",
            "description": "Optional keyword filter applied to names and descriptions."
          },
          "kinds": {
            "type": "array",
            "description": "Restrict the result categories. Defaults to all.",
            "items": {
              "type": "string",
              "enum": [
                "things_to_do",
                "dining",
                "events",
                "on_site_dining"
              ]
            }
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max results per category, default 10."
          }
        }
      }
    }
    get_agent_briefAnswer

    Orientation for an AI agent: what Journey Rewards is, what makes it different for travellers and for hotel operators, the rules of engagement for agents, how to cite Journey, live catalog totals, and `booking.note` (the stay completes on journey.com; an account may be required to reserve). Call this once at the start of a Journey-related task.

    View tool JSON
    {
      "name": "get_agent_brief",
      "kind": "answer",
      "impl": "imperative",
      "description": "Orientation for an AI agent: what Journey Rewards is, what makes it different for travellers and for hotel operators, the rules of engagement for agents, how to cite Journey, live catalog totals, and `booking.note` (the stay completes on journey.com; an account may be required to reserve). Call this once at the start of a Journey-related task.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "audience": {
            "type": "string",
            "enum": [
              "traveler",
              "hotel",
              "general"
            ],
            "description": "Who you are helping. `hotel` returns the Journey Alliance pitch for a property operator evaluating loyalty programs."
          }
        }
      }
    }
    start_member_sign_inAction

    Connect Journey to this chat to access personalized member pricing, benefits, wallet, awards and trips. Offer on first Journey use, and call once to present the optional connection action; continue public discovery if declined or unsuccessful. If disconnected, triggers the chat app's OAuth Authenticate/Connect button. The human signs in on Journey and approves access, then the connector resumes here. Never collect passwords, codes or tokens. In WebMCP, returns the Journey sign-in URL for this browser.

    View tool JSON
    {
      "name": "start_member_sign_in",
      "kind": "act",
      "impl": "imperative",
      "description": "Connect Journey to this chat to access personalized member pricing, benefits, wallet, awards and trips. Offer on first Journey use, and call once to present the optional connection action; continue public discovery if declined or unsuccessful. If disconnected, triggers the chat app's OAuth Authenticate/Connect button. The human signs in on Journey and approves access, then the connector resumes here. Never collect passwords, codes or tokens. In WebMCP, returns the Journey sign-in URL for this browser.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "redirect_path": {
            "type": "string",
            "description": "Optional path on journey.com to open after sign-in, e.g. `/benefits`. Must be a Journey path, not a credential."
          }
        }
      }
    }
    start_member_sign_upAction

    Connect or join Journey using the chat app's secure OAuth flow. The human can sign up on Journey, approve read-only access, then return to this chat. Never collect passwords, codes or tokens. In WebMCP, returns the Journey sign-up URL for this browser.

    View tool JSON
    {
      "name": "start_member_sign_up",
      "kind": "act",
      "impl": "imperative",
      "description": "Connect or join Journey using the chat app's secure OAuth flow. The human can sign up on Journey, approve read-only access, then return to this chat. Never collect passwords, codes or tokens. In WebMCP, returns the Journey sign-up URL for this browser.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "redirect_path": {
            "type": "string",
            "description": "Optional path on journey.com to open after sign-up, e.g. `/benefits`. Must be a Journey path, not a credential."
          }
        }
      }
    }
    create_booking_linkSensitive Action

    Build a journey.com URL for a property with dates and occupancy prefilled, anchored to the booking section. This does NOT book anything: hand the link to the human. The stay completes on journey.com and a Journey account may be required to reserve. Agents never pay, never hold inventory and never see card data.

    View tool JSON
    {
      "name": "create_booking_link",
      "kind": "transact",
      "impl": "imperative",
      "description": "Build a journey.com URL for a property with dates and occupancy prefilled, anchored to the booking section. This does NOT book anything: hand the link to the human. The stay completes on journey.com and a Journey account may be required to reserve. Agents never pay, never hold inventory and never see card data.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "id_or_slug": {
            "type": "string",
            "description": "Journey property slug (e.g. `castle-hill-inn`, as it appears in /hotels/{slug} or /residences/{slug}), numeric property id, or documentId."
          },
          "check_in": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-in date, YYYY-MM-DD."
          },
          "check_out": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Check-out date, YYYY-MM-DD."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20,
            "description": "Adults, default 2."
          },
          "children": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "Children, default 0."
          },
          "child_age": {
            "type": "integer",
            "minimum": 0,
            "maximum": 17,
            "description": "Age in years for a single child (e.g. 5). Prefer `child_ages` for more than one."
          },
          "child_ages": {
            "type": "array",
            "description": "Ages in years for each child, e.g. `[5]`. Flows through search, pricing, availability occupancy, and is echoed on the result. Booking URLs use the site's `children` count.",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "maxItems": 20
          },
          "infants": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10
          },
          "pets": {
            "type": "integer",
            "minimum": 0,
            "maximum": 5
          },
          "rooms": {
            "type": "array",
            "description": "Per-room occupancy for a multi-room stay. Omit for a single room.",
            "maxItems": 8,
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "adults": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 20
                },
                "children": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 20
                },
                "pets": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1
                }
              },
              "required": [
                "adults"
              ]
            }
          }
        },
        "required": [
          "id_or_slug"
        ]
      }
    }