Base URL
http://localhost:8012/api/v1
All endpoints require Bearer token authentication in the Authorization header.
Translation
Translate Text
/api/v1/translateTranslate a single text segment with domain specialization.
Request Body:
{
"text": "يجب على جميع الجهات الحكومية الالتزام بمعايير الأمن السيبراني",
"source_lang": "ar",
"target_lang": "en",
"domain": "administrative"
}
| Field | Type | Required | Description |
|---|---|---|---|
text | string | Yes | Text to translate (1-50,000 characters) |
source_lang | string | No | Source language: ar, en, auto (default: auto) |
target_lang | string | No | Target language: ar, en (default: en) |
domain | string | No | Domain: general, legal, technical, administrative, medical, financial |
Response:
{
"id": "tr-a1b2c3",
"source_text": "يجب على جميع الجهات الحكومية الالتزام بمعايير الأمن السيبراني",
"translated_text": "All government entities must comply with cybersecurity standards",
"source_lang": "ar",
"target_lang": "en",
"domain": "administrative",
"quality_score": 0.92,
"model_used": "llama-3.3-70b-versatile",
"tokens_used": 156,
"created_at": "2024-01-15T10:30:00Z"
}
Batch Translate
/api/v1/translate/batchTranslate multiple text segments in a single request (max 50 segments).
Request Body:
{
"texts": [
"First segment to translate",
"Second segment to translate"
],
"source_lang": "auto",
"target_lang": "ar",
"domain": "legal"
}
Response:
{
"translations": [...],
"total": 2,
"domain": "legal"
}
Translate Document
/api/v1/translate/documentUpload a document file for end-to-end translation. Accepts multipart/form-data.
Form Fields:
| Field | Type | Required | Description |
|---|---|---|---|
file | binary | Yes | Document file (PDF, DOCX, TXT) |
source_lang | string | No | Source language (default: auto) |
target_lang | string | No | Target language (default: en) |
domain | string | No | Domain (default: general) |
Response:
{
"id": "doc-a1b2c3",
"filename": "contract.pdf",
"source_lang": "ar",
"target_lang": "en",
"domain": "legal",
"status": "completed",
"total_segments": 120,
"translated_segments": 120,
"translated_text": "...",
"created_at": "2024-01-15T10:30:00Z",
"completed_at": "2024-01-15T10:30:25Z"
}
Detect Language
/api/v1/translate/detectDetect the language of input text.
Request Body:
{
"text": "All government entities must comply with cybersecurity standards"
}
Response:
{
"language": "en",
"confidence": 0.98,
"script": "Latin"
}
Translation History
/api/v1/translate/historyList past translations with pagination and filtering.
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
domain | string | - | Filter by domain |
page | integer | 1 | Page number |
page_size | integer | 20 | Results per page (max 100) |
Translation Memory
Create TM Entry
/api/v1/translation-memoryAdd a translation pair to the memory.
List TM Entries
/api/v1/translation-memoryBrowse TM entries with filtering by language, domain, and search.
Get TM Entry
/api/v1/translation-memory/{entry_id}Update TM Entry
/api/v1/translation-memory/{entry_id}Delete TM Entry
/api/v1/translation-memory/{entry_id}Requires admin role.
Export TMX
/api/v1/translation-memory/exportExport translation memory as a TMX XML file.
Import TMX
/api/v1/translation-memory/importImport a TMX file to bulk-load TM entries. Requires admin role. Accepts .tmx or .xml files via multipart/form-data.
Glossaries
Create Glossary
/api/v1/glossariesList Glossaries
/api/v1/glossariesGet Glossary
/api/v1/glossaries/{glossary_id}Update Glossary
/api/v1/glossaries/{glossary_id}Delete Glossary
/api/v1/glossaries/{glossary_id}Requires admin role.
Create Glossary Entry
/api/v1/glossaries/{glossary_id}/entriesList Glossary Entries
/api/v1/glossaries/{glossary_id}/entriesUpdate Glossary Entry
/api/v1/glossaries/{glossary_id}/entries/{entry_id}Delete Glossary Entry
/api/v1/glossaries/{glossary_id}/entries/{entry_id}Requires admin role.
Health
Health Check
/api/v1/healthReturns service health status and version information.