Skip to main content
Neural machine translation powered by Google Cloud Translation. Add translation capabilities to your app—translate documents, communications, and evidence across 100+ languages with automatic language detection.

Quick start

curl -X POST https://api.case.dev/translate/v1/translate \
  -H "Authorization: Bearer sk_case_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "q": "The deposition will be held on Monday at 10:00 AM.",
    "target": "es"
  }'
casedev translate:v1 translate \
  --q "The deposition will be held on Monday." \
  --target es
import Casedev from 'casedev';

const client = new Casedev({ apiKey: process.env.CASEDEV_API_KEY });

// Translate text to Spanish
const result = await client.translate.v1.translate({
  q: 'The deposition will be held on Monday at 10:00 AM.',
  target: 'es'
});

console.log(result.data.translations[0].translatedText);
// "La deposición se llevará a cabo el lunes a las 10:00 AM."
import casedev
import os

client = casedev.Casedev(api_key=os.environ['CASEDEV_API_KEY'])

# Translate text to Spanish
result = client.translate.v1.translate(
    q='The deposition will be held on Monday at 10:00 AM.',
    target='es'
)

print(result.data.translations[0].translated_text)
# "La deposición se llevará a cabo el lunes a las 10:00 AM."
result, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
	Q:      casedev.F("The deposition will be held on Monday at 10:00 AM."),
	Target: casedev.F("es"),
})
fmt.Println(result.Data.Translations[0].TranslatedText)

Endpoints

Translate

POST /translate/v1/translate — Translate text to target language

Detect Language

POST /translate/v1/detect — Detect the language of text

Supported Languages

GET /translate/v1/languages — List all supported languages

Features

  • 100+ Languages — Support for all major world languages including Chinese, Spanish, Arabic, Hindi, and more.
  • Auto-Detection — Automatically detect source language when not specified.
  • Batch Translation — Translate multiple strings in a single request for efficiency.
  • HTML Preservation — Preserve HTML formatting during translation.
  • Neural Machine Translation — State-of-the-art NMT models for high-quality translations.

Pricing

ServiceCost
Translation$0.03 per 1,000 characters
Language Detection$0.03 per 1,000 characters
Supported LanguagesFree
Example: A 10,000 character legal document costs $0.30 to translate.

Common use cases

Multilingual discovery

Translate foreign-language documents discovered during litigation:
casedev translate:v1 translate --q "Foreign document text" --target en --format text
const foreignDoc = await fetchDocumentText();

const result = await client.translate.v1.translate({
  q: foreignDoc,
  target: 'en',  // Translate to English
  format: 'text'
});
foreign_doc = fetch_document_text()

result = client.translate.v1.translate(
    q=foreign_doc,
    target='en',
    format='text'
)
foreignDoc := fetchDocumentText()

result, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
	Q:      casedev.F(foreignDoc),
	Target: casedev.F("en"),
	Format: casedev.F(casedev.TranslateV1TranslateParamsFormatText),
})

Client communications

Translate client correspondence in their preferred language:
casedev translate:v1 translate --q "Email content" --target es
casedev translate:v1 translate --q "Email content" --target zh
casedev translate:v1 translate --q "Email content" --target ar
const languages = ['es', 'zh', 'ar'];  // Spanish, Chinese, Arabic

for (const lang of languages) {
  const translated = await client.translate.v1.translate({
    q: emailContent,
    target: lang
  });
  // Send localized email
}
languages = ['es', 'zh', 'ar']  # Spanish, Chinese, Arabic

for lang in languages:
    translated = client.translate.v1.translate(
        q=email_content,
        target=lang
    )
    # Send localized email
languages := []string{"es", "zh", "ar"} // Spanish, Chinese, Arabic

for _, lang := range languages {
	translated, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
		Q:      casedev.F(emailContent),
		Target: casedev.F(lang),
	})
	// Send localized email
	_ = translated
}

Evidence processing

Detect and translate multilingual evidence:
# First detect the language
casedev translate:v1 detect --q "Evidence text here"

# Then translate if not English
casedev translate:v1 translate --q "Evidence text here" --target en --source fr
// First detect the language
const detection = await client.translate.v1.detect({
  q: evidenceText
});

const sourceLanguage = detection.data.detections[0][0].language;

// Then translate if not English
if (sourceLanguage !== 'en') {
  const translated = await client.translate.v1.translate({
    q: evidenceText,
    source: sourceLanguage,
    target: 'en'
  });
}
# First detect the language
detection = client.translate.v1.detect(q=evidence_text)

source_language = detection.data.detections[0][0].language

# Then translate if not English
if source_language != 'en':
    translated = client.translate.v1.translate(
        q=evidence_text,
        source=source_language,
        target='en'
    )
// First detect the language
detection, _ := client.Translate.V1.Detect(ctx, casedev.TranslateV1DetectParams{
	Q: casedev.F(evidenceText),
})
sourceLanguage := detection.Data.Detections[0][0].Language

// Then translate if not English
if sourceLanguage != "en" {
	translated, _ := client.Translate.V1.Translate(ctx, casedev.TranslateV1TranslateParams{
		Q:      casedev.F(evidenceText),
		Source: casedev.F(sourceLanguage),
		Target: casedev.F("en"),
	})
	_ = translated
}

Vault

Store translated documents alongside originals for searchable archives

OCR

Extract text from scanned documents before translation