{"openapi":"3.1.0","info":{"title":"ELI5 API","version":"0.1.0","description":"Makes hard text understandable: decodes real-world documents, explains any topic at any level, and checks whether a text suits a reader.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://eli5.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/eli5/docs"},"termsOfService":"https://connectorbay.com/eli5/terms"},"servers":[{"url":"https://eli5.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/eli5/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/decode_document":{"post":{"operationId":"decode_document","summary":"Decode any hard document a person is holding: a lease, an insurance statement, a loan","description":"Decode any hard document a person is holding: a lease, an insurance statement, a loan\n    disclosure, terms of service, a government notice, a bill. Identifies the document type,\n    defines the jargon in it, extracts the amounts, dates, deadlines and obligations, flags\n    the contract clauses that matter, and scores how hard it is to read. Start here when\n    someone says 'what does this mean' about a piece of paper.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"document_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional. Force a document type instead of detecting it. One of: credit_card_statement, employment, explanation_of_benefits, government_notice, insurance_policy, lab_report, lease, loan, medical_bill, other, prescription, privacy_policy, tax_document, terms_of_service, utility_bill.","title":"Document Type"}},"required":["text"],"title":"decode_documentArguments","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/decode_money_document":{"post":{"operationId":"decode_money_document","summary":"Decode anything with money on it — an Explanation of Benefits, a medical bill, a loan","description":"Decode anything with money on it — an Explanation of Benefits, a medical bill, a loan\n    disclosure, a credit card or utility statement — and check the arithmetic. Buckets the\n    labelled amounts into billed, allowed, paid and your share, then verifies that they add up.\n    Use whenever a user asks 'do I really owe this' or 'is this bill right'.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"document_type":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional: explanation_of_benefits, medical_bill, loan, credit_card_statement, utility_bill.","title":"Document Type"}},"required":["text"],"title":"decode_money_documentArguments","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/decode_medical_text":{"post":{"operationId":"decode_medical_text","summary":"Explain the words in a lab report, discharge summary, prescription label or clinical note.","description":"Explain the words in a lab report, discharge summary, prescription label or clinical note.\n    Parses result lines with reference ranges and flags which are outside them, then pulls\n    patient-facing explanations from MedlinePlus. Explains terminology only — it does not\n    interpret results, diagnose, or advise on medication, and it should say so.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"look_up_terms":{"default":true,"description":"Look the unfamiliar terms up in MedlinePlus (U.S. National Library of Medicine).","title":"Look Up Terms","type":"boolean"}},"required":["text"],"title":"decode_medical_textArguments","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/find_the_catch":{"post":{"operationId":"find_the_catch","summary":"Scan a contract, lease, terms of service or agreement for the twenty-five clause patterns","description":"Scan a contract, lease, terms of service or agreement for the twenty-five clause patterns\n    that cost people money or rights: binding arbitration, class-action waivers, automatic\n    renewal, prepayment penalties, balloon payments, one-way indemnity, liability caps,\n    unilateral changes, deficiency balances and more. Quotes the language it found, says what\n    each clause means in practice, and gives the question to ask about it.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"}},"required":["text"],"title":"find_the_catchArguments","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/explain_term":{"post":{"operationId":"explain_term","summary":"Define one term authoritatively, with sources. Checks the bundled plain-language glossary","description":"Define one term authoritatively, with sources. Checks the bundled plain-language glossary\n    first (76 terms across insurance, lending, legal, housing, tax, medical and more, each with\n    what it means and why it matters), then MedlinePlus for medical words, then Wiktionary and\n    Simple English Wikipedia. Use when the user asks what a specific word on a document means.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"description":"The term to define, e.g. 'coinsurance', 'escrow', 'force majeure'.","maxLength":120,"title":"Term","type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional hint: insurance, lending, credit, legal, housing, employment, tax, investing, benefits, medical, government, technology, consumer.","title":"Domain"}},"required":["term"],"title":"explain_termArguments","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/explain":{"post":{"operationId":"explain","summary":"Assemble everything needed to explain one topic at one audience level: a sourced summary","description":"Assemble everything needed to explain one topic at one audience level: a sourced summary\n    from Simple English Wikipedia and Wikipedia, the vocabulary that will block the reader,\n    analogy scaffolds with the point where each analogy breaks, the confusions people reliably\n    fall into, and a concrete writing target. You write the explanation from this; do not paste\n    the grounding back to the user.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic, term, or question, e.g. 'photosynthesis', 'escrow', 'why the sky is blue'.","maxLength":300,"title":"Topic","type":"string"},"level":{"default":"adult","description":"Audience level: age5, age10, teen, adult, or expert.","title":"Level","type":"string"}},"required":["topic"],"title":"explainArguments","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/explain_levels":{"post":{"operationId":"explain_levels","summary":"The ELI5 ladder — one topic prepared for five audiences at once, from age five to working","description":"The ELI5 ladder — one topic prepared for five audiences at once, from age five to working\n    expert, on shared grounding. Use when someone asks for something 'explained simply', when\n    they want to explain a thing to a child, or when you do not yet know how much background\n    they have. The rungs should differ in what they contain, not merely in vocabulary.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic, term, or question, e.g. 'photosynthesis', 'escrow', 'why the sky is blue'.","maxLength":300,"title":"Topic","type":"string"},"levels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Which rungs to return. Defaults to all five: age5, age10, teen, adult, expert.","title":"Levels"}},"required":["topic"],"title":"explain_levelsArguments","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/analogy_for":{"post":{"operationId":"analogy_for","summary":"Find an analogy whose structure actually matches the concept — a rate, a threshold, a","description":"Find an analogy whose structure actually matches the concept — a rate, a threshold, a\n    feedback loop, a trade-off, a stock and flow — and, crucially, the point where each analogy\n    breaks down. Always give the analogy and its limit together: an analogy handed over without\n    its limits is how misconceptions get manufactured.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"concept":{"description":"The concept needing an analogy, e.g. 'compound interest', 'a deductible', 'an API'.","maxLength":200,"title":"Concept","type":"string"},"audience":{"default":"adult","description":"Who it is for: child, teen, adult, expert.","title":"Audience","type":"string"}},"required":["concept"],"title":"analogy_forArguments","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/readability_score":{"post":{"operationId":"readability_score","summary":"Measure how hard a text is to read: Flesch Reading Ease, Flesch-Kincaid, Gunning Fog, SMOG,","description":"Measure how hard a text is to read: Flesch Reading Ease, Flesch-Kincaid, Gunning Fog, SMOG,\n    Coleman-Liau, ARI, Dale-Chall and LIX, plus a consensus grade level, the hardest sentences\n    with the reason each is hard, and the words outside the familiar-word list. Deterministic\n    and reproducible, so 'this notice is written at a college level' becomes a checkable claim.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"}},"required":["text"],"title":"readability_scoreArguments","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/simplify_plan":{"post":{"operationId":"simplify_plan","summary":"Get a specific plan for rewriting a text at a lower reading level: which sentences to split,","description":"Get a specific plan for rewriting a text at a lower reading level: which sentences to split,\n    which words to swap (marked safe or meaning-changing), which passive constructions and buried\n    verbs to free, and which padding to cut — in the order that moves the score most. Use before\n    rewriting anything, then re-check with readability_score.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"target_grade":{"default":8,"description":"Grade level to write toward. 8 is the U.S. federal plain-language target for public documents.","maximum":16,"minimum":1,"title":"Target Grade","type":"integer"}},"required":["text"],"title":"simplify_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/define_simply":{"post":{"operationId":"define_simply","summary":"Define one word for a specific audience, with simpler synonyms filtered by how common they","description":"Define one word for a specific audience, with simpler synonyms filtered by how common they\n    actually are, the plain-language substitution if the federal guidelines have one, dictionary\n    senses, and whether the word is already familiar to a fourth-grade reader.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"word":{"description":"The word to define.","maxLength":80,"title":"Word","type":"string"},"for_level":{"default":"age10","description":"Audience level: age5, age10, teen, adult, or expert.","title":"For Level","type":"string"}},"required":["word"],"title":"define_simplyArguments","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/jargon_scan":{"post":{"operationId":"jargon_scan","summary":"Pull the jargon out of any text and rank it by how much it blocks comprehension — weighting","description":"Pull the jargon out of any text and rank it by how much it blocks comprehension — weighting\n    how often each word appears, how long it is, and whether we can define it. Returns the\n    definitions we have, the simpler alternatives, and every acronym used without being spelled\n    out. Use to decide what to explain first.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"limit":{"default":25,"description":"How many jargon terms to return.","maximum":60,"minimum":1,"title":"Limit","type":"integer"}},"required":["text"],"title":"jargon_scanArguments","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/explain_for_grade":{"post":{"operationId":"explain_for_grade","summary":"Build a grade-aligned explanation package for a child: sourced grounding, the vocabulary","description":"Build a grade-aligned explanation package for a child: sourced grounding, the vocabulary\n    ceiling and sentence length for that grade band, the misconceptions to clear first, analogy\n    scaffolds, check-for-understanding questions at the right Bloom level, and a teaching\n    sequence. Use when a parent or teacher asks how to explain something to a child.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic, term, or question, e.g. 'photosynthesis', 'escrow', 'why the sky is blue'.","maxLength":300,"title":"Topic","type":"string"},"grade":{"description":"U.S. school grade, 0 for kindergarten through 12.","maximum":12,"minimum":0,"title":"Grade","type":"integer"}},"required":["topic","grade"],"title":"explain_for_gradeArguments","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/grade_level_target":{"post":{"operationId":"grade_level_target","summary":"What 'right for this grade' means in numbers: Lexile range, target Flesch-Kincaid grade,","description":"What 'right for this grade' means in numbers: Lexile range, target Flesch-Kincaid grade,\n    words per sentence, the share of unfamiliar words a text can carry, and what kinds of ideas\n    land at that age. Use before writing anything for a specific grade.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"grade":{"description":"U.S. school grade, 0 for kindergarten through 12.","maximum":12,"minimum":0,"title":"Grade","type":"integer"}},"required":["grade"],"title":"grade_level_targetArguments","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":"The wrong ideas learners reliably already hold about a topic — that summer comes from being","description":"The wrong ideas learners reliably already hold about a topic — that summer comes from being\n    closer to the Sun, that multiplying always makes things bigger, that heavier objects fall\n    faster — with the correction, why the wrong idea is appealing, and a diagnostic question that\n    reveals it. Ask the diagnostic question before teaching: an explanation laid over an\n    unaddressed misconception usually bounces off.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic, term, or question, e.g. 'photosynthesis', 'escrow', 'why the sky is blue'.","maxLength":300,"title":"Topic","type":"string"},"grade":{"anyOf":[{"maximum":12,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Optional: narrow to misconceptions typical at this grade.","title":"Grade"}},"required":["topic"],"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}},"/v1/tools/check_understanding":{"post":{"operationId":"check_understanding","summary":"Questions that separate real understanding from repeating your words back, laddered by","description":"Questions that separate real understanding from repeating your words back, laddered by\n    Bloom's taxonomy and pitched at the grade. Includes diagnostic questions targeting the known\n    misconceptions for the topic, and what a good answer actually looks like.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"description":"A topic, term, or question, e.g. 'photosynthesis', 'escrow', 'why the sky is blue'.","maxLength":300,"title":"Topic","type":"string"},"grade":{"default":6,"description":"U.S. school grade, 0 for kindergarten through 12.","maximum":12,"minimum":0,"title":"Grade","type":"integer"},"levels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional Bloom levels: remember, understand, apply, analyze, evaluate, create.","title":"Levels"}},"required":["topic"],"title":"check_understandingArguments","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/word_ladder":{"post":{"operationId":"word_ladder","summary":"Break one hard word down until it lands at a child's level: the plain definition, the","description":"Break one hard word down until it lands at a child's level: the plain definition, the\n    simplest usable stand-in word, the prefix, root and suffix with what each part means, and a\n    sequence for teaching it. Showing a child the parts of a word teaches them the next hundred\n    words that share them.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"word":{"description":"The hard word to break down.","maxLength":80,"title":"Word","type":"string"},"grade":{"default":4,"description":"U.S. school grade, 0 for kindergarten through 12.","maximum":12,"minimum":0,"title":"Grade","type":"integer"}},"required":["word"],"title":"word_ladderArguments","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/is_this_right_for_my_kid":{"post":{"operationId":"is_this_right_for_my_kid","summary":"Is this book, article, worksheet or passage at the right level for a child in this grade —","description":"Is this book, article, worksheet or passage at the right level for a child in this grade —\n    and if not, exactly which sentences and words make it too hard. Returns a verdict, the\n    measurements behind it, the hardest sentences, and the words worth pre-teaching. Answers the\n    question parents actually ask, rather than returning a bare score.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The text of the document, pasted in full or in part. Processed in memory and never stored.","maxLength":200000,"title":"Text","type":"string"},"grade":{"description":"U.S. school grade, 0 for kindergarten through 12.","maximum":12,"minimum":0,"title":"Grade","type":"integer"}},"required":["text","grade"],"title":"is_this_right_for_my_kidArguments","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}}}}