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