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.
1. Få din API-nyckel
Skapa ett gratis konto och skapa din API-nyckel från instrumentpanelen:
- Anmäl dig på translateapi.ai/signup
- Gå till Dashboard → API- nycklar
- Klicka på "Skapa API-nyckel" och kopiera din nyckel
API-tangenterna börjar med ta_ följt av 56 förhäxade tecken.
https://api.translateapi.ai/api/v1/2. Gör din första begäran
Ersätt DIN API_KEY med nyckeln från instrumentpanelen:
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!"
Svar
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
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
ApiKey- huvud
Authorization: ApiKey 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) |
engine |
string | Ej tillämpligt | Översättningsmotor: "auto" (standard), "buggingface", eller "madlad". Se översättningsmodeller. Översättningsmodeller. |
* 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
}
source_language eller ställ in den på "auto" för att automatiskt detektera källspråket. Det detekterade språket returneras i source_language svarsfält.
Ö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"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)
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
| Fält | Varuslag |
|---|---|
status |
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. |
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). |
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.
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.
- Skicka in så många batch jobb som du behöver – våra GPU kluster auto-skalor för att hantera efterfrågan. Jobb behandlas parallellt över flera instanser.
- 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.
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
Handlingar
.txt- Kortfattade textfiler.docx- Ordlista.pdf- PDF-dokument (inklusive skannade)
Data & Lokalisering
.json- JSON- filer (översätter strängvärden).xml- XML- filer.srt- Textningsfiler.po/.pot- Hämta översättningsfiler för text
Bilder (OCR)
.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"
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"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Kontrollera status för en dokumentöversättning eller hämta nedladdning URL.
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) |
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 |
| 202 | Godkänd – Batchjobb köat med lyckat resultat |
| 400 | Felaktig begäran – Ogiltiga parametrar (felande text, språk som inte stöds etc.) |
| 401 | Otillåten - Ogiltig eller saknad API- nyckel |
| 402 | Betalning krävs – tecken krediter utmattad. Uppgradera din plan eller köpa en toppen. |
| 403 | Förbjuden – API-nyckeln saknar erforderlig omfattning eller IP inte i vitlista |
| 503 | Service Otillgänglig - Översättningsmotor tillfälligt ner |
Fel i svarsformat@ info: whatsthis
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Användningsgränser
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:
| Plan | Tecken/Månad | Batch- API: er | Handlingar | 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 | ||
| Enterprise | Unlimited | $499/m m m | Contact Sales |
När du överskrider din gräns, får du en 402 Payment Required svar till nästa månad eller du uppgradera.
Automatisk skalning av molninfrastruktur
TranslateAPI körs på dedikerade NVIDIA A100 GPU- instanser med automatisk horisontell skalning. När efterfrågan ökar, lanseras ytterligare GPU- instanser inom några minuter för att upprätthålla snabba svarstider. Alla förfrågningar köas och behandlas — skicka hundratals samtidiga förfrågningar och de kommer alla att hanteras. Realtids översättningar får prioritet, batch jobb process i bakgrunden.
Behöver du fler krediter?
Har du slut på karaktärer i mitten av månaden? Köp en engångs kredit toppen utan att ändra din plan. Visa uppladdningsbara paket