{"openapi":"3.1.0","info":{"title":"Carryonchart API","version":"0.1.0","description":"A hand-curated carry-on baggage size/weight chart for 60 major world airlines, with comparisons, a will-it-fit checker against one or every airline, a compute-only smallest-common-size tool for multi-airline trips, and unit conversion. Limits change and vary by route/fare — always verify with the airline before flying.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://carryonchart.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/carryonchart/docs"},"termsOfService":"https://connectorbay.com/carryonchart/terms"},"servers":[{"url":"https://carryonchart.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/carryonchart/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/carry_on_limits":{"post":{"operationId":"carry_on_limits","summary":"One airline's carry-on maximum dimensions (inches and cm), weight limit, and personal-item allowance.","description":"One airline's carry-on maximum dimensions (inches and cm), weight limit, and personal-item allowance.\n    Use for \"what's the carry-on limit for Emirates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airline":{"description":"An airline name.","examples":["Emirates","Ryanair"],"minLength":1,"title":"Airline","type":"string"}},"required":["airline"],"title":"carry_on_limitsArguments","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_airlines":{"post":{"operationId":"compare_airlines","summary":"Lines up several airlines' carry-on limits side by side. Use for \"compare carry-on rules for Ryanair,","description":"Lines up several airlines' carry-on limits side by side. Use for \"compare carry-on rules for Ryanair,\n    EasyJet and Lufthansa\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airlines":{"description":"2-15 airline names to compare.","items":{"type":"string"},"maxItems":15,"minItems":2,"title":"Airlines","type":"array"}},"required":["airlines"],"title":"compare_airlinesArguments","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/airlines_list":{"post":{"operationId":"airlines_list","summary":"Every airline this chart covers (60 total), optionally filtered to one region.","description":"Every airline this chart covers (60 total), optionally filtered to one region.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optionally restrict to a region, e.g. 'Europe', 'Asia', 'Middle East'.","title":"Region"}},"title":"airlines_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/regions_list":{"post":{"operationId":"regions_list","summary":"The regions this chart covers, with how many airlines are in each.","description":"The regions this chart covers, with how many airlines are in each.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"regions_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/will_it_fit":{"post":{"operationId":"will_it_fit","summary":"Checks a bag's dimensions (compared regardless of which side you list first) against one named airline,","description":"Checks a bag's dimensions (compared regardless of which side you list first) against one named airline,\n    or against every covered airline if none is given — returning which airlines it fits and which it doesn't.\n    Use for \"will a 22x14x9 inch bag fit on Qatar Airways\", \"which airlines will take a 56x40x23cm bag\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"length":{"description":"Bag's longest side.","exclusiveMinimum":0,"title":"Length","type":"number"},"width":{"description":"Bag's second side.","exclusiveMinimum":0,"title":"Width","type":"number"},"height":{"description":"Bag's shortest side.","exclusiveMinimum":0,"title":"Height","type":"number"},"unit":{"default":"in","description":"'in' or 'cm'.","title":"Unit","type":"string"},"airline":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Check against just this airline instead of all covered airlines.","title":"Airline"}},"required":["length","width","height"],"title":"will_it_fitArguments","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/smallest_common_size":{"post":{"operationId":"smallest_common_size","summary":"Computes (pure arithmetic on this chart's published limits) the largest bag that still fits within every","description":"Computes (pure arithmetic on this chart's published limits) the largest bag that still fits within every\n    named airline's stated carry-on limit — the safe size to pack for a multi-airline itinerary. Use for \"what's\n    the largest bag that fits both Emirates and Southwest\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"airlines":{"description":"2-10 airline names you'll be flying on this trip.","items":{"type":"string"},"maxItems":10,"minItems":2,"title":"Airlines","type":"array"}},"required":["airlines"],"title":"smallest_common_sizeArguments","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/convert_dimensions":{"post":{"operationId":"convert_dimensions","summary":"Converts one to three bag dimensions between inches and centimetres, and the linear (sum-of-sides)","description":"Converts one to three bag dimensions between inches and centimetres, and the linear (sum-of-sides)\n    total. Use for \"convert 55x40x20 cm to inches\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"length":{"exclusiveMinimum":0,"title":"Length","type":"number"},"width":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Width"},"height":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Height"},"from_unit":{"default":"cm","description":"'in' or 'cm'.","title":"From Unit","type":"string"},"to_unit":{"default":"in","description":"'in' or 'cm'.","title":"To Unit","type":"string"}},"required":["length"],"title":"convert_dimensionsArguments","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/airlines_without_published_weight_limit":{"post":{"operationId":"airlines_without_published_weight_limit","summary":"Airlines in this chart that publish no carry-on weight cap (mostly major US carriers on domestic","description":"Airlines in this chart that publish no carry-on weight cap (mostly major US carriers on domestic\n    routes) — context for why weight rarely comes up flying within the US but often does internationally.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"airlines_without_published_weight_limitArguments","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/carry_on_general_tips":{"post":{"operationId":"carry_on_general_tips","summary":"Explains why there is no single universal carry-on size, and the closest common denominator across","description":"Explains why there is no single universal carry-on size, and the closest common denominator across\n    major airlines' published limits.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"carry_on_general_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}}}}