MT (Machine Translation)
Translate text between African languages and English using neural machine translation.
Translate text between African languages and English using our neural machine translation models.
Overview
Our MT service provides high-quality translation between supported languages. The models are optimized for African languages including Amharic and Tigrinya.
Basic Usage
To translate text, send your API key in the request body (not the header):
curl "https://api.lesan.ai/translate/v1" \
-d "key=YOUR_API_KEY" \
-d "text=Hello world!" \
-d "src_lang=en" \
-d "tgt_lang=ti"Request Parameters
Parameters are sent as form data (not JSON):
- key (required) — Your API key
- text (required) — The text to translate
- src_lang (required) — Source language code
- tgt_lang (required) — Target language code
Supported Languages
- en — English
- am — Amharic
- ti — Tigrinya
Translation Directions
You can translate between any supported language pair. Common directions include:
- English ↔ Amharic
- English ↔ Tigrinya
- Amharic ↔ Tigrinya
Response Format
The API returns the translated text in tgt_text:
{
"tgt_text": "ሰላም ዝሰፈኖ ዓለም!"
}- tgt_text — The translated text in the target language
Error Handling
Handle common errors when calling the translation API:
import requests
def translate(text, src_lang, tgt_lang):
r = requests.post(
"https://api.lesan.ai/translate/v1",
data={
"key": "YOUR_API_KEY",
"text": text,
"src_lang": src_lang,
"tgt_lang": tgt_lang
}
)
if r.ok:
return r.json()["tgt_text"]
error = r.json().get("error", {})
if r.status_code == 400:
raise ValueError(f"Invalid request: {error.get('message', r.text)}")
elif r.status_code == 401:
raise PermissionError(f"Authentication failed: {error.get('message', r.text)}")
elif r.status_code == 429:
raise Exception(f"Rate limited. Retry after {error.get('retry_after', 1)}s")
else:
raise Exception(f"API error ({r.status_code}): {r.text}")
# Usage
try:
result = translate("Hello, world!", "en", "ti")
print(result)
except ValueError as e:
print(f"Fix your request: {e}")
except PermissionError as e:
print(f"Check your API key: {e}")Best Practices
- Keep input text at a reasonable length per request for best performance
- For longer texts, split by paragraph or sentence boundaries
- Cache translations for frequently used text to reduce API calls
- Implement retry logic with exponential backoff for rate limit errors
- Use the correct language codes — see the list above
For detailed API documentation, see the API Reference. For error handling patterns, see the Error Codes reference. For rate limit details, see the Rate Limits guide.