Zolemba za API
Kuphatikiza zothandiza kutanthauzira m'mapulogalamu anu ndi REST API yathu yosavuta.
Kuyamba
The TranslateAPI amapereka yosavuta REST interface kwa kutanthauzira malemba pakati 180 + zinenero.All API endpoints kubwezera JSON mayankho.
https://api.translateapi.ai/api/v1/
Kuyamba Kwamfupi
Pangani zosowa zanu zoyamba zomasulira:
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!"
}
}
Kutsimikizira
Authenticate zosowa zanu pogwiritsa ntchito chida cha API. Mukhoza kupanga chida cha API kuchokera patsamba lanu dashboard.
Kutsimikizika kwa Header (Kuloledwa)
Authorization: Bearer ta_your_api_key_here
Query Parameter
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
Kutanthauzira Malemba
Kutanthauzira malemba ku mtundu wina woyenera.
POST https://api.translateapi.ai/api/v1/translate/
Mtima wa funso
| Paramita | Chizindikiro: | Zofunika | Kufotokozera |
|---|---|---|---|
text |
string | Yes | Text kutanthauzira (max 50,000 characters) |
target_language |
string | Inde* | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Palibe | Source language code. Default: "auto" (auto-detect) |
Kugwiritsa ntchito target_language (mzere) kwa zinenero imodzi kapena target_languages (array) kwa multiple. Onani Multi-Target Translation.
Kuyankha
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
Multi-Target Translation
Kutanthauzira malemba kwa zilankhulo zambiri m'modzi akufuna. Amagwiritsa ntchito chimodzimodzi endpoint monga kutanthauzira imodzi.
POST https://api.translateapi.ai/api/v1/translate/
Mtima wa funso
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Kugwiritsa ntchito target_languages (array) m'malo target_language (mzere) kwa ziyembekezo zambiri.
Kuyankha
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Batch Kutanthauzira
Kutanthauzira malemba ambiri pamodzi ndi async processing. Submit a batch ndi poll kwa zotsatira.
POST https://api.translateapi.ai/api/v1/translate/batch/
Gawo 1: Kutumiza 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"
}'
Kuyankha (HTTP 202 Accepted)
{
"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/"
}
Gawo 2: Poll kwa Results
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Polling Mfano (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)
Kuyankha (kuyembekezera — mzere, kuyembekezera kwa GPU)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
Kuyankha (kapena kuyankha)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
Kuyankha (kumaliza)
{
"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
}
}
Real-Time Progress Tracking
Gawo lililonse yankho poll amaphatikizapo real-time chitukuko nyanja motero mukhoza kuyang'ana moyenera zimene zikuchitika ndi batch wanu:
| Chigawo | Kufotokozera |
|---|---|
status |
Mtundu wa ntchito: pending (m'gulu, akuyembekezera wogwira ntchito wa GPU), processing (ogwira ntchito kutanthauzira), completed, failed |
processed_texts |
Mtengo wa zomasulira wina ndi mzake anamaliza mpaka pano. Updates mu real nthawi monga aliyense malemba anamasulira. |
total_texts |
Mtengo wa zomasulira zonse m'nkhaniyi (malemba × zinenero zofunikira). |
progress_percentage |
Kumaliza peresenti (0-100). Kuwerengedwa kuchokera processed_texts / total_texts. |
queue_position |
Malo anu m'gulu pamene khalidwe ndi "likuyembekezeredwa" (1 = lotsatira). Null pamene kuchitidwa kapena kumaliza. Mutha kugwiritsa ntchito izi kuti muwerenge nthawi yoyembekezera ndi kusonyeza khalidwe la gulu kwa ogwiritsa ntchito anu. |
processing_time |
Total processing nthawi mu masekondi (kupezeka pamene anamaliza). |
status ndi "pending", ogwira ntchito a GPU ndi ogwira ntchito ndi mabungwe ena. Sankhani queue_position kuti muwone ntchito zingati zomwe zili patsogolo panu (1 = inu ndinu wotsatira). Ntchito yanu idzayamba mwamsanga — palibe ntchito yofunika, chonde pitirizani kufunsa.
Best Practices kwa Large Workloads
- Send 1 target language per batch request. This keeps each batch fast and makes progress easy to track.
- Gwiritsani ntchito masamba a 50-100. Masamba ang'onoang'ono amamaliza mofulumira kwambiri ndipo amakupatsani zosintha zambiri.
- GPU imachita ntchito 2 panthawi imodzimodziyo — ntchito zina zimalowa m'gulu ndipo siziyamba mofulumira.
- Pa nthawi yochuluka, gwiritsani ntchitonso job_id yomweyo m'malo mwa kutumiza ntchito yatsopano. Ntchito yoyamba ikhozabe kuchitidwa pa GPU.
- Poll nthawi iliyonse 3-5 masekondi. Polling nthawi zambiri si kufulumizitsa processing.
Multi-Chilankhulo Batch
Kutanthauzira malemba ambiri a mitundu yosiyanasiyana pamodzi:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
Completed result_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
}
Ma parameters a funso
| Paramita | Chizindikiro: | Zofunika | Kufotokozera |
|---|---|---|---|
texts |
array | Yes | Array of strings to translate |
target_language |
string | Inde* | Target chilankhulo code kwa chilankhulo chimodzi |
target_languages |
array | Inde* | Array of target language codes for multiple languages |
source_language |
string | Palibe | Source language code. Default: "auto" |
* Pezani wina target_language kapena target_languages, si onse awiri.
job_id. Phunziro GET /api/v1/jobs/{job_id}/ mpaka status ndi "completed", kenako kuwerenga result_data kwa zomasulira. Kugwiritsa progress_percentage kutsatira chitukuko.
Kutanthauzira kwa Document
Kutanthauzira onse mabuku pamene kuteteza formatting. Supports multiple file formats.
POST https://api.translateapi.ai/api/v1/translate/document/
Kupempha (multipart / form-data)
| Paramita | Chizindikiro: | Zofunika | Kufotokozera |
|---|---|---|---|
file |
file | Yes | Fayilo yomasulira (max 10MB) |
target_language |
string | Yes | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Palibe | Source language code. Default: "auto" (auto-detect) |
Supported File Types
.txt- Fayilo ya malemba oyera.docx- Makalata a Word.pdf- PDF mafayilo (kuphatikizapo scanned).json- JSON mafayilo (amatanthauzira matanthauzo a string).xml- Fayilo ya XML
.srt- Fayilo ya ma subtitle.po/.pot- Gettext kutanthauzira mafayilo.jpg/.jpeg- JPEG zithunzi (OCR).png- PNG zithunzi (OCR).tiff/.tif- TIFF zithunzi (OCR).bmp- BMP zithunzi (OCR).webp- WebP zithunzi (OCR)
Mfano (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 fayilo.
Kuyankha
{
"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"
}
Makhalidwe a khalidwe
pending |
Fayilo yatulutsidwa, ikuyembekezera kuchitidwa |
processing |
Translation in progress |
completed |
Kutanthauzira komaliza, kutsitsa kulipo |
failed |
Kutanthauzira kulephera (onani error_message) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
Onani mfundo za kutanthauzira kwa deta kapena bwererani ku download URL.
Kuyankha
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
Kuzindikira zinenero
Chilankhulo kuzindikira ndi built-in pa chilichonse kutanthauzira funso. Set source_language to "auto" (kapena kupewa izo) ndi kupezeka zinenero ndi kubwezeredwa mu yankho.
POST https://api.translateapi.ai/api/v1/translate/
Mtima wa funso
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
Kuyankha
{
"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
}
The source_language field in the response shows the detected language when auto-detection is used.
Zilankhulo Zothandizidwa
Get the list of all supported languages.
GET https://api.translateapi.ai/api/v1/translate/languages/
Kuyankha
{
"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"},
...
]
}
Kutanthauzira Models
Timagwiritsa ntchito state-of-the-art open source translation models kuyendetsa pa GPU yathu yayikulu.Zosefera zonse ndi zovomerezeka (Apache 2.0).
| Model | Zilankhulo | Best kwa |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ zilankhulo zogwirizana | Zilankhulo zofala (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etc.) |
| Google MADLAD-400 | 400 + zilankhulo | Zilankhulo zosadziwika, zokhudzana mozama |
The API mwamsanga amasankha yabwino model for your language pair. You may optionally specify an engine paramita:
| Makina | Kufotokozera |
|---|---|
"auto" |
Default. Amayesetsa HuggingFace koyamba, amabwerera ku MADLAD-400 |
"huggingface" |
Kuletsa HuggingFace / MarianMT (mosavuta, 50 + zinenero) |
"madlad" |
Force MADLAD-400 (400 + zinenero) |
Kuyang'anira zolakwika
API amagwiritsa ntchito standard HTTP status codes kusonyeza kupambana kapena kulephera.
| Kodi | Kufotokozera |
|---|---|
200 |
Kupambana |
400 |
Bad Kupempha - Invalid parameters |
401 |
Osaloledwa - Chofunikira cha API chosavomerezeka kapena chosapezeka |
402 |
Kulipira Kufunika - Daily character quota exceeded |
429 |
Mafunso Ochuluka - Mpaka wa mtengo wapatali unakwera |
503 |
Service Unavailable - Kusintha injini nthawizonse pansi |
Fayilo ya yankho la vuto
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
Mipaka ya mtengo
Malamulo amasiyana malinga ndi ndondomeko. mtengo kwa zambiri zokwanira:
| Phunziro | Chizindikiro/mwezi | Mtengo | |
|---|---|---|---|
| _Yaulere | 250,000 | $0 | Kulembetsa kwaulere |
| Woyamba | 2,500,000 | $9/mphindi | Kulembetsa |
| Pro | 10,000,000 | $29/mphindi | Kulembetsa |
| Zamalonda | 40,000,000 | $79/mphindi | Kulembetsa |
| Kukula | 125,000,000 | $199/mphindi | Kulembetsa |
Pamene inu kupitilira malire anu, mudzalandira a 429 Too Many Requests yankho mpaka mwezi ukubwerawu kapena inu kuwonjezera.
Auto-Scaling Cloud Infrastructure
TranslateAPI runs on dedicated NVIDIA A100 GPU instances with automatic horizontal scaling. When demand increases, additional GPU instances are launched within minutes to maintain fast response times. This means our API can handle virtually unlimited concurrent requests without degradation — from a single request to thousands per minute.