{"openapi":"3.1.0","info":{"title":"Gearratio API","version":"0.1.0","description":"Cycling gear-ratio, gear-inches, development, speed-at-cadence and cassette comparison calculator.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://gearratio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/gearratio/docs"},"termsOfService":"https://connectorbay.com/gearratio/terms"},"servers":[{"url":"https://gearratio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/gearratio/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/gear_metrics":{"post":{"operationId":"gear_metrics","summary":"Gear ratio, gear inches, and development (metres per pedal revolution) for one chainring/cog/wheel","description":"Gear ratio, gear inches, and development (metres per pedal revolution) for one chainring/cog/wheel\n    combination, computed from the wheel's real bead-seat diameter and tire width. Use for \"gear inches for a 50/17\n    on 700x25c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chainring_teeth":{"description":"Front chainring tooth count.","maximum":60,"minimum":20,"title":"Chainring Teeth","type":"integer"},"cog_teeth":{"description":"Rear cog tooth count.","maximum":52,"minimum":8,"title":"Cog Teeth","type":"integer"},"wheel":{"default":"700c","description":"700c | 650b | 26in | 29er","title":"Wheel","type":"string"},"tire_width_mm":{"anyOf":[{"exclusiveMinimum":15,"maximum":80,"type":"number"},{"type":"null"}],"default":null,"description":"Tire width in mm (omit for a typical width for the standard).","title":"Tire Width Mm"}},"required":["chainring_teeth","cog_teeth"],"title":"gear_metricsArguments","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/speed_table":{"post":{"operationId":"speed_table","summary":"Road speed (km/h and mph) across a cadence range (60-110 rpm) for one chainring/cog/wheel combination. Use for","description":"Road speed (km/h and mph) across a cadence range (60-110 rpm) for one chainring/cog/wheel combination. Use for\n    \"speed at 90rpm in a 52x11 on 700x25c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chainring_teeth":{"maximum":60,"minimum":20,"title":"Chainring Teeth","type":"integer"},"cog_teeth":{"maximum":52,"minimum":8,"title":"Cog Teeth","type":"integer"},"wheel":{"default":"700c","description":"700c | 650b | 26in | 29er","title":"Wheel","type":"string"},"tire_width_mm":{"anyOf":[{"exclusiveMinimum":15,"maximum":80,"type":"number"},{"type":"null"}],"default":null,"title":"Tire Width Mm"}},"required":["chainring_teeth","cog_teeth"],"title":"speed_tableArguments","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/gear_comparison":{"post":{"operationId":"gear_comparison","summary":"Gear ratio, gear inches, development and speed-at-cadence for every chainring x cog combination across a full","description":"Gear ratio, gear inches, development and speed-at-cadence for every chainring x cog combination across a full\n    cassette/chainring range, sorted low to high, with the overall gear-range ratio. Use for \"compare my 34/50\n    chainrings against an 11-34 cassette\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chainrings":{"description":"Chainring tooth counts, e.g. [34, 50] for a compact.","items":{"type":"integer"},"maxItems":4,"minItems":1,"title":"Chainrings","type":"array"},"cogs":{"description":"Cassette cog tooth counts, e.g. [11,13,15,17,19,21,24,28,32] for an 11-32.","items":{"type":"integer"},"maxItems":14,"minItems":1,"title":"Cogs","type":"array"},"wheel":{"default":"700c","description":"700c | 650b | 26in | 29er","title":"Wheel","type":"string"},"tire_width_mm":{"anyOf":[{"exclusiveMinimum":15,"maximum":80,"type":"number"},{"type":"null"}],"default":null,"title":"Tire Width Mm"},"cadence_rpm":{"default":90.0,"description":"Cadence for the speed column.","exclusiveMinimum":0,"maximum":180,"title":"Cadence Rpm","type":"number"}},"required":["chainrings","cogs"],"title":"gear_comparisonArguments","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}}}}