{"openapi":"3.1.0","info":{"title":"HydratePlan API","version":"0.1.0","description":"General-wellness hydration-needs calculators by body weight, activity and climate: daily baseline, full activity+climate-adjusted plan, electrolyte-consideration flag.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://hydrateplan.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/hydrateplan/docs"},"termsOfService":"https://connectorbay.com/hydrateplan/terms"},"servers":[{"url":"https://hydrateplan.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/hydrateplan/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/daily_baseline":{"post":{"operationId":"daily_baseline","summary":"Body-weight-based daily fluid target (30-35 mL/kg/day general-wellness range), in mL, oz and litres. Use","description":"Body-weight-based daily fluid target (30-35 mL/kg/day general-wellness range), in mL, oz and litres. Use\n    for \"how much water should I drink a day at 70 kg\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"weight_kg":{"description":"Body weight in kilograms.","exclusiveMinimum":20,"maximum":300,"title":"Weight Kg","type":"number"}},"required":["weight_kg"],"title":"daily_baselineArguments","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/hydration_plan":{"post":{"operationId":"hydration_plan","summary":"Full hydration target: baseline + activity allowance (by intensity) + climate allowance (warm/hot","description":"Full hydration target: baseline + activity allowance (by intensity) + climate allowance (warm/hot\n    conditions), with an electrolyte-consideration flag. Use for \"hydration plan for a 60-minute moderate run at\n    30°C, 70 kg\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"weight_kg":{"description":"Body weight in kilograms.","exclusiveMinimum":20,"maximum":300,"title":"Weight Kg","type":"number"},"activity_minutes":{"default":0.0,"description":"Minutes of activity (0 for a rest/baseline-only day).","maximum":1440,"minimum":0,"title":"Activity Minutes","type":"number"},"intensity":{"default":"rest","description":"rest | light | moderate | vigorous","title":"Intensity","type":"string"},"temperature_c":{"default":22.0,"description":"Ambient temperature during the activity, in Celsius.","maximum":55,"minimum":-40,"title":"Temperature C","type":"number"}},"required":["weight_kg"],"title":"hydration_planArguments","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/electrolyte_check":{"post":{"operationId":"electrolyte_check","summary":"Whether this is a reasonable point to consider electrolytes alongside plain water — a documented rule of","description":"Whether this is a reasonable point to consider electrolytes alongside plain water — a documented rule of\n    thumb for long and/or hot and/or vigorous exertion, not a medical recommendation. Use for \"do I need\n    electrolytes for a 90-minute workout in the heat\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"duration_minutes":{"description":"Duration of the activity in minutes.","maximum":1440,"minimum":0,"title":"Duration Minutes","type":"number"},"temperature_c":{"default":22.0,"description":"Ambient temperature in Celsius.","maximum":55,"minimum":-40,"title":"Temperature C","type":"number"},"intensity":{"default":"moderate","description":"rest | light | moderate | vigorous","title":"Intensity","type":"string"}},"required":["duration_minutes"],"title":"electrolyte_checkArguments","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}}}}