API Dokumentasie

Dra kragtige vertaling in jou aansoeke met ons eenvoudige REST API.

Hoe om te begin

Die VertaalAPI verskaf 'n eenvoudige REST-koppelvlak om teks tussen 180+ tale te vertaal. Al 'nPI-puntpunte gee terug JSON antwoord.

Basis URL: https://api.translateapi.ai/api/v1/
Vinnige Begin

Maak jou eerste vertaling versoek:

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!"
    }
}

Geldigheidsverklaring

Verifiëer jou versoeke deur 'n API-sleutel te gebruik. Jy kan API-sleutels van jou skep K- bord.

Opskrif Geldigheidsverklaring (Aanbeveel)
Authorization: Bearer ta_your_api_key_here
Navraag Parameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Hou jou API-sleutels veilig! Moenie hulle in kliënt-side-kode of openbare regstellings blootstel nie.

Vertaal Teks

Vertaal teks na 'n enkel doel taal.

POST https://api.translateapi.ai/api/v1/translate/
Versoek Liggaam
Parameter Tipe Benodig Beskrywing
text string Ja Teks om te vertaal (max 50 000 karakters)
target_language string Ja* Target language code (e.g., "es", "fr", "de")
source_language string Nee Source language code. Default: "auto" (auto-detect)

* Gebruik target_language (string) vir enkeltaal of target_languages (skikking) vir veelvuldige. Sien Multi- Polerge Translation.

Reaksie
{
    "translated_text": "Hola, mundo!",
    "source_language": "en",
    "target_language": "es",
    "translations": {
        "es": "Hola, mundo!"
    },
    "character_count": 13,
    "translation_time": 0.45
}

Multi- Polerge Translation

Vertaal teks na veelvuldige tale in 'n enkel versoek. Gebruik dieselfde punt as enkel vertaling.

Leidraad: Jy kan in een versoek tot 50 tale vertaal.
POST https://api.translateapi.ai/api/v1/translate/
Versoek Liggaam
{
    "text": "Hello, world!",
    "target_languages": ["es", "fr", "de", "ja"],
    "source_language": "en"
}

Gebruik target_languages (skikking) in plaas van target_language (string) vir veelvuldige teikens.

Reaksie
{
    "source_language": "en",
    "translations": {
        "es": "Hola, mundo!",
        "fr": "Bonjour, monde!",
        "de": "Hallo, Welt!",
        "ja": "こんにちは、世界!"
    },
    "character_count": 52,
    "translation_time": 2.31
}

Bangt TranslationQuery

Vertaal veelvuldige tekste dadelik met ansync verwerking. Instuur 'n klomp en bestuiwers vir resultate.

Limiet: maksimum 500 tekste per vrag,max 750 totale items (teks × teikentale). Werkstyd uit 30 minute nadat verwerking begin het (hou wagtyd word nie getel nie).
Die proses van tyd wissel deur taal: gemeenskaplike tale (Spaans, Frans, Duits, ens.) gebruik vinnige modelle (~ 1. 08: 1) minder gemeenskaplike tale gebruik ons groot veeltalige model (~1-3's per teks). 'n 100-text laai gewoonlik volledig vir gemeenskaplike tale, of 2-5 minute vir minder algemene tale. Vir die beste resultate, stuur 1 teiken per taal versoek en hou stapel groottes onder 50 tekste.
POST https://api.translateapi.ai/api/v1/translate/batch/
Stap 1: Dien Batch in
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"
}'
Reaksie (HTTP 202 aanvaar)
{
    "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: Smeer vir resultate
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Hoe om'n voorbeeld te stel (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)
Reaksie (Huising TTY toug, wag vir GPU)
{
    "job_id": "67535b2b-...",
    "status": "pending",
    "processed_texts": 0,
    "total_texts": 3,
    "progress_percentage": 0.0,
    "queue_position": 3
}
Reaksie (terwyl verwerking)
{
    "job_id": "67535b2b-...",
    "status": "processing",
    "processed_texts": 1,
    "total_texts": 3,
    "progress_percentage": 33.33,
    "queue_position": null
}
Reaksie (%d%% klaar)
{
    "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
    }
}
Reël-tyd Vordering

