Skip to main content
Entri’s AI translation engine uses frontier language models — Anthropic Claude and OpenAI GPT-4o — to generate high-quality translations with context awareness. The AI reads the key name, description, any comments left by translators, and neighboring strings to produce translations that fit the tone and terminology of your project. Every AI translation includes a confidence score from 0 to 100. High-confidence translations (typically 85+) are production-ready in most cases. Lower-confidence results should be reviewed by a human translator before approval. The AI also respects your Glossary — terms marked as “do not translate” are kept verbatim, and approved translations for glossary terms are used consistently.

Endpoints

POST   /api/projects/:projectId/ai/translate
POST   /api/projects/:projectId/ai/translate/batch

Translate a Single Key

Generates a translation for one key in one target language:
curl -X POST \
  https://api.nt3.io/api/projects/proj_6abc123def456/ai/translate \
  -H "X-API-Key: entri_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "keyId": "key_abc123",
    "targetLanguage": "fr"
  }'
Response:
{
  "keyId": "key_abc123",
  "targetLanguage": "fr",
  "value": "Accueil",
  "confidence": 94,
  "alternatives": [
    { "value": "Page d'accueil", "confidence": 71 },
    { "value": "Menu principal", "confidence": 52 }
  ],
  "model": "claude-sonnet-4-5"
}
The response includes alternative suggestions ranked by confidence. Your application can present these to a human reviewer to pick the best option.

Batch Translate

Translates multiple keys in one or more target languages in a single request. This is the most efficient way to fill in untranslated strings across a project:
curl -X POST \
  https://api.nt3.io/api/projects/proj_6abc123def456/ai/translate/batch \
  -H "X-API-Key: entri_your_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "keyIds": ["key_abc123", "key_def456", "key_ghi789"],
    "targetLanguages": ["fr", "de", "es"],
    "skipExisting": true
  }'
Setting skipExisting: true tells the engine to skip keys that already have a translation in the target language, so a batch job is safe to run multiple times without overwriting human-edited strings. Response:
{
  "jobId": "job_batchxyz",
  "status": "queued",
  "keyCount": 3,
  "languageCount": 3,
  "estimatedCompletionMs": 8000
}
Batch jobs are processed asynchronously. The response returns a job ID. Results are written directly to the translations store — you can poll the Translations endpoints or set up a Webhook to be notified when a batch completes.

Key Notes

  • AI translation is available only when at least one AI provider key is configured for your organization.
  • The model used for each translation is recorded on the translation record along with the confidence score.
  • Batch jobs run asynchronously. For large projects, allow several minutes for a full batch to complete.
  • AI-generated translations are saved with source: "ai" and status translated. They are not automatically approved — a reviewer should check them before they are promoted to approved.
  • The AI uses your organization’s Translation Memory to stay consistent with previously approved translations.
Configure tone and style instructions in your project settings to give the AI consistent voice guidelines across all translations.