Documentazione

Integrate a traduzzione potente in e vostre applicazioni cù a nostra semplice API REST.

Comincià

U TranslateAPI furnisce una semplice interfaccia REST per tradurre testu trà più di 180 lingue. Tutti i punti finali di l'API restituiscenu risposti JSON.

URL di basa: https://api.translateapi.ai/api/v1/
Avviu rapidu

Fai la tua prima richiesta di traduzione:

curl -X POST https://api.translateapi.ai/api/v1/translate/ \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "text": "Hello, world!",
    "target_language": "es"
  }'
import requests

response = requests.post(
    "https://api.translateapi.ai/api/v1/translate/",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "text": "Hello, world!",
        "target_language": "es"
    }
)

result = response.json()
print(result["translated_text"])  # "Hola, mundo!"
const response = await fetch("https://api.translateapi.ai/api/v1/translate/", {
    method: "POST",
    headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    body: JSON.stringify({
        text: "Hello, world!",
        target_language: "es"
    })
});

const result = await response.json();
console.log(result.translated_text);  // "Hola, mundo!"
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add(
            "Authorization", "Bearer YOUR_API_KEY"
        );

        var content = new StringContent(
            JsonConvert.SerializeObject(new {
                text = "Hello, world!",
                target_language = "es"
            }),
            Encoding.UTF8,
            "application/json"
        );

        var response = await client.PostAsync(
            "https://api.translateapi.ai/api/v1/translate/",
            content
        );

        var result = await response.Content.ReadAsStringAsync();
        var data = JsonConvert.DeserializeObject<dynamic>(result);
        Console.WriteLine(data.translated_text);  // "Hola, mundo!"
    }
}

Autenticazzioni

Autentificà e vostre dumande usannu una chiave API. Potete creà chiavi API da u vostru dashboard.

Autenticazione di l'intestazione (raccumandata)
Authorization: Bearer ta_your_api_key_here
Parametri
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Mantene e vostre chiavi API sicure! Non esporli in u codice client-side o in repositori pubblici.

Traduci u testu

Traduci u testu in una sola lingua di destinazione.

POST https://api.translateapi.ai/api/v1/translate/
Corpu dâ richiesta
Parametri Tipu Riquisitu Descrizzioni
text string Testu da tradurri (massimu 50.000 caratteri)
target_language string Sì* Target language code (e.g., "es", "fr", "de")
source_language string No Source language code. Default: "auto" (auto-detect)

Uso target_language (stringa) pi na lingua singula o target_languages (array) pi multiple. Vedi Traduzzioni multi-target.

Risposta
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Traduzzioni multi-target

Traduci u testu in cchiù lingue in una sola richiesta. Usa u stissu puntu finali di a traduzzioni singula.

Tipu: Potete traduciri finu à 50 lingue in una sola richiesta.
POST https://api.translateapi.ai/api/v1/translate/
Corpu dâ richiesta
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Uso target_languages (array) ô postu di target_language (stringa) pi scopi multipli.

Risposta
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}

Traduzzioni

Traduci assai testi in una sola vota cù l'elaborazioni asincrona. Invia un batch è un sondaghju per i risultati.

