{"openapi":"3.1.0","info":{"title":"Cradle API","version":"0.1.0","description":"WHO growth percentiles, pregnancy tracker, milestones, vaccine schedules, feeding and sleep guides, red flags, teething and baby names.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://cradle.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/cradle/docs"},"termsOfService":"https://connectorbay.com/cradle/terms"},"servers":[{"url":"https://cradle.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/cradle/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/growth_percentile":{"post":{"operationId":"growth_percentile","summary":"Percentile and z-score for a child's weight, length/height, head circumference, weight-for-height and BMI","description":"Percentile and z-score for a child's weight, length/height, head circumference, weight-for-height and BMI\n    against WHO standards, with the median and reference curve and a plain interpretation. Give any of the measures.\n    Use for \"is 7.2 kg okay for an 8-month-old girl\", \"what percentile is my 3-year-old's height\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sex":{"description":"male | female","title":"Sex","type":"string"},"date_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"YYYY-MM-DD (or give age_months).","examples":["2025-01-15"],"title":"Date Of Birth"},"measured_on":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date of measurement (default today).","title":"Measured On"},"age_months":{"anyOf":[{"maximum":228,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Age in months instead of dates (e.g. 8.5).","title":"Age Months"},"weight_kg":{"anyOf":[{"exclusiveMinimum":0,"maximum":150,"type":"number"},{"type":"null"}],"default":null,"title":"Weight Kg"},"height_cm":{"anyOf":[{"exclusiveMinimum":20,"maximum":220,"type":"number"},{"type":"null"}],"default":null,"description":"Length (lying, under 2) or height (standing).","title":"Height Cm"},"head_cm":{"anyOf":[{"exclusiveMinimum":20,"maximum":70,"type":"number"},{"type":"null"}],"default":null,"description":"Head circumference.","title":"Head Cm"}},"required":["sex"],"title":"growth_percentileArguments","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/growth_reference":{"post":{"operationId":"growth_reference","summary":"WHO percentile (3rd–97th) and SD tables for an age and sex — the numbers behind the growth chart. Use for","description":"WHO percentile (3rd–97th) and SD tables for an age and sex — the numbers behind the growth chart. Use for\n    \"average weight of a 2-year-old boy\", \"normal height range at 5\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sex":{"description":"male | female","title":"Sex","type":"string"},"age_months":{"description":"Age in months (0–228).","maximum":228,"minimum":0,"title":"Age Months","type":"number"},"measure":{"default":"all","description":"weight | height | head | bmi | all","title":"Measure","type":"string"}},"required":["sex","age_months"],"title":"growth_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/pregnancy_tracker":{"post":{"operationId":"pregnancy_tracker","summary":"Due date and current week from LMP, conception, IVF transfer or a known due date — with this week's baby size,","description":"Due date and current week from LMP, conception, IVF transfer or a known due date — with this week's baby size,\n    development, how you may feel, what's due (scans, screening, vaccines), trimester and term windows; or the\n    week-by-week entry for any week. Use for \"due date if LMP was 1 June\", \"I'm 24 weeks, what's happening\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"lmp":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"First day of last period, YYYY-MM-DD.","title":"Lmp"},"due_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Known due date, YYYY-MM-DD.","title":"Due Date"},"conception":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Conception / ovulation date, YYYY-MM-DD.","title":"Conception"},"transfer":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"IVF embryo transfer date, YYYY-MM-DD (with embryo_day).","title":"Transfer"},"embryo_day":{"default":5,"description":"Embryo age at transfer (3 or 5).","maximum":7,"minimum":1,"title":"Embryo Day","type":"integer"},"cycle_days":{"default":28,"description":"Usual cycle length for the LMP method.","maximum":45,"minimum":20,"title":"Cycle Days","type":"integer"},"on":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date to report for (default today).","title":"On"},"week":{"anyOf":[{"maximum":42,"minimum":4,"type":"integer"},{"type":"null"}],"default":null,"description":"Or just ask about a week (4–40) without dates.","title":"Week"}},"title":"pregnancy_trackerArguments","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/milestones":{"post":{"operationId":"milestones","summary":"What most children do by this age (social, language, cognitive, movement) and the act-early signs to discuss","description":"What most children do by this age (social, language, cognitive, movement) and the act-early signs to discuss\n    with a doctor, for the nearest checkpoint (2, 4, 6, 9, 12, 15, 18, 24, 30, 36, 48, 60 months) plus the next one.\n    Use for \"what should my 18-month-old be doing\", \"when do babies walk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"age_months":{"anyOf":[{"maximum":72,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Child's age in months (0–60).","title":"Age Months"},"date_of_birth":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Or the date of birth, YYYY-MM-DD.","title":"Date Of Birth"}},"title":"milestonesArguments","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/vaccine_schedule":{"post":{"operationId":"vaccine_schedule","summary":"The routine childhood immunisation schedule for India (UIP, or IAP private schedule), the US (CDC) or the UK","description":"The routine childhood immunisation schedule for India (UIP, or IAP private schedule), the US (CDC) or the UK\n    (NHS) — the whole schedule, or what is due at an age. Use for \"vaccines due at 9 months in India\", \"US schedule\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"default":"india","description":"india | india_iap | us | uk","title":"Country","type":"string"},"age_months":{"anyOf":[{"maximum":228,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Show only what is due around this age (months).","title":"Age Months"}},"title":"vaccine_scheduleArguments","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/feeding_guide":{"post":{"operationId":"feeding_guide","summary":"What and how much to feed at this age — milk, starting solids, textures, Indian first-food examples, allergen","description":"What and how much to feed at this age — milk, starting solids, textures, Indian first-food examples, allergen\n    introduction, portion sizes and what to avoid. Use for \"when to start solids\", \"how much should a 9-month-old eat\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"age_months":{"description":"Child's age in months (0–60).","maximum":60,"minimum":0,"title":"Age Months","type":"number"}},"required":["age_months"],"title":"feeding_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/sleep_guide":{"post":{"operationId":"sleep_guide","summary":"Recommended total sleep, nap pattern and night sleep for the age, with safe-sleep and routine tips. Use for","description":"Recommended total sleep, nap pattern and night sleep for the age, with safe-sleep and routine tips. Use for\n    \"how much sleep does a 4-month-old need\", \"when do toddlers drop to one nap\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"age_months":{"description":"Child's age in months (0–216).","maximum":216,"minimum":0,"title":"Age Months","type":"number"}},"required":["age_months"],"title":"sleep_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/red_flags":{"post":{"operationId":"red_flags","summary":"When to seek care: emergency signs at any age, the stricter rules under 3 months, 'see a doctor soon' signs,","description":"When to seek care: emergency signs at any age, the stricter rules under 3 months, 'see a doctor soon' signs,\n    and fever care basics; optionally filtered by a symptom word. Use for \"baby has 38.5 fever at 6 weeks\", \"rash\n    that doesn't fade\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"age_months":{"anyOf":[{"maximum":216,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Child's age in months, to pick the right list.","title":"Age Months"},"symptom":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A symptom to check, e.g. fever, rash, vomiting, breathing.","title":"Symptom"}},"title":"red_flagsArguments","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/teething":{"post":{"operationId":"teething","summary":"Typical order and age windows for the 20 baby teeth, and what's likely erupting now. Use for \"when do first","description":"Typical order and age windows for the 20 baby teeth, and what's likely erupting now. Use for \"when do first\n    teeth come\", \"my 14-month-old has 6 teeth — normal?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"age_months":{"anyOf":[{"maximum":48,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Child's age in months, to show what's typical now.","title":"Age Months"}},"title":"teethingArguments","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/baby_names":{"post":{"operationId":"baby_names","summary":"Baby names from a curated list (Indian — Sanskrit, Muslim, Sikh — and global/US/UK favourites) with origin and","description":"Baby names from a curated list (Indian — Sanskrit, Muslim, Sikh — and global/US/UK favourites) with origin and\n    meaning, filtered by gender, origin/tag, starting letters and meaning. Use for \"Sanskrit boy names starting with\n    A meaning light\", \"short unisex names\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"gender":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"boy | girl | unisex","title":"Gender"},"origin":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Origin or tag: indian, sanskrit, muslim/arabic, sikh/punjabi, global, us-top, uk-top, biblical, mythological, modern, classic, short.","title":"Origin"},"starts_with":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"First letter(s).","examples":["A","Sh"],"title":"Starts With"},"meaning":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Word to find in the meaning.","examples":["light","brave","moon"],"title":"Meaning"},"limit":{"default":12,"maximum":40,"minimum":1,"title":"Limit","type":"integer"}},"title":"baby_namesArguments","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}}}}