API-dokumentation

Integrera kraftfull översättning till dina applikationer med vår enkla REST API.

Komma igång

TranslateAPI tillhandahåller ett enkelt REST-gränssnitt för att översätta text mellan 180+ språk. Alla API-slutpunkter returnerar JSON-svar.

Baswebbadress: https://api.translateapi.ai/api/v1/
Snabbstart

Gör din första översättningsförfrågan:

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!"
    }
}

Behörighetskontroll

Autentisera dina önskemål med en API-nyckel. Du kan skapa API-tangenter från din instrumentbrädan.

Behörighetskontroll av huvud (rekommenderas)
Authorization: Bearer ta_your_api_key_here
Förfrågans parameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Håll dina API-nycklar säkra! Utsätt dem inte i klient-side-kod eller offentliga arkiv.

Översätt text

Översätt text till ett enda målspråk.

POST https://api.translateapi.ai/api/v1/translate/
Begärande organ
Parameter Typ Krävs Varuslag
text string Ja, det är jag. Text att översätta (max 50 000 tecken)
target_language string Ja, det är jag. Target language code (e.g., "es", "fr", "de")
source_language string Ej tillämpligt Source language code. Default: "auto" (auto-detect)

* Användning target_language (sträng) för ett enda språk eller target_languages För flera. Se Översättning med flera mål.

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

Översättning med flera mål

Översätt text till flera språk i en enda begäran. Använder samma endpoint som en enda översättning.

Tips: Du kan översätta upp till 50 språk i en enda begäran.
POST https://api.translateapi.ai/api/v1/translate/
Begärande organ
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Användning target_languages (Array) i stället för target_language (sträng) för flera mål.

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

Översättning av tillverkningssats

Översätt flera texter på en gång med async processing. Skicka en sats och opinionsundersökning för resultat.

Gränser: max 500 texter per sats, max 750 totalt objekt (texter × målspråk). Jobs time out 30 minuter efter bearbetning börjar (queue väntetid räknas inte).
Bearbetningstiden varierar beroende på språk: vanliga språk (spanska, franska, tyska, etc.) använder snabba modeller (~0.1s per text), medan mindre vanliga språk använder vår stora flerspråkiga modell (~1-3s per text). En 100-text sats vanligtvis kompletterar i 10-30 sekunder för gemensamma språk, eller 2-5 minuter för mindre vanliga. För bästa resultat, skicka 1 målspråk per batch begäran och hålla batch storlekar under 50 texter.
POST https://api.translateapi.ai/api/v1/translate/batch/
Steg 1: Skicka in 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"
}'
Svar (HTTP 202 Godkänd)
{
    "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/"
}
Steg 2: Undersökning för resultat
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Exempel på mätning (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)
Svar (utgifter – köade, väntar på GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Svar (under behandling)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Svar (fullbordat)
{
    "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
    }
}
Spårning av realtidsframgång

Varje opinionssvar inkluderar förloppsfält i realtid så att du kan övervaka exakt vad som händer med ditt parti:

Fält Varuslag
status Nuvarande arbetstillstånd: pending (krävs, väntar på en GPU-arbetare), processing (aktivt översätta), completed,,.............................................. failed
processed_texts Antal enskilda översättningar avslutade hittills. Uppdateringar i realtid som varje text är översatt.
total_texts Totalt antal översättningar i detta parti (texter × målspråk).
progress_percentage Slutfört i procent (0-100). Beräknat från bearbetade_texter / total_texter.
queue_position Din position i kön när statusen är "pending" (1 = next up). Null när bearbetning eller slutföras. Använd detta för att uppskatta väntetid och visa köstatus för dina användare.
processing_time Total processtid i sekunder (tillgänglig när den är klar).
Tips: När status är "pending", GPU-arbetarna är upptagna med andra satser. queue_position för att se hur många jobb som ligger före dina (1 = du står på tur). Ditt jobb kommer att starta automatiskt – inga åtgärder behövs, bara hålla omröstningar.
Bästa praxis för stora arbetsbelastningar
  • Skicka 1 målspråk per batch begäran. Detta håller varje batch snabbt och gör framsteg lätt att spåra.
  • Håll satser på 50-100 texter. Mindre satser slutföra snabbare och ge dig mer frekventa framsteg uppdateringar.
  • Kör som mest 2 samtidiga batch jobb. GPU behandlar 2 omgångar parallellt — ytterligare jobb kö och kommer inte att starta snabbare.
  • Vid timeout, återpolera samma jobb_id istället för att skicka en ny sats. Det ursprungliga jobbet kan fortfarande vara bearbetning på GPU.
  • Rösta var 3-5 sekunder. Mer frekventa omröstningar påskyndar inte bearbetningen.
Flerspråkig batch

