API- dokumentation

Integrer kraftfuld oversættelse til dine applikationer med vores enkle REST API.

Kom i gang

TranslateAPI giver en simpel REST interface til oversættelse af tekst mellem 180 + sprog. Alle API endpoints returnerer JSON svar.

Basis- URL: https://api.translateapi.ai/api/v1/
Hurtig start

Foretag din første anmodning om oversættelse:

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

Godkendelse

Autentificer dine anmodninger ved hjælp af en API- nøgle. Du kan oprette API- taster fra din instrumentbræt.

Header Authentication (Anbefalet)
Authorization: Bearer ta_your_api_key_here
Forespørgselsparameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Hold dine API nøgler sikker! Må ikke udsætte dem i klient-side kode eller offentlige arkiver.

Oversæt tekst

Oversæt tekst til et enkelt målsprog.

POST https://api.translateapi.ai/api/v1/translate/
Anmodningsorgan
Parameter Type Krævet Varebeskrivelse
text string Ja Tekst der skal oversættes (maks. 50.000 tegn)
target_language string Ja* Target language code (e.g., "es", "fr", "de")
source_language string Nej Source language code. Default: "auto" (auto-detect)

* Brug target_language (streng) for et enkelt sprog eller target_languages (array) for flere. Se Multi- Target- oversættelse.

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

Multi- Target- oversættelse

Oversætte tekst til flere sprog i en enkelt anmodning. Bruger det samme endpoint som enkelt oversættelse.

Tip: Du kan oversætte til op til 50 sprog i en enkelt anmodning.
POST https://api.translateapi.ai/api/v1/translate/
Anmodningsorgan
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Anvendelse target_languages (array) i stedet for target_language (streng) for flere mål.

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

Batchoversættelse

Oversæt flere tekster på én gang med async behandling. Indsend en batch og meningsmåling for resultater.

Grænser: max 500 tekster pr. batch, max 750 samlede emner (tekster × målsprog). Jobtid ud 30 minutter efter behandling starter (kør ventetid tælles ikke).
Behandlingstiden varierer efter sprog: fællessprog (spansk, fransk, tysk osv.) bruger hurtige modeller (~0.1s pr. tekst), mens mindre almindelige sprog bruger vores store flersprogede model (~1-3s pr. tekst). En 100-tekst batch normalt fuldfører i 10-30 sekunder for almindelige sprog, eller 2-5 minutter for mindre almindelige dem. For bedste resultater, sende 1 målsprog pr batch anmodning og holde batch størrelser under 50 tekster.
POST https://api.translateapi.ai/api/v1/translate/batch/
Trin 1: Indsend 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 accepteret)
{
    "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/"
}
Trin 2: Poll for resultater
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Polering Eksempel (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)
Response (pending ikowd, waiting for GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Respons (under behandling)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Respons (afsluttet)
{
    "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
    }
}
Real-Time Progress Tracking (Real-Time Progress Tracking)

Hver meningsmåling respons omfatter real-time fremskridt felter, så du kan overvåge præcis, hvad der sker med din batch:

Felt Varebeskrivelse
status Nuværende stilling: pending (kø, venter på en GPU arbejdstager), processing (aktivt oversat) completed, failed
processed_texts Antal individuelle oversættelser afsluttet indtil videre. Opdateringer i realtid som hver tekst er oversat.
total_texts Samlet antal oversættelser i dette parti (tekster × målsprog).
progress_percentage Færdiggørelsesprocent (0-100). Beregnet fra processed_texts / total_texts.
queue_position Din position i køen når status er "pending" (1 = next up). Null når du behandler eller er færdig. Brug dette til at estimere ventetid og vise køstatus til dine brugere.
processing_time Samlet behandlingstid i sekunder (tilgængelig når den er færdig).
Tip: Hvornår status er "pending", GPU-arbejderne har travlt med andre partier. queue_position For at se, hvor mange job der er foran din (1 = du er næste). Dit job vil starte automatisk! ingen handling er nødvendig, bare holde meningsmåling.
Bedste praksis for store arbejdsbelastninger
  • Send 1 målsprog pr batch anmodning. Dette holder hver batch hurtigt og gør fremskridt let at spore.
  • Hold partier på 50-100 tekster. Mindre partier fuldføre hurtigere og give dig hyppigere fremskridt opdateringer.
  • Kør på de fleste 2 samtidige batchjob. GPU'en behandler 2 partier parallelt med flere job kø og vil ikke starte hurtigere.
  • Ved timeout, re-poll det samme job_id i stedet for at indsende en ny batch. Det oprindelige job kan stadig behandles på GPU'en.
  • Poll hvert 3-5 sekund. Mere hyppige meningsmålinger fremskynder ikke behandlingen.
Multi- Language Batch

Oversæt flere tekster til flere sprog på én gang:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Afsluttede 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
}
Anmodningsparametre
Parameter Type Krævet Varebeskrivelse
texts array Ja Array af strenge til at oversætte
target_language string Ja* Målsprogskode for ét sprog
target_languages array Ja* Array af målsprog koder for flere sprog
source_language string Nej Source language code. Default: "auto"

