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