{"openapi":"3.1.0","info":{"title":"Layover Guide API","version":"0.1.0","description":"A fully local, hand-curated general methodology for planning an airport layover — actual free-time budgeting, a leave-the-airport decision framework, and a handful of verified major-airport transit-tour programs.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://layoverguide.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/layoverguide/docs"},"termsOfService":"https://connectorbay.com/layoverguide/terms"},"servers":[{"url":"https://layoverguide.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/layoverguide/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/methodology_overview":{"post":{"operationId":"methodology_overview","summary":"The core methodology: ticketed layover time is not free time — immigration, security, terminal transfers and","description":"The core methodology: ticketed layover time is not free time — immigration, security, terminal transfers and\n    a boarding-cutoff buffer all eat into it first. Use for \"how should I think about planning a layover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"methodology_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/layover_time_budget":{"post":{"operationId":"layover_time_budget","summary":"Computes your actual free time during a layover after subtracting the buffers that apply — immigration,","description":"Computes your actual free time during a layover after subtracting the buffers that apply — immigration,\n    security, a terminal change, and a boarding-cutoff buffer. Use for \"how much free time do I actually have on a 6\n    hour layover with immigration and a terminal change\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"total_layover_minutes":{"description":"Total scheduled layover time in minutes.","examples":[360],"exclusiveMinimum":0,"title":"Total Layover Minutes","type":"number"},"requires_immigration":{"default":false,"description":"You must clear immigration/customs during this layover.","title":"Requires Immigration","type":"boolean"},"requires_security":{"default":false,"description":"You must pass through security again.","title":"Requires Security","type":"boolean"},"terminal_change":{"default":false,"description":"Your connecting flight is in a different terminal.","title":"Terminal Change","type":"boolean"},"boarding_cutoff_buffer_minutes":{"default":45.0,"description":"Buffer to be at the gate before departure.","minimum":0,"title":"Boarding Cutoff Buffer Minutes","type":"number"},"immigration_minutes":{"default":45.0,"description":"Planning estimate for immigration/customs time.","minimum":0,"title":"Immigration Minutes","type":"number"},"security_minutes":{"default":30.0,"description":"Planning estimate for security screening time.","minimum":0,"title":"Security Minutes","type":"number"},"terminal_change_minutes":{"default":25.0,"description":"Planning estimate for a terminal transfer.","minimum":0,"title":"Terminal Change Minutes","type":"number"}},"required":["total_layover_minutes"],"title":"layover_time_budgetArguments","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/leave_airport_decision":{"post":{"operationId":"leave_airport_decision","summary":"A rule-based framework judging whether leaving the airport during this layover is generally favorable, risky,","description":"A rule-based framework judging whether leaving the airport during this layover is generally favorable, risky,\n    or not possible, given your free time, ticket type, baggage, and visa situation. Use for \"should I leave the\n    airport during my layover\", \"is it worth leaving the airport for 4 hours\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"free_minutes_after_buffers":{"description":"Free time in minutes, after layover_time_budget's buffers.","examples":[240],"minimum":0,"title":"Free Minutes After Buffers","type":"number"},"single_ticket_itinerary":{"default":true,"description":"Both flights are on one ticket/reservation (not a self-transfer).","title":"Single Ticket Itinerary","type":"boolean"},"bags_checked_through":{"default":true,"description":"Checked bags go straight to your final destination.","title":"Bags Checked Through","type":"boolean"},"has_required_visa_or_not_needed":{"default":true,"description":"You hold any visa this stop would require, or none is needed.","title":"Has Required Visa Or Not Needed","type":"boolean"}},"required":["free_minutes_after_buffers"],"title":"leave_airport_decisionArguments","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/buffer_time_recommendations":{"post":{"operationId":"buffer_time_recommendations","summary":"General minimum-connection-time planning ranges by connection type (domestic-domestic, involving a terminal","description":"General minimum-connection-time planning ranges by connection type (domestic-domestic, involving a terminal\n    change, airside international, or requiring immigration). Use for \"how much layover time should I book\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"buffer_time_recommendationsArguments","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/self_transfer_risk_note":{"post":{"operationId":"self_transfer_risk_note","summary":"Explains what a 'self-transfer' is and the real rebooking/baggage risk versus a single-ticket connection.","description":"Explains what a 'self-transfer' is and the real rebooking/baggage risk versus a single-ticket connection.\n    Use for \"is it risky to book a self-transfer\", \"what's a self-transfer flight\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"self_transfer_risk_noteArguments","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/luggage_considerations":{"post":{"operationId":"luggage_considerations","summary":"General guidance on checked-bag and carry-on planning for a layover, including the self-transfer baggage","description":"General guidance on checked-bag and carry-on planning for a layover, including the self-transfer baggage\n    risk. Use for \"do I need to collect my bags during a layover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"luggage_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/activities_by_duration":{"post":{"operationId":"activities_by_duration","summary":"General guidance for a free-time bracket: under 2 hours, 2-4 hours, 4-8 hours, or 8+ hours. Use for \"what","description":"General guidance for a free-time bracket: under 2 hours, 2-4 hours, 4-8 hours, or 8+ hours. Use for \"what\n    should I do with a 3 hour layover\", \"I have 6 hours free, what can I actually do\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"free_hours":{"description":"Your actual free time in hours, after buffers.","examples":[5],"minimum":0,"title":"Free Hours","type":"number"}},"required":["free_hours"],"title":"activities_by_durationArguments","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/airport_program_lookup":{"post":{"operationId":"airport_program_lookup","summary":"A real, verified major-airport transit-tour program's eligibility, duration, and booking details. Currently","description":"A real, verified major-airport transit-tour program's eligibility, duration, and booking details. Currently\n    covers Singapore Changi's Free Singapore Tour, Turkish Airlines' Touristanbul in Istanbul, and Incheon's Free\n    Transit Tour. Use for \"what's the Changi free tour\", \"how does Touristanbul work\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airport":{"description":"An airport or program name.","examples":["Singapore Changi","Istanbul","Incheon"],"minLength":1,"title":"Airport","type":"string"}},"required":["airport"],"title":"airport_program_lookupArguments","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/program_list":{"post":{"operationId":"program_list","summary":"Every verified airport transit-tour program covered. Use for \"which airports have a free layover tour\".","description":"Every verified airport transit-tour program covered. Use for \"which airports have a free layover tour\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"program_listArguments","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/layover_glossary":{"post":{"operationId":"layover_glossary","summary":"Definitions of common layover terms — Minimum Connection Time, self-transfer, airside, landside, through-","description":"Definitions of common layover terms — Minimum Connection Time, self-transfer, airside, landside, through-\n    checked baggage, stopover. Use for \"what's MCT\", \"what does airside mean\".","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":"layover_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}}}}