{"openapi":"3.1.0","info":{"title":"Fitnessglossary API","version":"0.1.0","description":"A fully local gym/fitness terminology reference: strength training, cardio and gym-culture terms, plus a numeric RPE/RIR exertion-scale reference and converter.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://fitnessglossary.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/fitnessglossary/docs"},"termsOfService":"https://connectorbay.com/fitnessglossary/terms"},"servers":[{"url":"https://fitnessglossary.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/fitnessglossary/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/term_lookup":{"post":{"operationId":"term_lookup","summary":"Defines one term from anywhere in the reference — strength training, cardio, or gym culture — with its","description":"Defines one term from anywhere in the reference — strength training, cardio, or gym culture — with its\n    category. Use for \"what is hypertrophy\", \"define deload week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"description":"A term to define.","examples":["hypertrophy","RPE","Zone 2","deload week","bro split"],"minLength":1,"title":"Term","type":"string"}},"required":["term"],"title":"term_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/search_terms":{"post":{"operationId":"search_terms","summary":"Keyword search across every term, definition and category in the reference. Use for \"anything about","description":"Keyword search across every term, definition and category in the reference. Use for \"anything about\n    recovery\", \"terms related to interval training\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search for.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"search_termsArguments","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/glossary_by_category":{"post":{"operationId":"glossary_by_category","summary":"Every term in one category: strength_training, cardio, or gym_culture. Use for \"list all the cardio","description":"Every term in one category: strength_training, cardio, or gym_culture. Use for \"list all the cardio\n    terms\", \"what strength-training terms do you cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"category":{"description":"strength_training | cardio | gym_culture","title":"Category","type":"string"}},"required":["category"],"title":"glossary_by_categoryArguments","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/rpe_reference":{"post":{"operationId":"rpe_reference","summary":"The full RPE (Rate of Perceived Exertion) 1-10 scale with each level's real, numeric meaning and its RIR","description":"The full RPE (Rate of Perceived Exertion) 1-10 scale with each level's real, numeric meaning and its RIR\n    correspondence. Use for \"what does RPE 8 mean\", \"explain the RPE scale\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"rpe_referenceArguments","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/rpe_to_rir":{"post":{"operationId":"rpe_to_rir","summary":"Converts an RPE (Rate of Perceived Exertion) value to RIR (Reps in Reserve): RIR = 10 - RPE, the standard","description":"Converts an RPE (Rate of Perceived Exertion) value to RIR (Reps in Reserve): RIR = 10 - RPE, the standard\n    coaching-scale correspondence. Use for \"what RIR is RPE 8\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"rpe":{"description":"RPE value (0-10).","maximum":10,"minimum":0,"title":"Rpe","type":"number"}},"required":["rpe"],"title":"rpe_to_rirArguments","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/rir_to_rpe":{"post":{"operationId":"rir_to_rpe","summary":"Converts an RIR (Reps in Reserve) value to RPE (Rate of Perceived Exertion): RPE = 10 - RIR, the inverse","description":"Converts an RIR (Reps in Reserve) value to RPE (Rate of Perceived Exertion): RPE = 10 - RIR, the inverse\n    of rpe_to_rir. Use for \"what RPE is 2 reps in reserve\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"rir":{"description":"RIR value (0-10).","maximum":10,"minimum":0,"title":"Rir","type":"number"}},"required":["rir"],"title":"rir_to_rpeArguments","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/common_misconceptions":{"post":{"operationId":"common_misconceptions","summary":"Frequent mistaken beliefs in gym/fitness terminology, corrected — RPE vs RIR, DOMS and progress, what","description":"Frequent mistaken beliefs in gym/fitness terminology, corrected — RPE vs RIR, DOMS and progress, what\n    'intensity' actually means, what a pump is, whether Zone 2 is 'too easy to matter'. Use for \"is soreness\n    required for a workout to have worked\", \"does intensity mean how hard a set felt\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"common_misconceptionsArguments","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}}}}