Översätt flera texter till flera språk samtidigt:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Slutfört resultat_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
}
Begär parametrar
Parameter Typ Krävs Varuslag
texts array Ja, det är jag. Array av strängar att översätta
target_language string Ja, det är jag. Målspråkskod för ett enda språk
target_languages array Ja, det är jag. Array av målspråk koder för flera språk
source_language string Ej tillämpligt Source language code. Default: "auto"

* Ge antingen target_language eller target_languages, inte båda.

Async-behandling: Batch begär tillbaka omedelbart med en job_id. Försl. tilll.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l.l GET /api/v1/jobs/{job_id}/ till status är "completed", läs sedan result_data för översättningar. progress_percentage Att följa utvecklingen.

Dokumentöversättning

Översätt hela dokument medan formatering bevaras. Stöder flera filformat.

POST https://api.translateapi.ai/api/v1/translate/document/
Begäran (flera delar/formulärsuppgifter)
Parameter Typ Krävs Varuslag
file file Ja, det är jag. Dokumentet att översätta (max 10MB)
target_language string Ja, det är jag. Target language code (e.g., "es", "fr", "de")
source_language string Ej tillämpligt Source language code. Default: "auto" (auto-detect)
Filtyper som stöds
  • .txt - Kortfattade textfiler
  • .docx - Ordlista
  • .pdf - PDF-dokument (inklusive skannade)
  • .json - JSON- filer (översätter strängvärden)
  • .xml - XML- filer
  • .srt - Textningsfiler
  • .po / .pot - Hämta översättningsfiler för text
  • .jpg / .jpeg - JPEG- bilder (OCR)
  • .png - PNG-bilder (OCR)
  • .tiff / .tif - TIFF-bilder (OCR)
  • .bmp - BMP-bilder (OCR)
  • .webp - WebP-avbildningar (OCR)
Stöd för OCR: Bildfiler och skannade PDF-filer behandlas med optisk teckenigenkänning (OCR) för att extrahera text före översättning. För bästa resultat, använd tydliga, högupplösta bilder.
Exempel (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"
Bildfiler behandlas med OCR för att extrahera text innan översättning. Den översatta utmatningen returneras som en .txt En akt.
Svar
{
    "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"
}
Statusvärden
pending Fil uppladdad, väntar på att bli behandlad
processing Översättning pågår
completed Översättning färdig, nedladdning tillgänglig
failed Översättning misslyckades (kontrollfel_ meddelande)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Kontrollera status för en dokumentöversättning eller hämta nedladdning URL.

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

Påvisande av språk

Språkdetektering är inbyggd i varje översättningsbegäran. Ställ in source_language to "auto" (eller utelämna det) och det upptäckta språket returneras i svaret.

POST https://api.translateapi.ai/api/v1/translate/
Begärande organ
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Svar
{
    "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
}

I artikel 3 ska följande punkt läggas till: source_language fältet i svaret visar det detekterade språket när automatisk upptäckt används.

Språk som stöds

Hämta listan med alla språk som stöds.

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

Översättningsmodeller

Vi använder toppmoderna översättningsmodeller med öppen källkod som körs på vår egen GPU-infrastruktur. Alla modeller är kommersiellt licensierade (Apache 2.0).

Förlaga Språk Bästa för
Helsinki-NLP/opus-mt 50+ språkpar Gemensamma språk (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etc.)
Google MADLAD-400 400+ språk Sällsynta språk, omfattande täckning

API:et väljer automatiskt den bästa modellen för ditt språkpar. Du kan välja att ange en engine Parameter:

Motor Varuslag
"auto" Standard. Tries HuggingFace först, faller tillbaka till MADLAD-400
"huggingface" Force HuggingFace/MarianMT (snabbast, 50+ språk)
"madlad" Tvinga MADLAD-400 (400+ språk)

Felhantering

API:et använder vanliga HTTP-statuskoder för att indikera framgång eller misslyckande.

Kod för identifieringskod för det land som beviljat/utökat/ej beviljat/utökat/återkallat godkännandet Varuslag
200 Framgång
400 Felaktig begäran - Ogiltiga parametrar
401 Otillåten - Ogiltig eller saknad API- nyckel
402 Betalning krävs - Daglig teckenkvot överskridits
429 För många förfrågningar - Prisgräns överskrids
503 Service Otillgänglig - Översättningsmotor tillfälligt ner
Fel i svarsformat@ info: whatsthis
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Betygsgränser

Gränserna varierar beroende på plan. Se prissättning För fullständig information:

Plan Tecken/Månad Pris
Avgiftsfri 250,000 $0 Registrera dig gratis
Uppstart 2,500,000 $9/m m m Prenumerera
För 10,000,000 $29/m m m Prenumerera
Affärer 40,000,000 $79/m m m Prenumerera
Skala 125,000,000 $199/m m m Prenumerera

När du överskrider din gräns, får du en 429 Too Many Requests svar till nästa månad eller du uppgradera.

Auto-Scaling Cloud Infrastructure

TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.

Betygsätt denna sida
Tack för ditt betyg!
/5 baserat på Befattningar