{"openapi":"3.1.0","info":{"title":"Posturecheck API","version":"0.1.0","description":"Desk-setup ergonomics calculator, posture checklist, break-interval reference, and symptom-based pointer — all local.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://posturecheck.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/posturecheck/docs"},"termsOfService":"https://connectorbay.com/posturecheck/terms"},"servers":[{"url":"https://posturecheck.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/posturecheck/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/desk_setup_calculator":{"post":{"operationId":"desk_setup_calculator","summary":"Recommended chair seat height, desk/keyboard height, and monitor top height from standing","description":"Recommended chair seat height, desk/keyboard height, and monitor top height from standing\n    height, computed with published anthropometric ratios, plus a monitor-distance range and target\n    elbow angle. Use for \"what height should my desk and monitor be if I'm 175cm tall\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"height_cm":{"description":"Standing height in centimeters.","exclusiveMinimum":120,"maximum":220,"title":"Height Cm","type":"number"}},"required":["height_cm"],"title":"desk_setup_calculatorArguments","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/posture_checklist":{"post":{"operationId":"posture_checklist","summary":"Neutral-posture cues by body area, each with the common desk-posture problem it guards against","description":"Neutral-posture cues by body area, each with the common desk-posture problem it guards against\n    and a general corrective cue. Use for \"posture checklist for wrist pain\", \"what does good sitting\n    posture look like\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"area":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"neck | shoulders | spine | wrists | hips_knees_feet | eyes. Omit for the full checklist.","title":"Area"}},"title":"posture_checklistArguments","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/break_reminder_guide":{"post":{"operationId":"break_reminder_guide","summary":"Commonly cited movement and eye-break intervals for desk work: the 20-20-20 rule, posture","description":"Commonly cited movement and eye-break intervals for desk work: the 20-20-20 rule, posture\n    micro-breaks, movement breaks, and a long-sit ceiling. Use for \"how often should I take breaks at\n    my desk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"break_reminder_guideArguments","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/quick_posture_assessment":{"post":{"operationId":"quick_posture_assessment","summary":"Match reported symptoms (e.g. \"neck pain\", \"wrist tingling\", \"eye strain\") to the relevant","description":"Match reported symptoms (e.g. \"neck pain\", \"wrist tingling\", \"eye strain\") to the relevant\n    posture-checklist areas and a suggested next step. Use for \"my neck hurts by the end of the day,\n    what should I check\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symptoms":{"description":"Symptoms in your own words.","examples":[["neck pain","eye strain"],["wrist tingling"]],"items":{"type":"string"},"maxItems":10,"minItems":1,"title":"Symptoms","type":"array"}},"required":["symptoms"],"title":"quick_posture_assessmentArguments","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}}}}