{"openapi":"3.1.0","info":{"title":"Hostel v Hotel API","version":"0.1.0","description":"A fully local, hand-curated decision-framework reference comparing hostels and hotels (cost, privacy, social opportunity, amenities, flexibility, safety), with a recommendation quiz and a rule-of-thumb cost-ratio estimator. No real brand names.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://hostelvhotel.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/hostelvhotel/docs"},"termsOfService":"https://connectorbay.com/hostelvhotel/terms"},"servers":[{"url":"https://hostelvhotel.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/hostelvhotel/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/compare_overview":{"post":{"operationId":"compare_overview","summary":"The full dimension-by-dimension comparison between hostels and hotels: cost, privacy, social opportunity,","description":"The full dimension-by-dimension comparison between hostels and hotels: cost, privacy, social opportunity,\n    typical amenities, booking flexibility, and safety considerations. Use for \"compare hostels and hotels\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"compare_overviewArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/compare_dimension":{"post":{"operationId":"compare_dimension","summary":"Just one comparison dimension in detail. Use for \"how do hostels and hotels compare on privacy\", \"which is","description":"Just one comparison dimension in detail. Use for \"how do hostels and hotels compare on privacy\", \"which is\n    more social, a hostel or a hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dimension":{"description":"A comparison dimension.","examples":["cost","privacy","social opportunity","amenities","flexibility","safety"],"minLength":1,"title":"Dimension","type":"string"}},"required":["dimension"],"title":"compare_dimensionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/amenities_checklist":{"post":{"operationId":"amenities_checklist","summary":"Typical amenities for a hostel or a hotel. Use for \"what amenities does a hostel usually have\", \"what comes","description":"Typical amenities for a hostel or a hotel. Use for \"what amenities does a hostel usually have\", \"what comes\n    with a hotel room\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"accommodation_type":{"description":"'hostel' or 'hotel'.","examples":["hostel","hotel"],"title":"Accommodation Type","type":"string"}},"required":["accommodation_type"],"title":"amenities_checklistArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/recommend_for_profile":{"post":{"operationId":"recommend_for_profile","summary":"A recommendation and reasoning for a stated traveler profile. Use for \"is a hostel or hotel better for a","description":"A recommendation and reasoning for a stated traveler profile. Use for \"is a hostel or hotel better for a\n    solo traveler who wants to meet people\", \"hostel or hotel for a business trip\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"profile":{"description":"A traveler profile.","examples":["solo traveler wanting to meet people","budget backpacker","family","business trip","couple"],"minLength":1,"title":"Profile","type":"string"}},"required":["profile"],"title":"recommend_for_profileArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/cost_ratio_estimate":{"post":{"operationId":"cost_ratio_estimate","summary":"A general rule-of-thumb cost ratio between a hostel dorm bed and a comparable hotel room, and — given a","description":"A general rule-of-thumb cost ratio between a hostel dorm bed and a comparable hotel room, and — given a\n    known hotel price you supply — an illustrative estimated dorm-bed range. Not a live price lookup or a real\n    quoted price for any location. Use for \"roughly how much cheaper is a hostel than a hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"known_hotel_price":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"A hotel room price you already know, to illustrate the ratio against.","title":"Known Hotel Price"}},"title":"cost_ratio_estimateArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/safety_considerations":{"post":{"operationId":"safety_considerations","summary":"Safety considerations specific to a hostel or a hotel. Use for \"is a hostel safe\", \"what should I check for","description":"Safety considerations specific to a hostel or a hotel. Use for \"is a hostel safe\", \"what should I check for\n    safety when booking a hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"accommodation_type":{"description":"'hostel' or 'hotel'.","examples":["hostel","hotel"],"title":"Accommodation Type","type":"string"}},"required":["accommodation_type"],"title":"safety_considerationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/decision_quiz":{"post":{"operationId":"decision_quiz","summary":"Combines a few stated priorities into a simple hostel-vs-hotel verdict with reasons. Use for \"should I book a","description":"Combines a few stated priorities into a simple hostel-vs-hotel verdict with reasons. Use for \"should I book a\n    hostel or hotel for a group of 4 who care about cost\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"prioritize_cost":{"default":false,"description":"Cost is the top priority for this trip.","title":"Prioritize Cost","type":"boolean"},"prioritize_privacy":{"default":false,"description":"Privacy is the top priority for this trip.","title":"Prioritize Privacy","type":"boolean"},"prioritize_social":{"default":false,"description":"Meeting other travelers is a priority.","title":"Prioritize Social","type":"boolean"},"traveling_with_children":{"default":false,"description":"Traveling with young children.","title":"Traveling With Children","type":"boolean"},"group_size":{"default":1,"description":"How many people are traveling together.","maximum":20,"minimum":1,"title":"Group Size","type":"integer"}},"title":"decision_quizArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/booking_tips":{"post":{"operationId":"booking_tips","summary":"Practical booking tips specific to a hostel or a hotel. Use for \"what should I check before booking a","description":"Practical booking tips specific to a hostel or a hotel. Use for \"what should I check before booking a\n    hostel\", \"tips for booking a hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"accommodation_type":{"description":"'hostel' or 'hotel'.","examples":["hostel","hotel"],"title":"Accommodation Type","type":"string"}},"required":["accommodation_type"],"title":"booking_tipsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/family_or_group_considerations":{"post":{"operationId":"family_or_group_considerations","summary":"How the hostel-vs-hotel calculus shifts for families and groups — private family rooms, splitting hotel","description":"How the hostel-vs-hotel calculus shifts for families and groups — private family rooms, splitting hotel\n    costs, shared kitchens. Use for \"hostel or hotel for a family\", \"traveling as a group of friends, hostel or\n    hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"family_or_group_considerationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/accommodation_glossary":{"post":{"operationId":"accommodation_glossary","summary":"Definitions of common accommodation terms — dorm bed, hostel private room, capsule hotel, guesthouse,","description":"Definitions of common accommodation terms — dorm bed, hostel private room, capsule hotel, guesthouse,\n    boutique hotel, star rating. Use for \"what's a capsule hotel\", \"what's a hostel private room\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up; omit to list all.","title":"Term"}},"title":"accommodation_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}