---
title: "Verify a Hebrew translation against its English source"
method: POST
path: "/v1/medical/verify"
tags: ["Medical"]
---

# Verify a Hebrew translation against its English source

`POST /v1/medical/verify`

## Request

- Base URL: `https://hc.itsbaba.com`
- URL: `https://hc.itsbaba.com/v1/medical/verify`
- Auth: HTTP bearer

Check Hebrew that was produced some other way, for example by your own model answering in Hebrew, against its English source. Every drug, dose, lab value, code and number from the English must appear verbatim, dates must be unambiguous, no number may be added, and negation and laterality must survive.

`verification: "strict"` adds an independent model review for meaning changes; names in `redact_terms` and identifiers are replaced before the reviewer sees the text. `standard` is deterministic.

**Quota.** Consumes the monthly character quota: the length of `source` plus `translation`.

**Limits.** `source` up to 20,000 characters, `translation` up to 40,000.

## Request body

- MedicalVerifyRequest
  - `source` string, required: The English source, up to 20,000 characters.
  - `translation` string, required: The Hebrew to check, up to 40,000 characters.
  - `protected_terms` string[]: Terms that must appear verbatim. Up to 500.
  - `redact_terms` string[]: Names replaced before the reviewer sees the text. Up to 200.
  - `glossary` object: English term → required Hebrew rendering.
  - `date_order` 'MDY' | 'DMY': How to read ambiguous numeric dates in the source.
  - `verification` 'strict' | 'standard': `standard` (default) runs the deterministic checks. `strict` adds an independent model review for meaning changes.

## Response `200`

Verdict

- MedicalVerifyResponse
  - `pass` boolean, required: True when no issue has severity `error`.
  - `issues` MedicalIssue[], required: Every problem found.
    - `code` string, required: 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.
    - `severity` 'error' | 'warning', required: `error` blocks the sentence; `warning` is informational.
    - `detail` string, required: Human-readable explanation.
  - `usage` object, required
    - `characters` integer, required: Characters charged: source plus translation.

## Other responses

- `400`: Invalid request: the body failed validation or a value is out of range.
- `401`: Missing, malformed, invalid or revoked API key.
- `402`: A new self-serve account must save a card in the console before it can use the API. Adding a card is free.
- `403`: The request came from a browser, or TLS is older than 1.2.
- `429`: Too many requests this minute (`rate_limited`), or the monthly character quota is used up (`quota_exceeded`). Retry `rate_limited` after a short wait; `quota_exceeded` lasts until the quota resets or the plan changes.
- `502`: The model provider failed for every sentence, so no Hebrew was produced. The characters are refunded. Safe to retry.
- `503`: Medical translation is not configured on this server.

---

[API](https://skmtc.dev/itsbaba/apis/hebrewcore-api.md) · [All operations](https://skmtc.dev/itsbaba/apis/hebrewcore-api/llms.txt) · [OpenAPI document](https://skmtc.dev/itsbaba/apis/hebrewcore-api/revisions/f54229695236?raw)
