API- dokumintaasje
Integrearje krêftige oersetting yn jo applikaasjes mei ús ienfâldige REST API.
Begjinne
The TranslateAPI provides a simple REST interface for translating text between 180+ languages. All API endpoints return JSON responses.
https://api.translateapi.ai/api/v1/
Fluchstart
Jo earste oersettingsfersyk meitsje:
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!"
}
}
Autentikaasje
Jo fersiken autentisearje mei in API- kaai. Jo kinne API- kaaien oanmeitsje fanút jo dashboard.
Koptekst ferifikaasje (oanrikkemandearre)
Authorization: Bearer ta_your_api_key_here
Queryparameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Tekst oersette
Tekst oersette nei ien doeltaal.
POST https://api.translateapi.ai/api/v1/translate/
Fersyklichem
| Parameters | & Type: | Ferantwurdlik | Beskriuwing |
|---|---|---|---|
text |
string | Ja | Te oersetten tekst (maksimum 50. 000 tekens) |
target_language |
string | Ja* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Gjin | Source language code. Default: "auto" (auto-detect) |
* Brûk target_language (tekenrige) foar ien taal of target_languages (array) foar meardere. Sjoch Multi- Target oersetting.
Antwurd
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Multi- Target oersetting
Oersette tekst nei meardere talen yn ien fersyk. Brûkt itselde einpunt as ienfâldige oersetting.
POST https://api.translateapi.ai/api/v1/translate/
Fersyklichem
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Brûk target_languages (rige) ynstee fan target_language (tekenrige) foar meardere doelen.
Antwurd
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Batch- oersetting
Meardere teksten yn ien kear oersette mei asynkroane ferwurking. In batch ynstjoere en in poll foar de resultaten.
POST https://api.translateapi.ai/api/v1/translate/batch/
Stap 1: Batch ynstjoere
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"
}'
Antwurd (HTTP 202 akseptearre)
{
"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/"
}
Stap 2: Poll foar resultaten
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Polling foarbyld (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)
Antwurd (yn wachtsjen - yn wachtrige, wachtsje op GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Antwurd (tidens ferwurking)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
Antwurd (klear)
{
"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
}
}
Foarútgong yn reële tiid folgje
Elk poll- antwurd befettet real- time foarútgongsfjilden, sadat jo kontrolearje kinne wat der krekt bart mei jo batch:
| Fjild | Beskriuwing |
|---|---|
status |
Aktuele taaktastân: pending (yn wachtrige, wachtsje op in GPU- wurker), processing (aktyf oersetten), completed, failed |
processed_texts |
Oantal ôfsûnderlike oersettings dy' t oant no ta foltôge binne. Wurdt yn realtime bywurke as elke tekst oerset is. |
total_texts |
Totaal oantal oersettings yn dizze batch (teksten × doeltalen). |
progress_percentage |
Persintaazje foltôging (0- 100). Berekkene út processed_ texts / total_ texts. |
queue_position |
Jo posysje yn de wachtrige as de tastân "yn behanneling" is (1 = folgjende). Null as ferwurke of foltôge. Brûk dit om de wachttiid te berekkenjen en de tastân fan de wachtrige oan jo brûkers te toanen. |
processing_time |
Totale ferwurkingstiid yn sekonden (beskikber as klear). |
status is "pending", de GPU- wurkers binne dwaande mei oare batches. Check queue_position Klik hjir om te sjen hoefolle taken der foar jo binne (1 = jo binne de folgjende). Jo taak sil automatysk begjinne - gjin aksje nedich, gewoan trochgean mei pollen.
Best Practices for Large Workloads
- Ferstjoer 1 doeltaal per batchfersyk. Dit hâldt eltse batch fluch en makket it maklik om de foarútgong te folgjen.
- Hâld de batches op 50- 100 tekst. Lytsere batches binne flugger klear en jouwe jo faker foarútgongsupdates.
- Utfiere maksimaal 2 gelyktidige batchtaken. De GPU ferwurket 2 batches parallel - ekstra taken komme yn de wachtrige te stean en wurde net flugger útfierd.
- As de tiid ferrint, dan wurdt itselde taak_ id opnij besocht ynstee fan in nije batch yn te stjoeren. De orizjinele taak kin noch ferwurke wurde op de GPU.
- Poll elke 3- 5 sekonden. Mear faak polljen fersnelt de ferwurking net.
Meartalige batch
Meardere teksten yn ien kear oersette nei meardere talen:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Foltôge resultaat_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
}
Fersykparameters
| Parameters | & Type: | Ferantwurdlik | Beskriuwing |
|---|---|---|---|
texts |
array | Ja | Te oersetten tekenrige |
target_language |
string | Ja* | Doeltaalkoade foar ien taal |
target_languages |
array | Ja* | Rige fan doeltaalkoades foar meardere talen |
source_language |
string | Gjin | Source language code. Default: "auto" |
* Jou ien fan target_language of target_languages, net beide.
job_id. Gat GET /api/v1/jobs/{job_id}/ oant status is "completed", dan lêze result_data foar oersettingen. Use progress_percentage Om de foarútgong te folgjen.
Dokumint oersetting
Folsleine dokuminten oersette mei behâld fan de opmaak. Stjoert meardere triemformaten.
POST https://api.translateapi.ai/api/v1/translate/document/
Fersyk (multipart/form-data)
| Parameters | & Type: | Ferantwurdlik | Beskriuwing |
|---|---|---|---|
file |
file | Ja | It dokumint om te oersetten (maksimum 10MB) |
target_language |
string | Ja | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Gjin | Source language code. Default: "auto" (auto-detect) |
Stipe triemtypen
.txt- Plain text files.docx- Word-dokuminten.pdf- PDF-dokuminten (ynklusyf skansearre).json- JSON- triemmen (oerset tekenrigewearden).xml- XML- triemmen
.srt- Undertitelingstriemmen.po/.pot- Gettext oersettingstriemmen.jpg/.jpeg- JPEG- ôfbyldings (OCR).png- PNG- ôfbyldings (OCR).tiff/.tif- TIFF- ôfbyldings (OCR).bmp- BMP- ôfbyldings (OCR).webp- WebP- ôfbyldings (OCR)
Foarbyld (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 triem.
Antwurd
{
"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"
}
Tastânswearden
pending |
Triem opladen, wachtsjend op ferwurking |
processing |
Oersetting yn wurking |
completed |
Oersetting klear, ynladen beskikber |
failed |
Oersetting mislearre (check error_ message) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Kontrolearje de tastân fan in dokumint oersetting of helje it ynladen URL- adres op.
Antwurd
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Taal ûntdekking
Taaldeteksje is ynboude yn elk oersettingsfersyk. Set source_language to "auto" (of lit it fuort) en de ûntdutsen taal wurdt weromjûn yn it antwurd.
POST https://api.translateapi.ai/api/v1/translate/
Fersyklichem
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Antwurd
{
"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
}
De source_language Dit fjild yn it antwurd lit de ûntdutsen taal sjen as automatyske ûntdekking brûkt wurdt.
Stipe talen
Krij de list fan alle stipe talen.
GET https://api.translateapi.ai/api/v1/translate/languages/
Antwurd
{
"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"},
...
]
}
Oersettingsmodellen
Wy brûke state- of- the- art open source oersettingsmodellen dy' t draaie op ús eigen GPU- ynfrastruktuer. Alle modellen binne kommersjeel lisensearre (Apache 2. 0).
| Model | Talen | It bêste foar |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ talen | Algemiene talen (EN, ES, FR, DE, IT, PT, RU, ZH, JA, ensfh.) |
| Google MADLAD-400 | 400+ talen | Seldsume talen, útwreide dekking |
De API selektearret automatysk it bêste model foar jo taalpar. Jo kinne opsjoneel in engine Parameter:
| Motor | Beskriuwing |
|---|---|
"auto" |
Standert. Probearret earst HuggingFace, falt werom nei MADLAD- 400 |
"huggingface" |
Force HuggingFace/MarianMT (raastst, 50+ talen) |
"madlad" |
Force MADLAD-400 (400+ talen) |
Flaterbehanneling
De API brûkt standert HTTP-statuskoades om sukses of mislearring oan te jaan.
| Koade | Beskriuwing |
|---|---|
200 |
Suksesfol |
400 |
Unjildich fersyk - ûnjildige parameters |
401 |
Unautorisearre - Unjildige of ûntbrekkende API- kaai |
402 |
Betaling fereaske - deistich tekenkwotum oerskreaun |
429 |
Tefolle fersiken - snelheidslimyt oerskreaun |
503 |
Tsjinst net beskikber - oersettingsmasine tydlik net beskikber |
Flater antwurd opmaak
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Frekwinsjelimyt
Limits vary by plan. See pricing foar folsleine details:
| Plan | Teken/moanne | Priis | |
|---|---|---|---|
| Frij | 250,000 | $0 | Ynskriuwe |
| Starter | 2,500,000 | $9/moanne( n) | Ynskriuwe |
| Pro | 10,000,000 | $29/moanne( n) | Ynskriuwe |
| Wurk | 40,000,000 | $79/moanne( n) | Ynskriuwe |
| Skaal | 125,000,000 | $199/moanne( n) | Ynskriuwe |
As jo jo limyt oerschride, krije jo in 429 Too Many Requests Jo sille gjin antwurd krije oant de folgjende moanne of jo bywurkje.
Auto-Scaling Cloud Infrastruktuer
TranslateAPI draait op spesjale NVIDIA A100 GPU- eksimplaren mei automatyske horizontale skaalberens. As de fraach tanimt, wurde ekstra GPU- eksimplaren binnen minuten úteinset om de responstiid te ferlytsjen. Dit betsjut dat ús API hast ûnbeperkte gelyktidige fersiken behannelje kin sûnder fermindering - fan ien fersyk oant tûzenen per minút.