POST /v1/translate
Translate Persian to English
Get an English translation of a Persian passage. The response retains the exact original text alongside the translation.
POST
https://api.vowelmarks.com/v1/translateUpdated October 18, 2026 · API version 1
Request
Send one text field and no unknown fields. The input may contain mixed Persian and English, but it must include at least one Persian-script letter and may contain at most 6,000 Unicode code points. The complete serialized JSON body must be at most 32 KiB (32,768 bytes).
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Persian or mixed Persian-English text containing at least one Persian-script letter. |
curl --fail-with-body https://api.vowelmarks.com/v1/translate \
-H "Authorization: Bearer $VOWELMARKS_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: lesson-42-translation" \
--data '{"text":"من فارسی میخوانم"}'Response
{
"request_id": "95b…",
"engine_version": "vowelmarks-api-v1.2026-08-10",
"original": "من فارسی میخوانم",
"translation": "I read Persian.",
"source_language": "fa",
"target_language": "en",
"usage": {
"meter": "text", "input_code_points": 17,
"multiplier": 2, "units": 34,
"additional_units": 0, "cache_hit": false
}
}Metering and failure behavior
Translation charges two text units for each submitted Unicode code point. The returned English text and response metadata are unmetered. A successful organization-isolated cache hit still charges the normal 2× amount; validation, provider, and failed-generation responses charge nothing.
- Keep
originalvisible if your product is meant to support Persian reading. - Do not parse undocumented provider or model details; they are deliberately absent.
- Use
request_idfor support andIdempotency-Keyfor retries. - A retryable 503 means no configured path produced a valid result, not that a lower-quality translation was substituted.