* Giv enten target_language eller target_languages, ikke begge dele.

Async Processing: Batchforespørgsler vender tilbage med det samme med en job_id. PollGeneric GET /api/v1/jobs/{job_id}/ indtil status er "completed", så læs result_data til oversættelser. progress_percentage at spore fremskridt.

Dokument Oversættelse

Oversætte hele dokumenter samtidig bevare formatering. Understøtter flere filformater.

POST https://api.translateapi.ai/api/v1/translate/document/
Anmodning (flerdelt/formular-data)
Parameter Type Krævet Varebeskrivelse
file file Ja Dokumentet der skal oversættes (maks. 10MB)
target_language string Ja Target language code (e.g., "es", "fr", "de")
source_language string Nej Source language code. Default: "auto" (auto-detect)
Understøttede filtyper
  • .txt - Almindelige tekstfiler
  • .docx - Orddokumenter
  • .pdf - PDF-dokumenter (herunder scannede)
  • .json - JSON- filer (oversætter strengværdier)
  • .xml - XML- filer
  • .srt - Undertekstfiler
  • .po / .pot - Gettext- oversættelsesfiler
  • .jpg / .jpeg - JPEG- billeder (OCR)
  • .png - PNG- billeder (OCR)
  • .tiff / .tif - TIFF- billeder (OCR)
  • .bmp - BMP- billeder (OCR)
  • .webp - WebP- billeder (OCR)
OCR- understøttelse: Billedfiler og scannede PDF-filer behandles med optisk tegngenkendelse (OCR) for at udtrække tekst før oversættelse. For de bedste resultater, brug klare billeder med høj opløsning.
Eksempel (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"
Billedfiler behandles med OCR for at udtrække tekst før oversættelse. Det oversatte output returneres som en .txt fil.
Respons
{
    "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ærdier
pending Fil uploadet, venter på at blive behandlet
processing Igangværende oversættelse
completed Oversættelse komplet, download tilgængelig
failed Oversættelse mislykkedes (tjek fejl_ message)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Kontroller status for et dokument oversættelse eller hente download URL.

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

Sprogdetektion

Sprogdetektering er indbygget i enhver oversættelse anmodning. Sæt source_language to "auto" (eller udelade det) og det fundne sprog returneres i svaret.

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

• • • • • • • • • • • • • • • • source_language feltet i svaret viser det fundne sprog, når auto-detektion bruges.

Understøttede sprog

Få listen over alle understøttede sprog.

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

Oversættelsesmodeller

Vi bruger state-of-the-art open source oversættelse modeller, der kører på vores egen GPU infrastruktur. Alle modeller er kommercielt licenseret (Apache 2.0).

Model Sprog Bedst for
Helsinki-NLP/opus-mt 50+ sprogpar Fælles sprog (EN, ES, FR, DE, IT, PT, RU, ZH, JA osv.)
Google MADLAD-400 400+ sprog Sjældne sprog, omfattende dækning

API vælger automatisk den bedste model for dit sprogpar. Du kan eventuelt angive en engine parameter:

Motor Varebeskrivelse
"auto" Standard. Forsøger HuggingFace først, falder tilbage til MADLAD- 400
"huggingface" Force HuggingFace/MarianMT (hurtigste, 50+ sprog)
"madlad" Tving MADLAD-400 (400+ sprog)

Fejlhåndtering

API'en bruger standard HTTP-statuskoder til at angive succes eller fiasko.

Kode Varebeskrivelse
200 Succes
400 Dårlig anmodning - Ugyldige parametre
401 Uautoriseret - Ugyldig eller manglende API- nøgle
402 Payment required - Daily character kvote overskredet
429 For mange anmodninger - sats grænse overskredet
503 Service Ikke tilgængelig - Oversættelse motor midlertidigt ned
Fejlresponsformat
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Rategrænser

Grænserne varierer efter planen. Prissætning for fuldstændige oplysninger:

Plan Tegn/måned Pris
Fri 250,000 $0 Tilmeld dig gratis
Starter 2,500,000 $9/m Abonner
Pro 10,000,000 $29/m Abonner
Forretninger 40,000,000 $79/m Abonner
Skalér 125,000,000 $199/m Abonner

Når du overskrider din grænse, vil du modtage en 429 Too Many Requests svar indtil den næste måned, eller du opgraderer.

Auto-skalering Cloud infrastruktur

TranslateAPI kører på dedikeret NVIDIA A100 GPU- tilfælde med automatisk horisontal skalering. Når efterspørgslen stiger, lanceres yderligere GPU- forekomster inden for få minutter for at opretholde hurtige svartider. Det betyder, at vores API kan håndtere næsten ubegrænset samtidige anmodninger uden nedbrydning fra en enkelt anmodning til tusindvis i minuttet.

Bedøm denne side
Tak for din vurdering!
/5 baseret på ratings