Elke meningsopname antwoord sluit ware vooruitgangvelde in sodat jy presies kan monitor wat met jou bak gebeur:

Veld Beskrywing
status Huidige taaktoestand: pending (Gekies, gewag vir 'n GPU-werker), processing (aktief vertaal), completed, failed
processed_texts Aantal individuele vertalings wat tot dusver voltooi is. Dateer op in werklike tyd namate elke teks vertaal word.
total_texts Totaal nommer van vertalings in hierdie klomp (teks × teikentale).
progress_percentage Voltooià ̄ng persentasie (0- 100). Geformateerde van verwerkte_tekste / totaal_tekste.
queue_position Jou posisie in die wagtou wanneer status is "hang" (1 = volgende begin). Null wanneer verwerking of voltooi. Gebruik hierdie na skat wag tyd en vertoon wagtou status aan jou gebruikers.
processing_time Totaal verwerking tyd in sekondes (beskikbaar wanneer voltooi).
Leidraad: Wanneer status is "pending", die GPU werkers is besig met ander klomps. Kontroleer queue_position om te sien hoeveel betrekkings bo joune is (1 = jy volgende is). Jou werk sal outomaties begin π geen aksie benodig nie, hou net onder beheer.
Beste gebruike vir groot werklaste
  • Stuur 1 teiken taal per bord versoek. Dit hou elke klomp vinnig en maak vordering maklik om te volg.
  • Hou hope by 50-100 tekste, Kleiner klomps voltooi vinniger en gee jou meer gereelde vordering bywerkings.
  • Hardloop by die meeste 2 konhunded werksgeleenthede. Die GPU verwerk 2 hope in parallelle illa addisionele werke wagtou en sal nie vinniger begin nie.
  • Op tydverstreke, re-poll dieselfde werk_id in plaas van instuur 'n nuwe klomp. die oorspronklike werk dalk mag wees verwerking op die GPU.
  • Tel elke 3- 5 sekondes. Meer gereelde meningspeilings bespoedig nie verwerking nie.
Multi-Language Bangch

Vertaal veelvuldige tekste na veelvuldige tale op 'n slag:

{
    "texts": ["Hello", "Goodbye"],
    "target_languages": ["es", "fr"],
    "source_language": "en"
}
Voltooide resultaat
{
    "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
}
Versoek Parameters
Parameter Tipe Benodig Beskrywing
texts array Ja Verbranding van stringe om te vertaal
target_language string Ja* Teiken taal kode vir enkel taal
target_languages array Ja* Array van teikentaalkodes vir veelvuldige tale
source_language string Nee Source language code. Default: "auto"

* Voorsien ook target_language of target_languages, nie albei nie.

Asinse Prosesing: Bangte versoeke keer onmiddellik terug met'n job_id. Poll GET /api/v1/jobs/{job_id}/ tot en met status is "completed", lees dan result_data vir vertalings. Gebruik progress_percentage om vordering op te spoor.

Dokument Vertaling

Vertaal hele dokumente terwyl besig is om formatering te bewaar. Ondersteun veelvuldige lêer formate.

POST https://api.translateapi.ai/api/v1/translate/document/
Versoek (ultipart/form- data)
Parameter Tipe Benodig Beskrywing
file file Ja Die dokument om te vertaal (max 10mb)
target_language string Ja Target language code (e.g., "es", "fr", "de")
source_language string Nee Source language code. Default: "auto" (auto-detect)
Ondersteunde Lêer Tipes
  • .txt - Skoontekslêers
  • .docx - Woorddokumente
  • .pdf - PDF-dokumente (insluitende ingevoer)
  • .json - JSON lêers (vertaal string waardes)
  • .xml - XML-lêers
  • .srt - Subtitel lÃaers
  • .po / .pot - Krytext - vertalinglêers
  • .jpg / .jpeg - JPEG-beelde (OCR)
  • .png - PNG-beelde (OCR)
  • .tiff / .tif - TIFF-beelde (OCR)
  • .bmp - BMP-beelde (OCR)
  • .webp - WebP-beelde (OCR)
Optiese karakter herkenning ondersteuning: Beeldlêers en geskandeerde PDF's word verwerk met optiese karaktererkenning (OCR) om teks voor vertaling uit te pak. Vir die beste resultate, gebruik helder, hoë-opsolusie beelde.
Voorbeeld (c URL)
# 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"
Beeldlêers word verwerk met Optiese karakter herkenning om teks uit te pak voor vertaling. Die vertaalde uitset word teruggestuur as 'n .txt lêer.
Reaksie
{
    "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"
}
Status waardes
pending Lêer opgelaai, wag om verwerk te word
processing Vertaling in vordering
completed Vertaling voltooi, aflaai beskikbaar
failed Vertaling gevaal (toets fout_boodskap)
GET https://api.translateapi.ai/api/v1/translate/document/{id}/

Bevestig die status van 'n dokument vertaling of onttrek die aflaai Url.

Reaksie
{
    "id": 123,
    "original_filename": "document.docx",
    "status": "completed",
    "translated_file_url": "/media/translated/document_es.docx",
    "character_count": 5420
}

Taal Optiese gebied

Taalopsporing word in elke versoek van vertaling ingebou. Stel source_language to "auto" (of weglaat dit) en die bespeurde taal word in die antwoord teruggegee.

POST https://api.translateapi.ai/api/v1/translate/
Versoek Liggaam
{
    "text": "Bonjour, comment allez-vous?",
    "target_language": "en"
}
Reaksie
{
    "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
}

Die source_language veld in die antwoord hierop wys die bespeurde taal wanneer outospeur gebruik word.

Ondersteunde tale

Kry die lys van alle ondersteunde tale.

GET https://api.translateapi.ai/api/v1/translate/languages/
Reaksie
{
    "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"},
        ...
    ]
}

