Tashkīl
Add Arabic diacritics to unvoweled text. Send plain Fusha, get back the same text with the vowel marks needed for precise reading — ready for narration, learning tools, or TTS.
Why diacritize
Tashkīl adds Arabic diacritics to unvoweled text, making written content clearer for pronunciation, narration, learning, and downstream speech workflows. The model is especially well suited to Modern Standard Arabic (Fusha), where it preserves formal wording while adding the vowel marks needed for more precise reading.
| Included | Typical use case |
|---|---|
| Arabic diacritization for plain text | Preparing Fusha scripts for narration and text-to-speech |
| Strong performance on Fusha and formal Arabic | Supporting Arabic reading and pronunciation tools |
| Synchronous API response — simple app flows | Normalizing formal Arabic text before publishing or review |
| Output usable before TTS or content review | Cleaner input for Synthesize and Audio narrative |
Endpoint
Authenticated with the x-api-key header, JSON body in, JSON out. One field, one round trip.
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Arabic text to diacritize. |
Diacritize text
Send unvoweled Arabic; read data.diacritized_text from the response.
Response fields
The response wraps both the original and the diacritized text, so you can diff or display them side by side.
| Field | Type | Description |
|---|---|---|
statusCode | number | HTTP-style status code. |
data.original_text | string | Original input text. |
data.diacritized_text | string | Text with Arabic diacritics. |
message | string | Request status message. |
Errors
Errors follow the shared errorCode / errorMessage shape — for example {"errorCode": 40101, "errorMessage": "API key required"}, "Invalid API key", or a validation error like "text: Expected string".
| HTTP status | errorCode | Scenario |
|---|---|---|
| 400 | 40001 | Missing or invalid text field. |
| 401 | 40101 | Missing, invalid, expired, or revoked API key. |
| 413 | 41301 | Request body exceeds the maximum size limit. |
| 500 | 50001 | Internal error or upstream Tashkil service failure. |
Go further
Diacritized text is the perfect input for speech.
Working with an AI assistant? Every page is available as Markdown: add .md to the URL, or send an Accept: text/markdown header. For the whole documentation in one request, point it at llms-full.txt; the page index is llms.txt. Or use Copy Page, top right.
