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.
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
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.
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.
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). |
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.
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)
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"
.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.