{"openapi":"3.1.0","info":{"title":"Homegym API","version":"0.1.0","description":"Home-gym equipment planning: a space/budget-constrained recommendation engine over a hand-curated equipment catalogue, plus a workout-style-to-equipment map.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://homegym.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/homegym/docs"},"termsOfService":"https://connectorbay.com/homegym/terms"},"servers":[{"url":"https://homegym.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/homegym/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/recommend_equipment":{"post":{"operationId":"recommend_equipment","summary":"Prioritized equipment recommendation (essential -> nice_to_have -> advanced) that fits within space_sqft","description":"Prioritized equipment recommendation (essential -> nice_to_have -> advanced) that fits within space_sqft\n    and budget_tier — total recommended footprint never exceeds the space given; oversized items are listed\n    separately as skipped_for_space. Use for \"what should I buy for a 40 sq ft space on a mid budget\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"space_sqft":{"description":"Available floor space in square feet.","exclusiveMinimum":0,"maximum":2000,"title":"Space Sqft","type":"number"},"budget_tier":{"default":"mid","description":"budget | mid | high","title":"Budget Tier","type":"string"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"calisthenics | powerlifting | bodybuilding | cardio | general; omit for no style filter.","title":"Style"}},"required":["space_sqft"],"title":"recommend_equipmentArguments","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/style_equipment_map":{"post":{"operationId":"style_equipment_map","summary":"The minimum equipment a workout style genuinely needs, with the footprint that implies — e.g.","description":"The minimum equipment a workout style genuinely needs, with the footprint that implies — e.g.\n    calisthenics needs a pull-up bar and a mat, powerlifting needs a rack, a barbell and plates, and a bench. Use\n    for \"what does powerlifting actually need\", \"minimum gear for calisthenics\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"style":{"description":"calisthenics | powerlifting | bodybuilding | cardio | general","title":"Style","type":"string"}},"required":["style"],"title":"style_equipment_mapArguments","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/list_equipment":{"post":{"operationId":"list_equipment","summary":"Browse the equipment catalogue, optionally filtered by priority tier and/or workout style. Use for \"list","description":"Browse the equipment catalogue, optionally filtered by priority tier and/or workout style. Use for \"list\n    all essential equipment\", \"what advanced gear is there for bodybuilding\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"essential | nice_to_have | advanced; omit to list all 22 items.","title":"Tier"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Filter to items serving a workout style.","title":"Style"}},"title":"list_equipmentArguments","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/equipment_detail":{"post":{"operationId":"equipment_detail","summary":"Full detail for one piece of equipment: footprint, cost tier, priority tier and which workout styles it","description":"Full detail for one piece of equipment: footprint, cost tier, priority tier and which workout styles it\n    serves. Use for \"how much space does a squat rack need\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"Equipment name or id.","examples":["squat rack","adjustable dumbbells","pullup_bar"],"title":"Name","type":"string"}},"required":["name"],"title":"equipment_detailArguments","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/list_workout_styles":{"post":{"operationId":"list_workout_styles","summary":"Lists the five supported workout styles (calisthenics, powerlifting, bodybuilding, cardio, general) with","description":"Lists the five supported workout styles (calisthenics, powerlifting, bodybuilding, cardio, general) with\n    a short description of each's space/budget profile. Use for \"what workout styles do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_workout_stylesArguments","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}}}}