Limiti: max 500 testi per batch, max 750 elementi totali (testi × lingue di destinazione). Timeout di i lavori 30 minuti dopu l'iniziu di l'elaborazione (u tempu d'aspettata di a coda ùn hè micca cuntatu).
U tempu d'elaborazione varia a sicunna di a lingua: li lingue cumuni (spagnolu, francese, tedescu, ecc.) usanu modelli veloci (~0.1s per testu), mentri li lingue cchiù picculi usanu u nostru granni mudellu multilingue (~1-3s per testu). Un batch di 100 testi hè tipicamente finitu in 10-30 secondi pi li lingue cumuni, o 2-5 minuti pi chiddi cchiù picculi. Pi i megghiu risultati, manda 1 lingua di destinazione pi ogni richiesta di batch e mantini li dimensioni di u batch sutta a 50 testi.
POST https://api.translateapi.ai/api/v1/translate/batch/
Passu 1: Invià u batch
curl -X POST https://api.translateapi.ai/api/v1/translate/batch/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "texts": ["Hello", "Goodbye", "Thank you"],
    "target_language": "es",
    "source_language": "en"
}'
Risposta (HTTP 202 Accettatu)
{
    "job_id": "67535b2b-c9e3-4f82-9499-e237edbc1dd8",
    "status": "pending",
    "total_texts": 3,
    "queue_position": 1,
    "source_language": "en",
    "target_languages": ["es"],
    "character_count": 22,
    "credits_remaining": -1,
    "poll_url": "https://api.translateapi.ai/api/v1/jobs/67535b2b-c9e3-4f82-9499-e237edbc1dd8/"
}
Passu 2: Sondaggio per i risultati
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Esempiu di polling (Python)
import time, requests

job_id = response.json()["job_id"]
total = response.json()["total_texts"]
headers = {"Authorization": "Bearer YOUR_API_KEY"}

print(f"Batch submitted: {total} texts (job {job_id})")

while True:
    result = requests.get(f"https://api.translateapi.ai/api/v1/jobs/{job_id}/", headers=headers).json()
    status = result["status"]
    processed = result.get("processed_texts", 0)
    progress = result.get("progress_percentage", 0)

    if status == "completed":
        print(f"Completed: {processed}/{total} texts in {result.get('processing_time', 0):.1f}s")
        translations = result["result_data"]["translations"]
        break
    elif status == "failed":
        print(f"Failed at {processed}/{total}: {result.get('error_message', 'unknown')}")
        raise Exception(result.get("error_message", "Translation failed"))
    elif status == "pending":
        queue_pos = result.get("queue_position", "?")
        print(f"Queued (position {queue_pos}) — waiting for GPU worker...")
    else:
        print(f"[{status}] {processed}/{total} ({progress:.0f}%)")

    time.sleep(3)
