Documentação da API

Integrar tradução poderosa em suas aplicações com a nossa API REST simples.

Começar

A TranslateAPI fornece uma interface REST simples para traduzir texto entre 180 mais idiomas. Todos os endpoints da API retornam respostas JSON.

1. Obtenha sua chave API

Criar uma conta gratuita e gerar a sua chave API a partir do painel:

  1. Inscrever-se em translateapi.ai/signup
  2. Vá para Painel de borda → Chaves da API
  3. Clique em "Crear a chave da API" e copie a sua chave

As teclas da API começam com ta_ seguido por 56 caracteres hexadecimais.

URL da base: https://api.translateapi.ai/api/v1/
2. Faça sua primeira solicitação

Substitua o TU_API_KEY pela chave do seu painel:

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!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer YOUR_API_KEY",
        "Content-Type: application/json"
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "text" => "Hello, world!",
        "target_language" => "es"
    ])
]);

$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"];  // "Hola, mundo!"
payload := strings.NewReader(`{
    "text": "Hello, world!",
    "target_language": "es"
}`)

req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")

resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()

var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"])  // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

var content = new StringContent(
    JsonSerializer.Serialize(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 = JsonSerializer.Deserialize<JsonElement>(
    await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text"));  // "Hola, mundo!"
Resposta
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Autenticação

Autenticar seus pedidos usando uma chave API. Você pode criar chaves API a partir de sua painel.

Autenticação Header (Recomendado)
Authorization: Bearer ta_your_api_key_here
Cabeçalho apiKey
Authorization: ApiKey ta_your_api_key_here
Parâmetro de Consulta
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Mantenha as teclas API seguras! Não os expor no código do lado do cliente ou repositórios públicos.

Traduzir Texto

Traduzir texto para um único idioma alvo.

POST https://api.translateapi.ai/api/v1/translate/
Órgão de Pedido
Parâmetro Tipo Requerido Descrição
text string Sim Texto a traduzir (máx. 50.000 caracteres)
target_language string Sim* Target language code (e.g., "es", "fr", "de")
source_language string Não Source language code. Default: "auto" (auto-detect)
engine string Não Motor de tradução: "auto" (por defeito), "suggestivo", ou "madlad". Veja os modelos de tradução. Modelos de Tradução.

* Utilizar target_language (string) para uma única língua ou target_languages Para múltiplos. Tradução Multi-Target.

Resposta
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}
Deteção automática: Omit source_language ou fixar-o para "auto" para detectar automaticamente a língua de origem. A língua detectada é devolvida na source_language campo de resposta.

Tradução Multi-Target

Traduzir texto para múltiplos idiomas em um único pedido. Usa o mesmo endpoint que uma única tradução.

POST https://api.translateapi.ai/api/v1/translate/
Órgão de Pedido
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Utilização target_languages Em vez de target_language (string) para múltiplos alvos.

Resposta
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}
Dica: Você pode traduzir até 50 idiomas em um único pedido.

Tradução de Lote

Traduzir múltiplos textos de uma vez com processamento de async. Envie um lote e pesquisa para obter resultados.

Limites: Máximo 100 textos por lote, máximo 300 itens totais (textos × línguas-alvo). Tempo de trabalho para fora 45 minutos após o início do processamento.
Velocidade: Idiomas comuns (ES, FR, DE) usam modelos rápidos (~0.1s/texto). Idiomas menos comuns usam nosso modelo multilíngue (~1-3s/texto).
POST https://api.translateapi.ai/api/v1/translate/batch/
Passo 1: Enviar Lote
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"
}'
Resposta (HTTP 202 Aceitada)
{
    "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/"
}
Etapa 2: Pesquisa de Resultados
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Exemplo de sondagem (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"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
        translations = result["result_data"]["translations"]
        break
    elif status == "failed":
        raise Exception(result.get("error_message", "Translation failed"))
    elif status == "pending":
        print(f"Queued (position {result.get('queue_position', '?')})")
    else:
        print(f"[{status}] {processed}/{total} ({progress:.0f}%)")

    time.sleep(3)
Resposta (completada)
{
    "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
    }
}
Seguimento do progresso em tempo real
Campo Descrição
status pending (em fila, à espera de um trabalhador do GPU), processing (traduzir ativamente), completed, failed
processed_texts Número de traduções individuais completadas até agora. Atualizações em tempo real como cada texto é traduzido.
progress_percentage Percentagem de conclusão (0-100). Calculada a partir de textos_processados/textos_total.
queue_position Sua posição na fila quando o estado está "pendido" (1 = próximo). Null ao processar ou completar. Use isto para estimar o tempo de espera e mostrar o estado da fila aos seus usuários.
processing_time Tempo total de processamento em segundos (disponível quando completado).
Lote Multi-Língua

Traduzir múltiplos textos para múltiplos idiomas de uma vez:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Data_de_resultado Completado
{
    "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
}
Parâmetros de Pedido
Parâmetro Tipo Requerido Descrição
texts array Sim Array de cordas para traduzir
target_language string Sim* Código da língua-alvo para uma única língua
target_languages array Sim* Array de códigos de língua-alvo para múltiplas línguas
source_language string Não Source language code. Default: "auto"

* Fornecer qualquer target_language ou target_languages, não ambos.

