{"openapi":"3.1.0","info":{"title":"Flight Rights API","version":"0.1.0","description":"A fully local flight delay/cancellation passenger-rights reference and calculator: EU261 (EU/UK) compensation and care/assistance rules, US DOT automatic-refund requirements, and Canada's APPR compensation tiers, hand-curated and web-verified against each regulator's own text. General information, not legal advice.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://flightrights.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/flightrights/docs"},"termsOfService":"https://connectorbay.com/flightrights/terms"},"servers":[{"url":"https://flightrights.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/flightrights/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/eu261_delay_compensation":{"post":{"operationId":"eu261_delay_compensation","summary":"EU261 (EU/UK) delay compensation: EUR250/400/600 by distance, owed once arrival delay reaches 3 hours,","description":"EU261 (EU/UK) delay compensation: EUR250/400/600 by distance, owed once arrival delay reaches 3 hours,\n    unless caused by extraordinary circumstances. Use for \"my flight was delayed 4 hours over 2000km, am I owed\n    compensation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"distance_km":{"description":"Great-circle flight distance in kilometres.","minimum":0,"title":"Distance Km","type":"number"},"delay_hours":{"description":"How many hours late you actually arrived.","minimum":0,"title":"Delay Hours","type":"number"},"extraordinary_circumstances":{"default":false,"description":"Whether the airline attributes the delay to extraordinary circumstances (severe weather, ATC, security, third-party strikes).","title":"Extraordinary Circumstances","type":"boolean"}},"required":["distance_km","delay_hours"],"title":"eu261_delay_compensationArguments","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/eu261_cancellation_compensation":{"post":{"operationId":"eu261_cancellation_compensation","summary":"EU261 (EU/UK) cancellation compensation, applying the real notice-period + rerouting-window exemptions (14","description":"EU261 (EU/UK) cancellation compensation, applying the real notice-period + rerouting-window exemptions (14\n    days / 7-13 days / under 7 days each have a different rerouting tolerance that excuses compensation). Use for\n    \"airline cancelled my flight 5 days before departure and rebooked me 3 hours later, do I get compensation\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"distance_km":{"description":"Great-circle flight distance in kilometres.","minimum":0,"title":"Distance Km","type":"number"},"notice_days":{"description":"How many days before scheduled departure you were told of the cancellation.","minimum":0,"title":"Notice Days","type":"number"},"reroute_departs_hours_before":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"If rerouted, how many hours earlier the replacement flight departed (omit if no rerouting was offered).","title":"Reroute Departs Hours Before"},"reroute_arrives_hours_after":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"If rerouted, how many hours later the replacement flight arrived.","title":"Reroute Arrives Hours After"},"extraordinary_circumstances":{"default":false,"description":"Whether the airline attributes the cancellation to extraordinary circumstances.","title":"Extraordinary Circumstances","type":"boolean"}},"required":["distance_km","notice_days"],"title":"eu261_cancellation_compensationArguments","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/eu261_care_assistance":{"post":{"operationId":"eu261_care_assistance","summary":"Whether EU261 meal/communication/hotel care and assistance is owed at a given distance and delay length --","description":"Whether EU261 meal/communication/hotel care and assistance is owed at a given distance and delay length --\n    owed regardless of cause (even extraordinary circumstances), unlike cash compensation. Use for \"how long a\n    delay before the airline has to give me a hotel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"distance_km":{"description":"Great-circle flight distance in kilometres.","minimum":0,"title":"Distance Km","type":"number"},"delay_hours":{"description":"How many hours you've been waiting/delayed.","minimum":0,"title":"Delay Hours","type":"number"}},"required":["distance_km","delay_hours"],"title":"eu261_care_assistanceArguments","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/us_refund_eligibility":{"post":{"operationId":"us_refund_eligibility","summary":"Applies US DOT's automatic-refund rule: a cancellation or 'significant change' (3h+ domestic, 6h+","description":"Applies US DOT's automatic-refund rule: a cancellation or 'significant change' (3h+ domestic, 6h+\n    international) that you didn't accept triggers a mandatory cash refund, with its deadline. The US has no\n    EU261-style bonus compensation for delay alone. Use for \"is a 4-hour US domestic delay refundable\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cancelled":{"description":"Whether the flight was cancelled outright.","title":"Cancelled","type":"boolean"},"schedule_change_hours":{"default":0,"description":"How many hours the schedule shifted, if not cancelled outright.","minimum":0,"title":"Schedule Change Hours","type":"number"},"is_domestic":{"default":true,"description":"Whether this is a domestic US flight (vs international).","title":"Is Domestic","type":"boolean"},"accepted_alternative":{"default":false,"description":"Whether you accepted the rebooked alternative instead of seeking a refund.","title":"Accepted Alternative","type":"boolean"}},"required":["cancelled"],"title":"us_refund_eligibilityArguments","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/us_baggage_fee_refund_check":{"post":{"operationId":"us_baggage_fee_refund_check","summary":"Checks whether a delayed checked bag has passed the window (12h domestic, 15-30h international) after which","description":"Checks whether a delayed checked bag has passed the window (12h domestic, 15-30h international) after which\n    US airlines must refund the checked-bag fee. Use for \"my bag is 14 hours late on a domestic flight, do I get\n    the bag fee back\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"hours_since_arrival":{"description":"Hours since your flight landed that your checked bag has been missing.","minimum":0,"title":"Hours Since Arrival","type":"number"},"is_domestic":{"default":true,"description":"Whether this is a domestic US flight (vs international).","title":"Is Domestic","type":"boolean"}},"required":["hours_since_arrival"],"title":"us_baggage_fee_refund_checkArguments","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/canada_delay_compensation":{"post":{"operationId":"canada_delay_compensation","summary":"Canada's APPR delay compensation: CAD125-1000 tiers by airline size and delay length, only when the cause","description":"Canada's APPR delay compensation: CAD125-1000 tiers by airline size and delay length, only when the cause\n    was within the airline's control and not safety-required. Use for \"how much does WestJet owe for a 7-hour\n    delay that was their fault\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"delay_hours":{"description":"How many hours late you arrived.","minimum":0,"title":"Delay Hours","type":"number"},"airline_size":{"default":"large","description":"'large' (2M+ annual passengers, e.g. Air Canada/WestJet) or 'small'.","title":"Airline Size","type":"string"},"within_control":{"default":true,"description":"Whether the disruption was within the airline's control (vs weather/ATC/security etc).","title":"Within Control","type":"boolean"},"safety_required":{"default":false,"description":"Whether an otherwise-controllable delay was required for safety.","title":"Safety Required","type":"boolean"}},"required":["delay_hours"],"title":"canada_delay_compensationArguments","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/jurisdiction_overview":{"post":{"operationId":"jurisdiction_overview","summary":"The full written summary of delay/cancellation passenger rights for one jurisdiction. Use for \"explain","description":"The full written summary of delay/cancellation passenger rights for one jurisdiction. Use for \"explain\n    Canada's flight delay rules\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"jurisdiction":{"description":"EU (covers UK), US, or Canada.","examples":["EU","US","Canada"],"title":"Jurisdiction","type":"string"}},"required":["jurisdiction"],"title":"jurisdiction_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_jurisdictions":{"post":{"operationId":"compare_jurisdictions","summary":"A side-by-side headline comparison of EU/UK, US and Canada delay/cancellation rights. Use for \"how do US","description":"A side-by-side headline comparison of EU/UK, US and Canada delay/cancellation rights. Use for \"how do US\n    and EU flight delay rules differ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"compare_jurisdictionsArguments","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/classify_disruption_cause":{"post":{"operationId":"classify_disruption_cause","summary":"Keyword-classifies a plain-language disruption cause as likely 'extraordinary circumstances' (exempt from","description":"Keyword-classifies a plain-language disruption cause as likely 'extraordinary circumstances' (exempt from\n    EU261/APPR cash compensation) or likely within the airline's normal control -- a rough guide, not a ruling.\n    Use for \"was a mechanical fault an extraordinary circumstance\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"description":{"description":"A plain-language description of what caused the delay/cancellation.","examples":["heavy snowstorm grounded the airport","crew scheduling issue","air traffic control ground stop"],"minLength":1,"title":"Description","type":"string"}},"required":["description"],"title":"classify_disruption_causeArguments","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/flightrights_glossary":{"post":{"operationId":"flightrights_glossary","summary":"Definitions of flight-delay/cancellation rights terms -- extraordinary circumstances, significant change,","description":"Definitions of flight-delay/cancellation rights terms -- extraordinary circumstances, significant change,\n    within the airline's control, care and assistance, rerouting. Use for \"what counts as extraordinary\n    circumstances\".","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":"flightrights_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}}}}