Translation Service
Multi-provider translation service (Helsinki NLP, DeepL, Google)
Translation Service
Multi-provider translation service supporting Helsinki NLP (local), Google Translate, and DeepL.
Base URL: api.koveh.com/translation/
Endpoints
Method | Endpoint | Description |
---|---|---|
GET | /health | Service health check |
POST | /translate | Translate text |
GET | /models | Get available models |
GET | /translation/history | Get translation history |
GET | /translation/sessions | Get translation sessions |
GET | /translation/stats | Get translation statistics |
GET | /usage | Get usage statistics |
Authentication
All endpoints require Bearer token authentication:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"api.koveh.com/translation/translate"
Translate Text
Translate text using multiple providers.
Endpoint: POST /translate
Request Body
{
"text": "Hello, world!",
"source_language": "en",
"target_language": "de",
"provider": "helsinki",
"save_to_history": true,
"session_id": "optional-session-id"
}
Parameters
text
(string, required): Text to translatesource_language
(string, required): Source language code (e.g., "en", "de", "ru")target_language
(string, required): Target language codeprovider
(string, optional): Translation provider ("helsinki", "google", "deepl"). Default: "helsinki"save_to_history
(boolean, optional): Whether to save to translation history. Default: truesession_id
(string, optional): Session ID for grouping translations
Response
{
"translated_text": "Hallo, Welt!",
"source_language": "en",
"target_language": "de",
"provider": "helsinki",
"model": "Helsinki-NLP/opus-mt-en-de",
"confidence": 0.95,
"timestamp": "2025-08-30T09:19:31.245295",
"session_id": "optional-session-id",
"translation_history_id": 123
}
Example Request
curl -X POST "api.koveh.com/translation/translate" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Hello, world!",
"source_language": "en",
"target_language": "de",
"provider": "helsinki",
"save_to_history": true
}'
Get Available Models
Get list of available translation models.
Endpoint: GET /models
Response
[
{
"name": "German-English",
"value": "Helsinki-NLP/opus-mt-de-en",
"from": "de",
"to": "en",
"icon": "🇩🇪🇬🇧"
},
{
"name": "English-German",
"value": "Helsinki-NLP/opus-mt-en-de",
"from": "en",
"to": "de",
"icon": "🇬🇧🇩🇪"
}
]
Health Check
Check service health and status.
Endpoint: GET /health
Response
{
"status": "healthy",
"helsinki_models_loaded": true,
"deepl_available": false,
"google_available": true,
"cpu_percent": 7.7,
"memory_percent": 38.3,
"timestamp": "2025-08-30T09:19:31.245295"
}
Translation History
Get translation history for the authenticated user.
Endpoint: GET /translation/history
Query Parameters
limit
(number, optional): Number of records to return. Default: 50offset
(number, optional): Number of records to skip. Default: 0provider
(string, optional): Filter by providersource_language
(string, optional): Filter by source languagetarget_language
(string, optional): Filter by target language
Response
[
{
"id": 123,
"original_text": "Hello, world!",
"translated_text": "Hallo, Welt!",
"source_language": "en",
"target_language": "de",
"provider": "helsinki",
"model": "Helsinki-NLP/opus-mt-en-de",
"confidence": 0.95,
"created_at": "2025-08-30T09:19:31.245295",
"session_id": "optional-session-id"
}
]
Usage Statistics
Get usage statistics for the authenticated user.
Endpoint: GET /usage
Response
{
"total_translations": 1250,
"translations_today": 45,
"translations_this_month": 320,
"providers_used": {
"helsinki": 800,
"google": 300,
"deepl": 150
},
"languages_used": {
"en-de": 400,
"de-en": 350,
"en-ru": 300,
"ru-en": 200
}
}
Error Responses
{
"error": "Invalid language pair",
"status_code": 400,
"timestamp": "2025-08-30T09:19:31.245295"
}
Rate Limiting
- Limit: 100 requests per minute
- Headers:
X-RateLimit-Limit
,X-RateLimit-Remaining
,X-RateLimit-Reset
Supported Languages
Helsinki NLP Models
- German ↔ English
- Russian ↔ English
- French ↔ English
- Spanish ↔ English
Google Translate
- 100+ languages supported
DeepL
- 29 languages supported (requires API key)