Server definition
- Hash
- sha256:4d4ec28b4c947efc89e0768610765384cdfc9b1a4fcaa7aa8fa33a43498f701f
- What it is
- What a remote MCP server returned when asked what it offers: 16 tools
The blob, as servednamed by its sha256
{
"instructions": "HebrewCore by baba Hebrew is a Hebrew language API (https://hc.itsbaba.com). Use these tools whenever text goes into or out of Hebrew, or when Hebrew must display correctly next to English.\n\nWhich tool:\n- translate: one text between Hebrew, English, Russian and the other languages from list_languages. translate_batch: up to 50 strings at once (interface strings, string files, product fields).\n- clinical_translate: a full English clinical document into verified Hebrew. clinical_query: a Hebrew clinical question into an English record query. clinical_verify: check Hebrew someone else produced against its English source. The clinical tools need a key with Clinical access.\n- detect_language: which language a user wrote in. analyze_direction and wrap_for_display: right-to-left layout of mixed Hebrew/English lines. transliterate, add_nikud, strip_nikud: Hebrew script work.\n- list_terms, add_terms, delete_term: the account's protected names (drug, product, brand), kept exactly in every protected translation.\n\nProtect exact values. When the text carries money, amounts, account or card numbers, dates, doses, lab values, codes, identifiers, product names or interface variables, call translate with protect: true or a domain (finance, legal, clinical, general): these values then come back exactly as written and every sentence is verified. Never rewrite, round, convert or \"fix\" a protected value in your own answer; copy the tool output as returned. A sentence with status \"fallback\" could not be verified and is left in the source language: say so rather than translating it yourself. For clinical content prefer clinical_translate, and pass the patient's medications as protected_terms and names as redact_terms.\n\nHebrew marks gender: set listener_gender for the reader (\"you\") and speaker_gender for the speaker (\"I\") when known. Quality: fast, balanced (default) or smartest.\n\nTools that call a model use the account's monthly character quota and every call counts toward its per-minute rate limit. Errors such as quota_exceeded, rate_limited or payment_required come back as tool errors; do not retry a quota error.",
"tools": [
{
"description": "Add full nikud (vowel points) to Hebrew text, for learners, vocalized display and text-to-speech, where unvocalized Hebrew is ambiguous. English terms and numbers pass through unchanged. The result is verified: `verified: true` means removing the points gives back the input; when false, `nikud` is the input unchanged. Up to 10,000 characters. Uses the monthly character quota.",
"inputSchema": {
"properties": {
"text": {
"description": "Hebrew text to vocalize, up to 10,000 characters. English terms and numbers pass through.",
"examples": [
"שלום עולם"
],
"maxLength": 10000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "add_nikud",
"outputSchema": {
"properties": {
"nikud": {
"description": "The vocalized text, or the input unchanged when `verified` is false.",
"examples": [
"שָׁלוֹם עוֹלָם"
],
"type": "string"
},
"text": {
"description": "The input.",
"examples": [
"שלום עולם"
],
"type": "string"
},
"verified": {
"description": "True when removing the points gives back exactly the input. When false, `nikud` is the input unchanged: send it to speech unvocalized or retry.",
"examples": [
true
],
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Add protected terms to the account, or update existing ones (matched by exact term text). Every later protected translation on the account (translate, translate_batch and the clinical tools) keeps these terms exactly as written, or uses `translations.he` / `.en` / `.ru` for that target language when set. Sending a term that already exists replaces its translations and note. Up to 2,000 terms per account, each up to 200 characters. Changes apply to new requests within 30 seconds. Free.",
"inputSchema": {
"properties": {
"terms": {
"items": {
"properties": {
"note": {
"maxLength": 500,
"type": [
"string",
"null"
]
},
"term": {
"examples": [
"Optalgin"
],
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"translations": {
"additionalProperties": false,
"examples": [
{
"he": "אופטלגין",
"ru": "Оптальгин"
}
],
"properties": {
"en": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"he": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"ru": {
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"type": "object"
}
},
"required": [
"term"
],
"type": "object"
},
"maxItems": 2000,
"minItems": 1,
"type": "array"
}
},
"required": [
"terms"
],
"type": "object"
},
"name": "add_terms",
"outputSchema": {
"properties": {
"count": {
"type": "integer"
},
"terms": {
"items": {
"properties": {
"created_at": {
"description": "ISO 8601 timestamp.",
"examples": [
"2026-01-15T09:30:00.000Z"
],
"type": "string"
},
"id": {
"examples": [
"3f2c1a9e-8b7d-4c6e-9f10-2a3b4c5d6e7f"
],
"type": "string"
},
"note": {
"description": "Your own note, up to 500 characters.",
"examples": [
"paracetamol 500 mg brand"
],
"type": [
"string",
"null"
]
},
"term": {
"description": "Kept exactly as written in every protected translation.",
"examples": [
"Acamol"
],
"type": "string"
},
"translations": {
"description": "Optional required rendering per target language. When set for the target, it replaces the term; otherwise the term is kept verbatim.",
"examples": [
{
"he": "אקמול"
}
],
"properties": {
"en": {
"type": "string"
},
"he": {
"type": "string"
},
"ru": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Resolve the right-to-left / left-to-right structure of mixed Hebrew text: base direction, whether it mixes directions, dominant language and script, and the runs to render, where every left-to-right unit (a Latin term, a price, a range such as 10–20%, a date, a model number) stays whole. Send one `text`, or `fields` (a map of name → string, up to 100) to analyze a whole record at once. `base`: `auto` (default), `ltr` or `rtl`. Deterministic and free: no model, no character quota.",
"inputSchema": {
"description": "Provide exactly one of `text` (a single string) or `fields` (a map of name → string). Max 20,000 chars per string; up to 100 fields.",
"properties": {
"base": {
"default": "auto",
"description": "Paragraph direction to resolve against. `auto` (default) uses the first strong letter.",
"enum": [
"auto",
"ltr",
"rtl"
],
"examples": [
"auto"
],
"type": "string"
},
"fields": {
"additionalProperties": {
"maxLength": 20000,
"type": "string"
},
"description": "A map of field name → string, up to 100 fields and 20,000 characters in total. Send this or `text`.",
"examples": [
{
"subtitle": "Read the summary",
"title": "מסמך Q3 ready"
}
],
"type": "object"
},
"text": {
"description": "A single string, up to 20,000 characters. Send this or `fields`.",
"examples": [
"שלום world"
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"title": "AnalyzeRequest",
"type": "object"
},
"name": "analyze_direction",
"outputSchema": {
"properties": {
"analysis": {
"allOf": [
{
"description": "Directionality metadata for one string.",
"properties": {
"dir": {
"description": "Paragraph base direction. With `base: \"auto\"` this follows the Unicode first-strong rule, matching CSS `dir=\"auto\"`.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"display_runs": {
"description": "Runs for display: every left-to-right unit (a Latin term, a number with its unit, a range, a date, a percentage, a comparison such as <5) is one run, so it never splits or mirrors. Render these, or use /v1/wrap.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"lang": {
"description": "Dominant BCP 47 language, from the dominant script.",
"examples": [
"he"
],
"type": "string"
},
"mixed": {
"description": "True when the text contains both strong right-to-left and strong left-to-right letters. Digits and invisible marks do not count.",
"examples": [
true
],
"type": "boolean"
},
"runs": {
"description": "Runs exactly as the Unicode Bidirectional Algorithm resolves them.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Hebr"
],
"type": "string"
}
},
"type": "object"
},
{
"description": "Present when the request sent `text`."
}
]
},
"fields": {
"additionalProperties": {
"description": "Directionality metadata for one string.",
"properties": {
"dir": {
"description": "Paragraph base direction. With `base: \"auto\"` this follows the Unicode first-strong rule, matching CSS `dir=\"auto\"`.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"display_runs": {
"description": "Runs for display: every left-to-right unit (a Latin term, a number with its unit, a range, a date, a percentage, a comparison such as <5) is one run, so it never splits or mirrors. Render these, or use /v1/wrap.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"lang": {
"description": "Dominant BCP 47 language, from the dominant script.",
"examples": [
"he"
],
"type": "string"
},
"mixed": {
"description": "True when the text contains both strong right-to-left and strong left-to-right letters. Digits and invisible marks do not count.",
"examples": [
true
],
"type": "boolean"
},
"runs": {
"description": "Runs exactly as the Unicode Bidirectional Algorithm resolves them.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Hebr"
],
"type": "string"
}
},
"type": "object"
},
"description": "Present when the request sent `fields`: one analysis per field name.",
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Turn a Hebrew clinical question (up to 2,000 characters) into an English query for a record search or an English model. English terms, numbers and dates are kept exactly, and Hebrew spellings of drug names are mapped back to English, preferring the patient's own terms in `known_terms` and the account terms. Counts 3× toward the monthly character quota.",
"inputSchema": {
"properties": {
"glossary": {
"additionalProperties": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"description": "English term → Hebrew rendering, used to map the Hebrew back to English.",
"examples": [
{
"metformin": "מטפורמין"
}
],
"type": "object"
},
"known_terms": {
"description": "English terms from the patient's record, used to map Hebrew spellings back. Up to 500. Account terms are added automatically.",
"examples": [
[
"metformin",
"lisinopril"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"text": {
"description": "The Hebrew question, up to 2,000 characters.",
"examples": [
"האם המטופלת עדיין לוקחת מטפורמין?"
],
"maxLength": 2000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "clinical_query",
"outputSchema": {
"properties": {
"query": {
"description": "English query for your record search.",
"examples": [
"Is the patient still taking metformin?"
],
"type": "string"
},
"terms": {
"description": "Hebrew spellings that were mapped back to English terms.",
"items": {
"properties": {
"english": {
"examples": [
"metformin"
],
"type": "string"
},
"hebrew": {
"examples": [
"מטפורמין"
],
"type": "string"
},
"source": {
"description": "Where the mapping came from.",
"enum": [
"known_terms",
"lexicon",
"glossary"
],
"examples": [
"known_terms"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"usage": {
"properties": {
"characters": {
"examples": [
33
],
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Translate a complete English clinical text (a discharge summary, patient instructions, a visit note, a model's answer) into Israeli medical Hebrew for a clinician or a patient. Drug names, doses, lab values, units, ICD-10 codes, clinical abbreviations, identifiers and every number are kept exactly; every sentence is checked for numbers, negation and laterality and reviewed for meaning. A sentence that fails is retried, then returned in English with status `fallback`: unverified Hebrew is never returned. Treat fallback sentences as untranslated.\n\n`audience`: `clinician` (default, keeps BID/PO shorthand) or `patient` (plain words). Pass the patient's medication and problem lists as `protected_terms`, names as `redact_terms` (hidden from the model), `reader_gender` and `patient_gender` when known, and `date_order` (US records are MDY). Counts 3× toward the monthly character quota.",
"inputSchema": {
"properties": {
"audience": {
"default": "clinician",
"description": "Who reads the Hebrew. `clinician` (default) keeps shorthand such as BID and PO; `patient` writes dosing shorthand (BID, PRN) as plain words.",
"enum": [
"clinician",
"patient"
],
"examples": [
"patient"
],
"type": "string"
},
"bidi": {
"default": "isolate",
"description": "`isolate` wraps English values in Unicode isolates so \"5 mg\" never renders as \"mg 5\". `none` returns plain text.",
"enum": [
"isolate",
"none"
],
"examples": [
"isolate"
],
"type": "string"
},
"date_order": {
"default": "MDY",
"description": "How to read ambiguous numeric dates in the source. US records are MDY.",
"enum": [
"MDY",
"DMY"
],
"examples": [
"MDY"
],
"type": "string"
},
"date_style": {
"default": "hebrew",
"description": "`hebrew` writes \"4 במרץ 2026\"; `iso` writes 2026-03-04; `keep` leaves unambiguous dates as written (an ambiguous one is still rewritten). A two-digit year is kept as written.",
"enum": [
"hebrew",
"iso",
"keep"
],
"examples": [
"hebrew"
],
"type": "string"
},
"glossary": {
"additionalProperties": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"description": "English term → required Hebrew rendering. Up to 500 entries.",
"examples": [
{
"hypertension": "יתר לחץ דם"
}
],
"type": "object"
},
"patient_gender": {
"description": "Gender of the patient in third-person references. Inferred from he/she when omitted.",
"enum": [
"male",
"female"
],
"examples": [
"male"
],
"type": "string"
},
"protected_terms": {
"description": "Kept verbatim. Pass the patient's medication and problem lists from the record. Up to 500, each up to 200 characters. Added to the account terms list for this request.",
"examples": [
[
"Eliquis 5 mg BID",
"atrial fibrillation"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"reader_gender": {
"description": "Gender of the reader, the person the text calls \"you\". Omit when unknown.",
"enum": [
"male",
"female"
],
"examples": [
"female"
],
"type": "string"
},
"redact_terms": {
"description": "Kept verbatim and never shown to the model (patient and staff names). Up to 200.",
"examples": [
[
"Dana Levi"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 200,
"type": "array"
},
"text": {
"description": "English text, 1 to 20,000 characters. Markdown lists, headings and tables keep their structure. Counts toward the monthly character quota.",
"examples": [
"Based on your records, you are taking Eliquis 5 mg twice a day. Your dose was changed on 03/04/2026."
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "clinical_translate",
"outputSchema": {
"properties": {
"id": {
"description": "Request identifier.",
"examples": [
"med_a1b2c3d4e5f6"
],
"type": "string"
},
"segments": {
"description": "One entry per sentence, in order.",
"items": {
"properties": {
"index": {
"description": "Position of the sentence, from 0.",
"examples": [
0
],
"type": "integer"
},
"issues": {
"description": "Why a sentence was retried or fell back. Empty for `ok`.",
"items": {
"properties": {
"code": {
"description": "Check that failed: `term_missing`, `date_missing`, `number_added`, `digits_added`, `negation_lost`, `laterality_lost`, `laterality_swapped`, `gender_mismatch`, `meaning`, `placeholder_missing`, `length_ratio`, `provider_error` and others.",
"examples": [
"negation_lost"
],
"type": "string"
},
"detail": {
"description": "Human-readable explanation.",
"examples": [
"The source says \"no known allergies\"; the translation drops the negation."
],
"type": "string"
},
"severity": {
"description": "`error` blocks the sentence; `warning` is informational.",
"enum": [
"error",
"warning"
],
"examples": [
"error"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"prefix": {
"description": "Markdown structure emitted before the text (list marker, heading).",
"examples": [
"- "
],
"type": "string"
},
"source": {
"description": "The English sentence.",
"examples": [
"You are taking Eliquis 5 mg twice a day."
],
"type": "string"
},
"spans": {
"description": "Protected values in this sentence. Redacted names and identifiers are left out.",
"items": {
"properties": {
"ambiguous_date": {
"description": "True when a numeric date could be read two ways and `date_order` decided it.",
"examples": [
true
],
"type": "boolean"
},
"render": {
"description": "How the value was written in the Hebrew, when it was rewritten (dates).",
"examples": [
"4 במרץ 2026"
],
"type": "string"
},
"type": {
"description": "What was protected: `drug`, `dose`, `abbreviation`, `code`, `number`, `date`, `term`, `glossary`, `identifier`, `name` and others.",
"examples": [
"dose"
],
"type": "string"
},
"value": {
"description": "The protected source value. Omitted for names and identifiers.",
"examples": [
"5 mg"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"status": {
"description": "`ok`: verified first time. `retried`: passed after one retry with a stronger model. `fallback`: no translation passed, `text` is the English. `passthrough`: structure or values only, no model needed.",
"enum": [
"ok",
"retried",
"fallback",
"passthrough"
],
"examples": [
"ok"
],
"type": "string"
},
"suffix": {
"description": "Whitespace or structure after the text. Join `prefix + text + suffix` for every segment to rebuild the document.",
"examples": [
"\n"
],
"type": "string"
},
"text": {
"description": "Verified Hebrew, or the English source when status is `fallback`.",
"examples": [
"את נוטלת Eliquis 5 mg פעמיים ביום."
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"stats": {
"properties": {
"fallback": {
"description": "Sentences returned in English. Treat them as untranslated.",
"examples": [
0
],
"type": "integer"
},
"ok": {
"examples": [
2
],
"type": "integer"
},
"passthrough": {
"examples": [
0
],
"type": "integer"
},
"retried": {
"examples": [
0
],
"type": "integer"
},
"segments": {
"description": "Total sentences.",
"examples": [
2
],
"type": "integer"
}
},
"type": "object"
},
"text": {
"description": "The whole Hebrew document: every segment joined with its prefix and suffix.",
"examples": [
"את נוטלת Eliquis 5 mg פעמיים ביום. המינון שלך שונה ב־4 במרץ 2026."
],
"type": "string"
},
"usage": {
"properties": {
"characters": {
"description": "Characters charged.",
"examples": [
77
],
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Check Hebrew that was produced some other way (for example by your own model) against its English clinical source: every drug, dose, lab value, code and number must appear exactly, no number may be added, dates must be unambiguous, and negation and laterality must survive. `verification: \"strict\"` adds an independent model review for meaning changes; `standard` (default) is deterministic. Returns pass or fail with every issue. Counts 3× toward the monthly character quota.",
"inputSchema": {
"properties": {
"date_order": {
"default": "MDY",
"description": "How to read ambiguous numeric dates in the source.",
"enum": [
"MDY",
"DMY"
],
"examples": [
"MDY"
],
"type": "string"
},
"glossary": {
"additionalProperties": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"description": "English term → required Hebrew rendering.",
"examples": [
{
"hypertension": "יתר לחץ דם"
}
],
"type": "object"
},
"protected_terms": {
"description": "Terms that must appear verbatim. Up to 500.",
"examples": [
[
"Metformin"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"redact_terms": {
"description": "Names replaced before the reviewer sees the text. Up to 200.",
"examples": [
[
"Dana Levi"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 200,
"type": "array"
},
"source": {
"description": "The English source, up to 20,000 characters.",
"examples": [
"Metformin 500 mg BID since 03/04/2026."
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
},
"translation": {
"description": "The Hebrew to check, up to 40,000 characters.",
"examples": [
"Metformin 50 mg BID מאז 03/04/2026."
],
"maxLength": 40000,
"minLength": 1,
"type": "string"
},
"verification": {
"default": "standard",
"description": "`standard` (default) runs the deterministic checks. `strict` adds an independent model review for meaning changes.",
"enum": [
"strict",
"standard"
],
"examples": [
"standard"
],
"type": "string"
}
},
"required": [
"source",
"translation"
],
"type": "object"
},
"name": "clinical_verify",
"outputSchema": {
"properties": {
"issues": {
"description": "Every problem found.",
"items": {
"properties": {
"code": {
"description": "Check that failed: `term_missing`, `date_missing`, `number_added`, `digits_added`, `negation_lost`, `laterality_lost`, `laterality_swapped`, `gender_mismatch`, `meaning`, `placeholder_missing`, `length_ratio`, `provider_error` and others.",
"examples": [
"negation_lost"
],
"type": "string"
},
"detail": {
"description": "Human-readable explanation.",
"examples": [
"The source says \"no known allergies\"; the translation drops the negation."
],
"type": "string"
},
"severity": {
"description": "`error` blocks the sentence; `warning` is informational.",
"enum": [
"error",
"warning"
],
"examples": [
"error"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"pass": {
"description": "True when no issue has severity `error`.",
"examples": [
false
],
"type": "boolean"
},
"usage": {
"properties": {
"characters": {
"description": "Characters charged: source plus translation.",
"examples": [
72
],
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Permanently delete one account term by its id (from list_terms or add_terms). Protected translations stop using it within 30 seconds. Free.",
"inputSchema": {
"properties": {
"id": {
"description": "The term id, from list_terms or add_terms.",
"examples": [
"3f2c1a9e-8b7d-4c6e-9f10-2a3b4c5d6e7f"
],
"format": "uuid",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"name": "delete_term",
"outputSchema": {
"properties": {
"deleted": {
"type": "boolean"
}
},
"type": "object"
}
},
{
"description": "Detect the dominant language, script and direction of a string, with one segment per language. Built for short, code-switched input (chat messages, search queries, voice transcripts): a brand or acronym such as \"PayPal\" or \"API\" inside a Hebrew or Russian sentence does not change the dominant language. Use it to pick `source_lang` or the reply language before translating. Latin script is tagged `en`. Deterministic and free: no character quota.",
"inputSchema": {
"properties": {
"text": {
"description": "Text to classify, up to 20,000 characters. Built for short, code-switched input.",
"examples": [
"Можно оплатить через PayPal сегодня?"
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "detect_language",
"outputSchema": {
"properties": {
"confidence": {
"description": "Share of letters in the dominant language, 0 to 1.",
"examples": [
0.941
],
"type": "number"
},
"dir": {
"description": "Base direction of the dominant language.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"ltr"
],
"type": "string"
},
"lang": {
"description": "Dominant language (BCP 47). Latin script is tagged `en`.",
"examples": [
"ru"
],
"type": "string"
},
"languages": {
"description": "Every language found, largest share first.",
"items": {
"properties": {
"lang": {
"examples": [
"ru"
],
"type": "string"
},
"share": {
"description": "Share of letters, 0 to 1.",
"examples": [
0.941
],
"type": "number"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Cyrl"
],
"type": "string"
},
"segments": {
"description": "Same-script stretches in order, e.g. ru · en (\"CBC\") · ru. Latin script is tagged en.",
"items": {
"properties": {
"end": {
"examples": [
28
],
"type": "integer"
},
"lang": {
"examples": [
"en"
],
"type": "string"
},
"script": {
"examples": [
"Latn"
],
"type": "string"
},
"start": {
"examples": [
21
],
"type": "integer"
},
"text": {
"examples": [
"PayPal "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Check that the HebrewCore API is up and its database reachable. Needs no API key and uses no quota.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "health",
"outputSchema": {
"properties": {
"db": {
"description": "`ok`, or `error` when the database check failed.",
"examples": [
"ok"
],
"type": "string"
},
"status": {
"description": "`ok` when the API is serving.",
"examples": [
"ok"
],
"type": "string"
},
"version": {
"description": "API version.",
"examples": [
"1.0.0"
],
"type": "string"
}
},
"type": "object"
}
},
{
"description": "List every language HebrewCore translates to and from, with its code (use it as `source_lang` / `target_lang`), English and native name, and writing direction. Protected translation covers Hebrew, English and Russian. Free.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_languages",
"outputSchema": {
"properties": {
"languages": {
"description": "Every supported language.",
"items": {
"properties": {
"code": {
"description": "BCP 47 code to pass as `source_lang` or `target_lang`.",
"examples": [
"he"
],
"type": "string"
},
"dir": {
"description": "Writing direction.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"name": {
"description": "English name.",
"examples": [
"Hebrew"
],
"type": "string"
},
"native": {
"description": "Name in the language itself.",
"examples": [
"עברית"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "List the account's protected terms: drug, product and brand names that every protected translation on the account keeps exactly as written (or renders with the term's per-language translation when one is set). Returns each term's id, which delete_term needs. Free.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_terms",
"outputSchema": {
"properties": {
"limit": {
"type": "integer"
},
"terms": {
"items": {
"properties": {
"created_at": {
"description": "ISO 8601 timestamp.",
"examples": [
"2026-01-15T09:30:00.000Z"
],
"type": "string"
},
"id": {
"examples": [
"3f2c1a9e-8b7d-4c6e-9f10-2a3b4c5d6e7f"
],
"type": "string"
},
"note": {
"description": "Your own note, up to 500 characters.",
"examples": [
"paracetamol 500 mg brand"
],
"type": [
"string",
"null"
]
},
"term": {
"description": "Kept exactly as written in every protected translation.",
"examples": [
"Acamol"
],
"type": "string"
},
"translations": {
"description": "Optional required rendering per target language. When set for the target, it replaces the term; otherwise the term is kept verbatim.",
"examples": [
{
"he": "אקמול"
}
],
"properties": {
"en": {
"type": "string"
},
"he": {
"type": "string"
},
"ru": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Remove nikud, dagesh and cantillation marks from Hebrew text, keeping punctuation such as the maqaf. Use it to normalize text for search keys, comparison and de-duplication, or to get display text back from vocalized text. Deterministic and free: no character quota.",
"inputSchema": {
"properties": {
"text": {
"description": "Hebrew text with nikud or cantillation, up to 20,000 characters.",
"examples": [
"שָׁלוֹם"
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "strip_nikud",
"outputSchema": {
"properties": {
"stripped": {
"description": "The text without nikud, dagesh or cantillation. Punctuation such as the maqaf is kept.",
"examples": [
"שלום"
],
"type": "string"
},
"text": {
"description": "The input.",
"examples": [
"שָׁלוֹם"
],
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Translate one text between Hebrew, English, Russian and the other languages from list_languages. Use it for product, support, interface, finance, legal and general clinical text. Returns the translation with its direction metadata.\n\nProtected translation: set `protect: true`, a `domain` (`general`, `clinical`, `finance`, `legal`) or any protection field, and prices, quantities, numbers, dates, codes, identifiers, product names, interface variables ({name}, %s) and `protected_terms` are kept exactly as written, and every sentence is verified; a sentence that cannot be verified comes back in the source language (status `fallback`) instead of a wrong value. `finance` also protects IBANs, card and account numbers and checks credit/debit direction; `legal` keeps clause references, citations and defined terms and checks shall/may modality; `clinical` protects drugs, doses and lab values.\n\nGender: `listener_gender` is the reader (\"you\"), `speaker_gender` the speaker (\"I\", e.g. an assistant). `glossary` maps source terms to required renderings; `redact_terms` keeps names exact and hidden from the model. `message_format: \"icu\"` translates an ICU MessageFormat string and rewrites plural branches for Hebrew and Russian. `quality`: `fast`, `balanced` (default) or `smartest`.\n\nUses the monthly character quota. For many short strings use translate_batch; for full English clinical documents into Hebrew use clinical_translate.",
"inputSchema": {
"properties": {
"audience": {
"description": "Clinical domain register. `clinician` (default) keeps shorthand such as BID and PO; `patient` writes it as plain words.",
"enum": [
"clinician",
"patient"
],
"examples": [
"patient"
],
"type": "string"
},
"bidi": {
"description": "`isolate` wraps protected values in Unicode isolates in Hebrew output. Default none; see /v1/wrap.",
"enum": [
"isolate",
"none"
],
"examples": [
"none"
],
"type": "string"
},
"date_order": {
"description": "How to read ambiguous numeric dates such as 04/03/2026. Default MDY for English sources, DMY for Hebrew and Russian.",
"enum": [
"MDY",
"DMY"
],
"examples": [
"MDY"
],
"type": "string"
},
"date_style": {
"description": "`hebrew` (default) spells the month out in the target language (\"4 במרץ 2026\", \"4 марта 2026 г.\"); `iso`; `keep` (unambiguous dates only).",
"enum": [
"hebrew",
"iso",
"keep"
],
"examples": [
"hebrew"
],
"type": "string"
},
"domain": {
"description": "`general` (default) for product, commerce, support and interface text. `clinical` adds clinical register and drug, dose, lab and abbreviation detection. `finance` adds a formal banking register, protects IBANs, SWIFT/BIC codes, bank account numbers (including Israeli bank-branch-account), Israeli ID numbers and card numbers (check digits verified; these values are never shown to the model), invoice, policy and transaction references, signed amounts, rates and basis points, and checks that every money direction (credit/debit, deposit/withdrawal, buy/sell, increase/decrease, gain/loss, who owes whom) is kept. `legal` adds a formal legal register, protects clause and section references (Section 4.2, Clause 7(b), סעיף 12(א), § 3) and case and statute citations, renders each defined term (\"the Company\") the same way throughout, and checks that modality (shall, may, shall not, is not required to) is kept. Any value implies `protect`.",
"enum": [
"general",
"clinical",
"finance",
"legal"
],
"examples": [
"finance"
],
"type": "string"
},
"gender": {
"description": "Grammatical gender for the reader where the target language marks it. For assistants, prefer `listener_gender` and `speaker_gender`.",
"enum": [
"male",
"female",
"general"
],
"examples": [
"general"
],
"type": "string"
},
"glossary": {
"additionalProperties": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"description": "Source term → required rendering in the target language. Up to 500 entries. Wins over an account term with the same text.",
"examples": [
{
"Checkout": "לתשלום"
}
],
"type": "object"
},
"listener_gender": {
"description": "Gender of the reader (\"you\"): תרצי / תרצה. Hebrew and Russian mark it; English does not. Without it, Hebrew interface text uses neutral forms.",
"enum": [
"male",
"female"
],
"examples": [
"female"
],
"type": "string"
},
"message_format": {
"description": "`icu`: the text is an ICU MessageFormat message. The result is a valid ICU message in the target language: arguments ({name}, {count, number}, {d, date, short}) and `#` are kept, plural and selectordinal branches are rewritten for the target language's CLDR categories (Hebrew one, two, other; Russian one, few, many, other; English one, other; exact matches such as =0 kept), and select keys are kept. A plural or select inside a sentence is moved to the top so every branch is a whole sentence; `protection.segments` lists each branch sentence. Always protected; Hebrew, English and Russian. Invalid ICU returns 400 `invalid_message_format`; a message that cannot be verified comes back unchanged with `protection.status: \"fallback\"`.",
"enum": [
"icu"
],
"examples": [
"icu"
],
"type": "string"
},
"patient_gender": {
"description": "Clinical domain: gender of a patient referred to in the third person.",
"enum": [
"male",
"female"
],
"examples": [
"male"
],
"type": "string"
},
"protect": {
"description": "Keep prices, quantities, numbers, dates, codes, identifiers, product names, interface variables ({name}, %s) and <keep>…</keep> text exactly as written, and verify every sentence. Implied by any protection field. Hebrew, English and Russian. Account terms switch it on automatically for these pairs.",
"examples": [
true
],
"type": "boolean"
},
"protected_terms": {
"description": "Terms kept exactly as written: product names, brand names, SKUs. Up to 500, each up to 200 characters. Added to the account terms list for this request.",
"examples": [
[
"Wireless Earbuds Pro",
"A-10234"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"quality": {
"default": "balanced",
"description": "`fast`: lowest latency, for high volume and short strings. `balanced`: the default. `smartest`: maximum nuance for long or sensitive text.",
"enum": [
"fast",
"balanced",
"smartest"
],
"examples": [
"balanced"
],
"type": "string"
},
"redact_terms": {
"description": "Kept exactly and never shown to the model: customer names and other personal data. Up to 200.",
"examples": [
[
"Dana Levi"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 200,
"type": "array"
},
"source_lang": {
"description": "BCP 47 source language, or `auto` (default) to detect it.",
"examples": [
"auto"
],
"type": "string"
},
"speaker_gender": {
"description": "Gender of the speaker (\"I\"), for an assistant or brand voice: מצאתי, я нашла / я нашёл.",
"enum": [
"male",
"female"
],
"examples": [
"female"
],
"type": "string"
},
"target_lang": {
"description": "BCP 47 target language, e.g. `he`, `en`, `ru`. See GET /v1/languages.",
"examples": [
"he"
],
"type": "string"
},
"text": {
"description": "Text to translate, 1 to 20,000 characters. Counts toward the monthly character quota.",
"examples": [
"Welcome to your account"
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
},
"transliterate": {
"default": false,
"description": "Include a Latin transliteration when the target is Hebrew.",
"examples": [
false
],
"type": "boolean"
}
},
"required": [
"text",
"target_lang"
],
"type": "object"
},
"name": "translate",
"outputSchema": {
"properties": {
"id": {
"description": "Request identifier. Include it when you contact support.",
"examples": [
"txn_a1b2c3d4e5f6"
],
"type": "string"
},
"quality": {
"description": "Quality tier used.",
"examples": [
"balanced"
],
"type": "string"
},
"source": {
"allOf": [
{
"description": "Directionality metadata for one string.",
"properties": {
"dir": {
"description": "Paragraph base direction. With `base: \"auto\"` this follows the Unicode first-strong rule, matching CSS `dir=\"auto\"`.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"display_runs": {
"description": "Runs for display: every left-to-right unit (a Latin term, a number with its unit, a range, a date, a percentage, a comparison such as <5) is one run, so it never splits or mirrors. Render these, or use /v1/wrap.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"lang": {
"description": "Dominant BCP 47 language, from the dominant script.",
"examples": [
"he"
],
"type": "string"
},
"mixed": {
"description": "True when the text contains both strong right-to-left and strong left-to-right letters. Digits and invisible marks do not count.",
"examples": [
true
],
"type": "boolean"
},
"runs": {
"description": "Runs exactly as the Unicode Bidirectional Algorithm resolves them.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Hebr"
],
"type": "string"
}
},
"type": "object"
},
{
"properties": {
"text": {
"description": "The source text as sent.",
"examples": [
"Welcome to your account"
],
"type": "string"
}
},
"type": "object"
}
],
"description": "The source text with its directionality metadata."
},
"translation": {
"allOf": [
{
"description": "Directionality metadata for one string.",
"properties": {
"dir": {
"description": "Paragraph base direction. With `base: \"auto\"` this follows the Unicode first-strong rule, matching CSS `dir=\"auto\"`.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"display_runs": {
"description": "Runs for display: every left-to-right unit (a Latin term, a number with its unit, a range, a date, a percentage, a comparison such as <5) is one run, so it never splits or mirrors. Render these, or use /v1/wrap.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"lang": {
"description": "Dominant BCP 47 language, from the dominant script.",
"examples": [
"he"
],
"type": "string"
},
"mixed": {
"description": "True when the text contains both strong right-to-left and strong left-to-right letters. Digits and invisible marks do not count.",
"examples": [
true
],
"type": "boolean"
},
"runs": {
"description": "Runs exactly as the Unicode Bidirectional Algorithm resolves them.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Hebr"
],
"type": "string"
}
},
"type": "object"
},
{
"properties": {
"protection": {
"description": "Present when the request used protected translation.",
"properties": {
"issues": {
"description": "Problems found by the checks. Empty when every sentence passed.",
"items": {
"properties": {
"code": {
"description": "Check that failed, e.g. `term_missing`, `date_missing`, `number_added`, `digits_added`, `negation_lost`, `laterality_lost`, `gender_mismatch`, `meaning`, `placeholder_missing`; finance: `direction_swapped` (error), `direction_lost` (warning); legal: `modality_changed`, `defined_term_changed`.",
"examples": [
"term_missing"
],
"type": "string"
},
"detail": {
"examples": [
"\"A-10234\" (term) is missing or altered."
],
"type": "string"
},
"severity": {
"enum": [
"error",
"warning"
],
"examples": [
"error"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"segments": {
"description": "Per-sentence result, in order.",
"items": {
"properties": {
"source": {
"examples": [
"Would you like me to schedule delivery for 04/03/2026?"
],
"type": "string"
},
"status": {
"enum": [
"ok",
"retried",
"fallback",
"passthrough"
],
"examples": [
"ok"
],
"type": "string"
},
"text": {
"examples": [
"האם תרצי שאקבע את המשלוח ל־3 באפריל 2026?"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"source_lang": {
"description": "Source language used for protection (detected when `source_lang` is `auto`).",
"examples": [
"en"
],
"type": "string"
},
"spans": {
"description": "Every protected value, in source order.",
"items": {
"properties": {
"ambiguous_date": {
"description": "True when a numeric date could be read two ways and `date_order` decided it.",
"examples": [
true
],
"type": "boolean"
},
"render": {
"description": "How the value was written in the translation, when it was rewritten (dates).",
"examples": [
"3 באפריל 2026"
],
"type": "string"
},
"type": {
"description": "What was protected: `term`, `glossary`, `number`, `ordinal`, `date`, `identifier`, `email`, `url`, `template` (interface variables), `keep`, `markup`, `code_inline`, `name` (redacted); in the clinical domain `drug`, `dose`, `abbreviation`, `code`; in the finance domain `account` (IBAN, BIC, bank account), `id_number`, `card` (all three redacted), `reference`; in the legal domain `clause`, `citation`, `defined_term` (its `render` is the rendering used throughout).",
"examples": [
"date"
],
"type": "string"
},
"value": {
"description": "The protected source value. Omitted for redacted values.",
"examples": [
"04/03/2026"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"status": {
"description": "Worst sentence status. `ok`: verified first time. `retried`: a sentence was retried with a stronger model and then passed. `fallback`: at least one sentence could not be verified and is returned in the source language. `passthrough`: no model was needed.",
"enum": [
"ok",
"retried",
"fallback",
"passthrough"
],
"examples": [
"ok"
],
"type": "string"
}
},
"type": "object"
},
"text": {
"description": "The translation, or the source text for sentences that fell back.",
"examples": [
"ברוכים הבאים לחשבון שלך"
],
"type": "string"
},
"transliteration": {
"description": "Latin transliteration of a Hebrew result when `transliterate` was true, otherwise null.",
"examples": [
"Bruchim haba'im lakheshbon shelkha"
],
"type": [
"string",
"null"
]
}
},
"type": "object"
}
],
"description": "The translation with its directionality metadata."
},
"usage": {
"description": "What this request consumed.",
"properties": {
"characters": {
"description": "Characters charged to the monthly quota for this request.",
"examples": [
23
],
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Translate 1 to 50 strings (each up to 5,000 characters) into one target language in a single call; results come back in input order. Use it for the interface strings of a screen, a string file, or the fields of a product.\n\nTakes every option of translate: `protect`, `domain` (`general`, `clinical`, `finance`, `legal`), `protected_terms`, `glossary`, `listener_gender`, `speaker_gender`, `message_format: \"icu\"` and `quality`. With protection, interface variables such as {count}, {{name}} and %s, numbers, prices and dates stay exactly as written, and each item carries its own verification status. Uses the monthly character quota.",
"inputSchema": {
"properties": {
"audience": {
"description": "Clinical domain register. `clinician` (default) keeps shorthand such as BID and PO; `patient` writes it as plain words.",
"enum": [
"clinician",
"patient"
],
"examples": [
"patient"
],
"type": "string"
},
"bidi": {
"description": "`isolate` wraps protected values in Unicode isolates in Hebrew output. Default none; see /v1/wrap.",
"enum": [
"isolate",
"none"
],
"examples": [
"none"
],
"type": "string"
},
"date_order": {
"description": "How to read ambiguous numeric dates such as 04/03/2026. Default MDY for English sources, DMY for Hebrew and Russian.",
"enum": [
"MDY",
"DMY"
],
"examples": [
"MDY"
],
"type": "string"
},
"date_style": {
"description": "`hebrew` (default) spells the month out in the target language (\"4 במרץ 2026\", \"4 марта 2026 г.\"); `iso`; `keep` (unambiguous dates only).",
"enum": [
"hebrew",
"iso",
"keep"
],
"examples": [
"hebrew"
],
"type": "string"
},
"domain": {
"description": "`general` (default) for product, commerce, support and interface text. `clinical` adds clinical register and drug, dose, lab and abbreviation detection. `finance` adds a formal banking register, protects IBANs, SWIFT/BIC codes, bank account numbers (including Israeli bank-branch-account), Israeli ID numbers and card numbers (check digits verified; these values are never shown to the model), invoice, policy and transaction references, signed amounts, rates and basis points, and checks that every money direction (credit/debit, deposit/withdrawal, buy/sell, increase/decrease, gain/loss, who owes whom) is kept. `legal` adds a formal legal register, protects clause and section references (Section 4.2, Clause 7(b), סעיף 12(א), § 3) and case and statute citations, renders each defined term (\"the Company\") the same way throughout, and checks that modality (shall, may, shall not, is not required to) is kept. Any value implies `protect`.",
"enum": [
"general",
"clinical",
"finance",
"legal"
],
"examples": [
"finance"
],
"type": "string"
},
"gender": {
"description": "Grammatical gender for the reader where the target language marks it.",
"enum": [
"male",
"female",
"general"
],
"examples": [
"general"
],
"type": "string"
},
"glossary": {
"additionalProperties": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"description": "Source term → required rendering in the target language. Up to 500 entries. Wins over an account term with the same text.",
"examples": [
{
"Checkout": "לתשלום"
}
],
"type": "object"
},
"items": {
"description": "1 to 50 strings, each up to 5,000 characters. A protected batch carries at most 20,000 characters in total.",
"examples": [
[
"{count} items in your cart",
"Checkout",
"Last updated %s ago"
]
],
"items": {
"maxLength": 5000,
"minLength": 1,
"type": "string"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"listener_gender": {
"description": "Gender of the reader (\"you\"): תרצי / תרצה. Hebrew and Russian mark it; English does not. Without it, Hebrew interface text uses neutral forms.",
"enum": [
"male",
"female"
],
"examples": [
"female"
],
"type": "string"
},
"message_format": {
"description": "`icu`: every item is an ICU MessageFormat message. Each result is a valid ICU message in the target language: arguments ({name}, {count, number}, {d, date, short}) and `#` are kept, plural and selectordinal branches are rewritten for the target language's CLDR categories (Hebrew one, two, other; Russian one, few, many, other; English one, other; exact matches such as =0 kept), and select keys are kept. A plural or select inside a sentence is moved to the top so every branch is a whole sentence; `protection.segments` lists each branch sentence. Always protected; Hebrew, English and Russian. Invalid ICU returns 400 `invalid_message_format`; a message that cannot be verified comes back unchanged with `protection.status: \"fallback\"`.",
"enum": [
"icu"
],
"examples": [
"icu"
],
"type": "string"
},
"patient_gender": {
"description": "Clinical domain: gender of a patient referred to in the third person.",
"enum": [
"male",
"female"
],
"examples": [
"male"
],
"type": "string"
},
"protect": {
"description": "Keep prices, quantities, numbers, dates, codes, identifiers, product names, interface variables ({name}, %s) and <keep>…</keep> text exactly as written, and verify every sentence. Implied by any protection field. Hebrew, English and Russian. Account terms switch it on automatically for these pairs.",
"examples": [
true
],
"type": "boolean"
},
"protected_terms": {
"description": "Terms kept exactly as written: product names, brand names, SKUs. Up to 500, each up to 200 characters. Added to the account terms list for this request.",
"examples": [
[
"Wireless Earbuds Pro",
"A-10234"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 500,
"type": "array"
},
"quality": {
"default": "balanced",
"description": "Quality tier, applied to every item.",
"enum": [
"fast",
"balanced",
"smartest"
],
"examples": [
"balanced"
],
"type": "string"
},
"redact_terms": {
"description": "Kept exactly and never shown to the model: customer names and other personal data. Up to 200.",
"examples": [
[
"Dana Levi"
]
],
"items": {
"maxLength": 200,
"minLength": 1,
"type": "string"
},
"maxItems": 200,
"type": "array"
},
"source_lang": {
"description": "BCP 47 source language, or `auto` (default).",
"examples": [
"auto"
],
"type": "string"
},
"speaker_gender": {
"description": "Gender of the speaker (\"I\"), for an assistant or brand voice: מצאתי, я нашла / я нашёл.",
"enum": [
"male",
"female"
],
"examples": [
"female"
],
"type": "string"
},
"target_lang": {
"description": "BCP 47 target language, applied to every item.",
"examples": [
"he"
],
"type": "string"
},
"transliterate": {
"default": false,
"description": "Include a Latin transliteration when the target is Hebrew.",
"examples": [
false
],
"type": "boolean"
}
},
"required": [
"items",
"target_lang"
],
"type": "object"
},
"name": "translate_batch",
"outputSchema": {
"properties": {
"results": {
"description": "One translation per item, in input order.",
"items": {
"allOf": [
{
"description": "Directionality metadata for one string.",
"properties": {
"dir": {
"description": "Paragraph base direction. With `base: \"auto\"` this follows the Unicode first-strong rule, matching CSS `dir=\"auto\"`.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"display_runs": {
"description": "Runs for display: every left-to-right unit (a Latin term, a number with its unit, a range, a date, a percentage, a comparison such as <5) is one run, so it never splits or mirrors. Render these, or use /v1/wrap.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"lang": {
"description": "Dominant BCP 47 language, from the dominant script.",
"examples": [
"he"
],
"type": "string"
},
"mixed": {
"description": "True when the text contains both strong right-to-left and strong left-to-right letters. Digits and invisible marks do not count.",
"examples": [
true
],
"type": "boolean"
},
"runs": {
"description": "Runs exactly as the Unicode Bidirectional Algorithm resolves them.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"script": {
"description": "Dominant ISO 15924 script.",
"examples": [
"Hebr"
],
"type": "string"
}
},
"type": "object"
},
{
"properties": {
"protection": {
"description": "Present when the request used protected translation.",
"properties": {
"issues": {
"description": "Problems found by the checks. Empty when every sentence passed.",
"items": {
"properties": {
"code": {
"description": "Check that failed, e.g. `term_missing`, `date_missing`, `number_added`, `digits_added`, `negation_lost`, `laterality_lost`, `gender_mismatch`, `meaning`, `placeholder_missing`; finance: `direction_swapped` (error), `direction_lost` (warning); legal: `modality_changed`, `defined_term_changed`.",
"examples": [
"term_missing"
],
"type": "string"
},
"detail": {
"examples": [
"\"A-10234\" (term) is missing or altered."
],
"type": "string"
},
"severity": {
"enum": [
"error",
"warning"
],
"examples": [
"error"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"segments": {
"description": "Per-sentence result, in order.",
"items": {
"properties": {
"source": {
"examples": [
"Would you like me to schedule delivery for 04/03/2026?"
],
"type": "string"
},
"status": {
"enum": [
"ok",
"retried",
"fallback",
"passthrough"
],
"examples": [
"ok"
],
"type": "string"
},
"text": {
"examples": [
"האם תרצי שאקבע את המשלוח ל־3 באפריל 2026?"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"source_lang": {
"description": "Source language used for protection (detected when `source_lang` is `auto`).",
"examples": [
"en"
],
"type": "string"
},
"spans": {
"description": "Every protected value, in source order.",
"items": {
"properties": {
"ambiguous_date": {
"description": "True when a numeric date could be read two ways and `date_order` decided it.",
"examples": [
true
],
"type": "boolean"
},
"render": {
"description": "How the value was written in the translation, when it was rewritten (dates).",
"examples": [
"3 באפריל 2026"
],
"type": "string"
},
"type": {
"description": "What was protected: `term`, `glossary`, `number`, `ordinal`, `date`, `identifier`, `email`, `url`, `template` (interface variables), `keep`, `markup`, `code_inline`, `name` (redacted); in the clinical domain `drug`, `dose`, `abbreviation`, `code`; in the finance domain `account` (IBAN, BIC, bank account), `id_number`, `card` (all three redacted), `reference`; in the legal domain `clause`, `citation`, `defined_term` (its `render` is the rendering used throughout).",
"examples": [
"date"
],
"type": "string"
},
"value": {
"description": "The protected source value. Omitted for redacted values.",
"examples": [
"04/03/2026"
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"status": {
"description": "Worst sentence status. `ok`: verified first time. `retried`: a sentence was retried with a stronger model and then passed. `fallback`: at least one sentence could not be verified and is returned in the source language. `passthrough`: no model was needed.",
"enum": [
"ok",
"retried",
"fallback",
"passthrough"
],
"examples": [
"ok"
],
"type": "string"
}
},
"type": "object"
},
"text": {
"description": "The translation, or the source text for sentences that fell back.",
"examples": [
"ברוכים הבאים לחשבון שלך"
],
"type": "string"
},
"transliteration": {
"description": "Latin transliteration of a Hebrew result when `transliterate` was true, otherwise null.",
"examples": [
"Bruchim haba'im lakheshbon shelkha"
],
"type": [
"string",
"null"
]
}
},
"type": "object"
}
],
"description": "The translation with its directionality metadata."
},
"type": "array"
},
"usage": {
"description": "What this request consumed.",
"properties": {
"characters": {
"description": "Characters charged to the monthly quota for this request.",
"examples": [
23
],
"type": "integer"
}
},
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Romanize Hebrew into Latin letters (`direction: \"he-to-latin\"`, the default), or write Latin spelling in Hebrew letters (`direction: \"latin-to-he\"`) for name entry and search. Up to 5,000 characters. Uses the monthly character quota.",
"inputSchema": {
"properties": {
"direction": {
"default": "he-to-latin",
"description": "`he-to-latin` (default) romanizes Hebrew. `latin-to-he` writes Latin spelling in Hebrew letters, for name entry and search.",
"enum": [
"he-to-latin",
"latin-to-he"
],
"examples": [
"he-to-latin"
],
"type": "string"
},
"text": {
"description": "Text to transliterate, up to 5,000 characters.",
"examples": [
"שלום"
],
"maxLength": 5000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "transliterate",
"outputSchema": {
"properties": {
"direction": {
"description": "Direction used.",
"examples": [
"he-to-latin"
],
"type": "string"
},
"scheme": {
"description": "Romanization scheme used.",
"examples": [
"general"
],
"type": "string"
},
"text": {
"description": "The input.",
"examples": [
"שלום"
],
"type": "string"
},
"transliteration": {
"description": "The transliterated text.",
"examples": [
"shalom"
],
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Make one mixed Hebrew/English display line render correctly: every left-to-right unit (a Latin term, a price, a number with its unit, a range such as \"10–20%\", a date, a comparison such as \"<5\") is kept whole and in order, so nothing is reversed or mirrored inside a Hebrew line. `format`: `html` (dir spans, for web and React), `isolate` (Unicode isolates, for iOS, Android 7+ and browsers) or `marks` (LRM/RLM, for any renderer including older Android). Pass `base: \"rtl\"` for a Hebrew line that starts with a Latin term. Deterministic and free: no character quota.",
"inputSchema": {
"properties": {
"base": {
"default": "auto",
"description": "Paragraph direction of the display surface. Pass `rtl` for a Hebrew line even when it starts with a Latin term.",
"enum": [
"auto",
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"format": {
"default": "html",
"description": "`html` for the web; `isolate` (Unicode isolates) for modern text engines; `marks` (LRM/RLM) for every renderer, including older Android.",
"enum": [
"html",
"isolate",
"marks"
],
"examples": [
"html"
],
"type": "string"
},
"text": {
"description": "The display line, up to 20,000 characters.",
"examples": [
"הנחה: 10–20% על Galaxy S25 עד 31/12"
],
"maxLength": 20000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "wrap_for_display",
"outputSchema": {
"properties": {
"dir": {
"description": "Paragraph direction used.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"format": {
"description": "Format used.",
"examples": [
"html"
],
"type": "string"
},
"output": {
"description": "Render-ready text: HTML with `dir` spans, or the text with Unicode isolates or direction marks inserted.",
"examples": [
"<span dir=\"rtl\">הנחה: <span dir=\"ltr\" lang=\"und\">10–20%</span> על <span dir=\"ltr\" lang=\"en\">Galaxy S25</span> עד <span dir=\"ltr\" lang=\"und\">31/12</span></span>"
],
"type": "string"
},
"runs": {
"description": "The display runs the output was built from.",
"items": {
"description": "A maximal stretch of text with one direction, in logical order.",
"properties": {
"dir": {
"description": "Resolved direction of the run.",
"enum": [
"ltr",
"rtl"
],
"examples": [
"rtl"
],
"type": "string"
},
"end": {
"description": "UTF-16 offset after the last character, exclusive.",
"examples": [
5
],
"type": "integer"
},
"lang": {
"description": "Best-effort BCP 47 language of the run, from its script. `und` when undetermined (numbers, symbols).",
"examples": [
"he"
],
"type": "string"
},
"script": {
"description": "ISO 15924 script of the run: `Hebr`, `Latn`, `Cyrl`, `Arab`, or `Zyyy` for digits and punctuation only.",
"examples": [
"Hebr"
],
"type": "string"
},
"start": {
"description": "UTF-16 offset of the first character, inclusive.",
"examples": [
0
],
"type": "integer"
},
"text": {
"description": "The run text. Equals `input.slice(start, end)`.",
"examples": [
"שלום "
],
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:4d4ec28b4c947efc89e0768610765384cdfc9b1a4fcaa7aa8fa33a43498f701f | sha256sum