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.
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
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 | Sì | 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.
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.
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). |
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 | Sì | 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.
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 | Sì | U documentu da tradurri (max 10MB) |
target_language |
string | Sì | 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)
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"
.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.