Melhores práticas para grandes cargas de trabalho
  • Envie 1 idioma-alvo por pedido de lote. Isto mantém cada lote rápido e torna o progresso fácil de rastrear.
  • Manter lotes em 50-100 textos. Lotes menores completam mais rápido e lhe dão atualizações de progresso mais frequentes.
  • Envie tantos trabalhos em lote como você precisa — nossas escalas automáticas GPU cluster para lidar com a demanda. Empregos são processados em paralelo em múltiplas instâncias.
  • No tempo de espera, re-poll o mesmo job_id em vez de enviar um novo lote. O trabalho original pode ainda estar processando na GPU.
  • Enquete a cada 3-5 segundos. A sondagem mais frequente não acelera o processamento.

Tradução do documento

Traduzir documentos inteiros ao preservar a formatação. Suporta vários formatos de arquivo.

POST https://api.translateapi.ai/api/v1/translate/document/
Pedido (multipart/formulário)
Parâmetro Tipo Requerido Descrição
file file Sim O documento a traduzir (máx. 10MB)
target_language string Sim Target language code (e.g., "es", "fr", "de")
source_language string Não Source language code. Default: "auto" (auto-detect)
Tipos de Ficheiros Suportados
Documentos
  • .txt - Ficheiros de texto simples
  • .docx - Documentos-chave
  • .pdf - Documentos PDF (incluindo escaneados)
Dados e Localização
  • .json - Arquivos JSON (traduzir os valores de string)
  • .xml - Ficheiros XML
  • .srt - Ficheiros de subtítulos
  • .po / .pot - Ficheiros de tradução do Gettext
Imagens (OCR)
  • .jpg / .jpeg - Imagens JPEG (OCR)
  • .png - Imagens PNG (OCR)
  • .tiff / .tif - Imagens TIFF (OCR)
  • .bmp - Imagens BMP (OCR)
  • .webp - Imagens WebP (OCR)
Exemplo (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"
Resposta
{
    "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"
}
Suporte do OCR: Os arquivos de imagem e PDF digitalizados são processados com reconhecimento óptico de caracteres (OCR) para extrair texto antes da tradução. Para os melhores resultados, use imagens claras e de alta resolução.
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Verifique o estado de tradução de um documento ou recupere a URL do download.

Valores de Estado
pending Ficheiro carregado, à espera de ser processado
processing Tradução em curso
completed Tradução completa, download disponível
failed A tradução falhou (verifique o erro_mensagem)

Línguas Suportadas

Obtenha a lista de todas as línguas suportadas.

GET https://api.translateapi.ai/api/v1/translate/languages/
Resposta
{
    "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"},
        ...
    ]
}

Ver todas as 186 Línguas

Modelos de Tradução

Utilizamos modelos de tradução de código aberto de última geração que funcionam em nossa própria infraestrutura GPU. Todos os modelos são licenciados comercialmente (Apache 2.0).

Modelo Línguas Melhor para
Helsinki-NLP/opus-mt 50+ pares de línguas Línguas comuns (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etc.)
Google MADLAD-400 400+ línguas Línguas raras, cobertura abrangente

A API seleciona automaticamente o melhor modelo para o seu par de idiomas. Você pode opcionalmente especificar um engine parâmetro:

Motor Descrição
"auto" Por defeito. Tria HuggingFace primeiro, volta para MADLAD-400
"huggingface" Força HuggingFace/MarianMT (mais rápido, 50+ línguas)
"madlad" Força MADLAD-400 (400+ línguas)

Tratamento de Erros

A API usa códigos de estado HTTP padrão para indicar sucesso ou falha.

Código Descrição
200 Sucesso
202 Aceito — Lote de trabalho na fila de espera com sucesso
400 Pedido inadequado — Parâmetros inválidos (texto faltante, linguagem não suportada, etc.)
401 Não autorizado - Inválido ou faltando chave API
402 Pagamento exigido — Créditos de caracteres esgotados. Atualize o seu plano ou compre um top-up.
403 Proibido — A chave API carece de escopo necessário ou IP não na lista branca
503 Serviço não disponível - Motor de tradução temporariamente para baixo
Formato de Resposta de Erro
{
    "error": "insufficient_credits",
    "credits_remaining": 0
}

Límites de utilização

TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:

Plano Características/Mes API de Lote Documentos Preço
Grátis 250,000 $0 Inscreva-se gratuitamente
Início 2,500,000 $9/mo Subscrever
Pro 10,000,000 $29/mo Subscrever
Negócios 40,000,000 $79/mo Subscrever
Escala 125,000,000 $199/mo Subscrever
Enterprise Unlimited $499/mo Contact Sales

Quando exceder o seu limite, você receberá um 402 Payment Required resposta até o próximo mês ou você atualiza.

Infraestrutura de nuvem de escala automática

A TranslateAPI é executada em instâncias NVIDIA A100 GPU dedicadas com escala horizontal automática. Quando aumenta a demanda, instâncias adicionais da GPU são lançadas em minutos para manter os tempos de resposta rápidos. Todos os pedidos são processados e encaminhados para enviar centenas de pedidos concorrentes e todos eles serão tratados. traduções em tempo real obtêm prioridade, processo de trabalhos em lote em segundo plano.

Precisa de mais créditos?

Sair de caracteres meados de mês? Comprar um topo de crédito de uma só vez sem alterar o seu plano. Ver embalagens de cima

Avaliar esta página
Obrigado pela sua classificação!
/5 baseado em Notas