Risposta (in attesa — in coda, in attesa di GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Risposta (durante l'elaborazioni)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Risposta (completata)
{
    "job_id": "67535b2b-...",
    "status": "completed",
    "processed_texts": 3,
    "total_texts": 3,
    "progress_percentage": 100.0,
    "processing_time": 10.65,
    "result_data": {
        "translations": ["Hola", "Adiós", "Gracias"],
        "source_language": "en",
        "target_language": "es",
        "character_count": 22,
        "processing_time": 10.65
    }
}
Tracciamentu di u progressu in tempu reale

Ogni risposta di u sondaghju include campi di progressu in tempu reale per pudè monitorà esattamente ciò chì accade cù u vostru batch:

Campu Descrizzioni
status Statu attuale dû travagghiu: pending (in coda, in attesa di un travagliadori GPU), processing (traduci attivamenti), completed, failed
processed_texts U nùmmaru di traduzzioni singuli finiti finu à avà. Aggiornamenti in tempu riali mentre ogni testu hè traduttu.
total_texts U nùmmaru tutali di traduzioni in stu lottu (testi × lingue di destinazione).
progress_percentage Percentuale di cumplitamenti (0-100). Calculatu da processed_texts / total_texts.
queue_position A vostra pusizzioni ntâ coda quannu lu statu è "in attesa" (1 = prossimu). Null'è quandu hè processatu o finitu. Usate chistu pi stimari u tempu d'attesa e mustrari lu statu dâ coda a l'utenti.
processing_time Tempu totali di processamentu in sicondi (disponibbili una volta finitu).
Tipu: Quannu status è "pending", li travagghiaturi GPU sunnu occupati cu àutri lotti. Check queue_position per vede quanti travagghi ci sò davanti à u vostru (1 = voi site u prossimu). U vostru travagghiu cuminciarà automaticamenti — nudda azione hè necessaria, basta à cuntinuà à vutari.
Migliori pratiche per grandi carichi di travagliu
  • Invià 1 lingua di destinazione per richiesta di batch. Ciò mantini ogni batch veloci e faciule da seguità u progressu.
  • Mantene i lotti à 50-100 testi. I lotti più picculi completanu più veloci è vi dannu aggiornamenti di progressu più frequenti.
  • Esegui al massimu 2 lotti di travagghi in parallelu. A GPU processa 2 lotti in parallelu - i travagghi addiziunali sò in coda e nun si avvianu cchiù veloci.
  • In casu di timeout, ri-poll u stissu job_id anzicchì inviari un novu batch. U travagghiu originali pò èssiri ancora processatu dâ GPU.
  • Sonda ogni 3-5 siconni. Un sondaggiu cchiù frecuenti nun accelera l'elaborazioni.
Batch multilingue

Traduci più testi in più lingue in una sola volta:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Completatu result_data
{
    "translations": [
        {"es": "Hola", "fr": "Bonjour"},
        {"es": "Adiós", "fr": "Au revoir"}
    ],
    "source_language": "en",
    "target_languages": ["es", "fr"],
    "character_count": 24,
    "processing_time": 2.45
}
Parametri di richiesta
Parametri Tipu Riquisitu Descrizzioni
texts array Array di stringhi da tradurri
target_language string Sì* U còdici di lingua di destinazione pi na lingua sìngula
target_languages array Sì* Array di codici di lingua di destinazione pi cchiù lingue
source_language string No Source language code. Default: "auto"

* Forniri target_language o target_languages, non tutti dui.

Elaborazione asincrona: Li dumande di batch tornanu immediatamenti cu un job_id. Foru GET /api/v1/jobs/{job_id}/ finu a status è "completed", poi leggi result_data di traduzzioni. Usa progress_percentage to track progress.

Traduzzioni

Traduci documenti interi mantenendu a formattazione. Supporta diversi formati di file.

POST https://api.translateapi.ai/api/v1/translate/document/
Richiesta (multipart/form-data)
Parametri Tipu Riquisitu Descrizzioni
file file U documentu da tradurri (max 10MB)
target_language string Target language code (e.g., "es", "fr", "de")
source_language string No Source language code. Default: "auto" (auto-detect)
Tipi di fugliali supportati
  • .txt - Fichieri di testu
  • .docx - Documenti Word
  • .pdf - Documenti PDF (cumpresi scannati)
  • .json - Fichieri JSON (traduci i valuri di stringhe)
  • .xml - Fichieri XML
  • .srt - File di sottotituli
  • .po / .pot - Fichieri di traduzzioni Gettext
  • .jpg / .jpeg - Immagini JPEG (OCR)
  • .png - Immagini PNG (OCR)
  • .tiff / .tif - Immagini TIFF (OCR)
  • .bmp - Immagini BMP (OCR)
  • .webp - Immagini WebP (OCR)
Supportu OCR: I fugliali d'imaghjini è i PDF scannati sò trattati cù u ricunnuscimentu otticu di caratteri (OCR) pi estrarri u testu prima di a traduzzioni. Pi ottene i megghiu risultati, usate immagini nitti, ad àuta risuluzzioni.
Esempi (cURL)
# Translate a Word document
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@document.docx" \
  -F "target_language=es" \
  -F "source_language=en"

# Translate text from an image (OCR)
curl -X POST https://api.translateapi.ai/api/v1/translate/document/ \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@scanned_page.jpg" \
  -F "target_language=es" \
  -F "source_language=en"
I fugliali d' immagini sunnu processati cu l' OCR pi estrarri u testu prima di a traduzzioni. L' output traduttu è ritornatu comu un .txt filu.
Risposta
{
    "id": 123,
    "original_filename": "document.docx",
    "file_type": "docx",
    "source_language": "en",
    "target_language": "es",
    "status": "completed",
    "character_count": 5420,
    "translated_file_url": "/media/translated/document_es.docx",
    "created_at": "2024-01-15T10:30:00Z",
    "completed_at": "2024-01-15T10:30:05Z"
}
Valori di statu
pending File uploaded, waiting to be processed
processing Traduzzioni in corso
completed Traduzzioni cumpleta, scaricà dispunibbili
failed Traduzzioni fallita (check error_message)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Cuntrolla u statu di a traduzzioni di un documentu o ripigghia l'URL di scaricari.

Risposta
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

Rilevazione di lingua

U rilevamentu di lingue hè incorporatu in ogni richiesta di traduzzioni. Set source_language to "auto" (o omittirla) e a lingua rilevata sarà riturnata ntâ risposta.

POST https://api.translateapi.ai/api/v1/translate/
Corpu dâ richiesta
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Risposta
{
    "translated_text": "Hello, how are you?",
    "source_language": "fr",
    "target_language": "en",
    "translations": {
        "en": "Hello, how are you?"
    },
    "character_count": 28,
    "translation_time": 0.52
}

U source_language U campu di la risposta mostra a lingua rilevata quannu si usa u rilevamentu automaticu.

Lingue supportate

Get the list of all supported languages.

GET https://api.translateapi.ai/api/v1/translate/languages/
Risposta
{
    "count": 186,
    "results": [
        {"iso": "en", "name": "English", "en_label": "English"},
        {"iso": "es", "name": "Español", "en_label": "Spanish"},
        {"iso": "fr", "name": "Français", "en_label": "French"},
        ...
    ]
}

Traduzzioni

Utilizemu mudelli di traduzzione open source state-of-the-art in esecuzione nantu à a nostra infrastruttura GPU. Tutti i mudelli sò cun licenza cummerciale (Apache 2.0).

Modellu Lingue Migliori pi
Helsinki-NLP/opus-mt 50+ coppie di lingue Lingue cumuni (EN, ES, FR, DE, IT, PT, RU, ZH, JA, ecc.)
Google MADLAD-400 400+ lingue Lingue rari, copertura cumpleta

L'API scegli automaticamenti u megghiu mudellu pi la vostra coppia di lingue. engine parametru:

Motori Descrizzioni
"auto" Predefinitu. Pruva prima HuggingFace, poi torna a MADLAD-400
"huggingface" Forza HuggingFace/MarianMT (più veloci, 50+ lingue)
"madlad" Forza MADLAD-400 (400+ lingue)

Gestione di l'errori

L'API usa i codici di statu HTTP standard per indicà u successu o u fallimentu.

Codice Descrizzioni
200 Successu
400 Richiesta sbagliata - Parametri nun validi
401 Non autorizzato - Chiave API mancante o non valida
402 Pagamentu richiestu - Quota giornaliera di caratteri superata
429 Troppi dumande - Limite di velocità superatu
503 Serviziu indisponibbili - motore di traduzzioni temporaneamente in bassu
Formatu di risposta di l'errori
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Limiti di velocità

Li limiti cancianu a sicunna dû pianu. pricing per tutti i dettagli:

Pianu Carattiri/Mese Prezzu
Liberu 250,000 $0 Iscriviti
Avviatore 2,500,000 $9/mi Abbonassi
Pro 10,000,000 $29/mi Abbonassi
Affari 40,000,000 $79/mi Abbonassi
Scala 125,000,000 $199/mi Abbonassi

Quandu superate u vostru limitu, riceverete un 429 Too Many Requests risposta finu à u mese prossimu o si aggiorna.

Infrastruttura di Cloud Auto-Scaling

TranslateAPI hè eseguitu nantu à istanze GPU NVIDIA A100 dedicate cù scalatura orizzontale automatica.Quandu a dumanda aumenta, istanze GPU addiziunali sò lanciate in pochi minuti per mantene tempi di risposta veloci. Ciò significa chì a nostra API pò gestisce richieste simultanee virtualmente illimitate senza degradazione, da una sola richiesta à migliaia di richieste à u minutu.

Valuta sta pagina
Grazie per a vostra valutazione!
/5 basatu supra Valutazioni