Koveh API

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

MethodEndpointDescription
GET/healthService health check
POST/translateTranslate text
GET/modelsGet available models
GET/translation/historyGet translation history
GET/translation/sessionsGet translation sessions
GET/translation/statsGet translation statistics
GET/usageGet 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 translate
  • source_language (string, required): Source language code (e.g., "en", "de", "ru")
  • target_language (string, required): Target language code
  • provider (string, optional): Translation provider ("helsinki", "google", "deepl"). Default: "helsinki"
  • save_to_history (boolean, optional): Whether to save to translation history. Default: true
  • session_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: 50
  • offset (number, optional): Number of records to skip. Default: 0
  • provider (string, optional): Filter by provider
  • source_language (string, optional): Filter by source language
  • target_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)