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.

Basis URL- adres: 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
Hâld jo API- kaaien feilich! Se wurde net frijlitten yn client-side koade of iepenbiere repositories.

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.

Type: Der binne sa'n 50 ferskillende talen yn it lân sprutsen.
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.

Begrinzingen: maks. 500 teksten per batch, maks. 750 items yn totaal (teksten × doeltalen). Taken ferrinne 30 minuten nei it begjin fan de ferwurking (wachtrigetiid wurdt net meirekkene).
De ferwurkingstiid is ôfhinklik fan de taal: algemiene talen (Spaansk, Frânsk, Dútsk, ensfh.) brûke flugge modellen (~ 0, 1 sekonden per tekst), wylst minder algemiene talen ús grutte meartalige model brûke (~ 1- 3 sekonden per tekst). In batch fan 100 tekstbestannen is normaal klear yn 10- 30 sekonden foar algemiene talen, of 2- 5 minuten foar minder algemiene talen. Foar de bêste resultaten, stjoer 1 doeltaal per batchfersyk en hâld de batchgrutte ûnder 50 tekstbestannen.
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).
Type: Wannear 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.

Asynkroane ferwurking: Batch- fersiken komme direkt werom mei in 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)
OCR- stipe: Ofbyldtriemmen en skansearre PDF- dokuminten wurde ferwurke mei optyske tekenerkenning (OCR) om tekst út te heljen foardat se oerset wurde. Brûk foar de bêste resultaten dúdlike ôfbyldings mei in hege resolúsje.
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"
Ofbyldtriemmen wurde ferwurke mei OCR om tekst út te heljen foardat se oerset wurde. De oersette útfier wurdt weromjûn as in .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.

Beoardielje dizze side
Tige tank foar jo kar!
/5 basearre op Beoardieling