Vertaling Modelle

Ons gebruik staat-van-die-kuns oop bron vertaal modelle wat op ons eie GPU-U infrastruktuur loop. Alle modelle is kommersieel gelisensieer (Apache 2,0).

Model Tale Beste vir
Helsinki-NLP/opus-mt 50+ taalpare Gemeenskaplike tale (EN, ES, FR, DE, DIT, PT, RUT, ZH, JA, etc.)
Google MADLAD-400 400+ tale Rare tale, omvattende dekking

Die API kies outomaties die beste model vir jou taal paar. Jy kan 'n opsie spesifiseer. engine parameter:

Masjien Beskrywing
"auto" Verstek. Trys Hugging Face first, terug na MADLAD-400
"huggingface" Forseer Hugging Face/MaricMT (vinnigste, 50+ tale)
"madlad" Forseer MADLAD-400 (400+ tale)

Fout met hantering van lêer: %s

Die API gebruik standaard HTTP status kodes om sukses of mislukking aan te dui.

Kommentaar Beskrywing
200 Sukses
400 Slegte Versoek - Ongeldige parameters
401 ongemagtigde - Ongeldig of afwesig 'nPI-sleutel
402 Betaling benodig - Daagliks karakter kwota oorskry
429 Te veel versoeke - tempogrens oorskry
503 Diens nie beskikbaar nie - Vertaalenjin tydelik af
Fout Reaksie Formaat
{
    "error": "daily_limit_exceeded",
    "credits_remaining": 0,
    "daily_limit": 100000
}

Tempo Limiet

Limiet wissel volgens plan. Sien Plaag vir volledige besonderhede:

Plan Karakter/Maand Prys
Beskikbaar 250,000 $0 Meld aan om vry te wees
Beginer 2,500,000 $9/mo Teken in
Pro 10,000,000 $29/mo Teken in
Besigheid 40,000,000 $79/mo Teken in
Skaal 125,000,000 $199/mo Teken in

As jy jou grens oorskry, sal jy 'n 429 Too Many Requests reaksie tot die volgende maand of op opgradering.

Outo- caling Wolk Infrastruktuur

Vertaalfoto's loop op toegewyde NVIDIA A100 GPU - gevalle met outomatiese horisontaleskalering. Wanneer die aanvraag toeneem, word bykomende GPU - gevalle binne minute gelanseer om vinnige reaksies te behou. Dit beteken dat ons API feitlik onbeperkte samegestelde versoeke kan hanteer sonder om CU te verneder van 'n enkele versoek tot duisende per minuut.

Tempo hierdie bladsy
Dankie vir jou ouderdom!
/5 gebaseer op Graderings