مستندات
ترجمه قدرتمند را با برنامههای کاربردی خود با API REST ساده ما ادغام کنید.
شروع
TranslateAPI یک رابط REST ساده برای ترجمه متن بین ۱۸۰+ زبان فراهم میکند.
1. Get Your API Key
Create a free account and generate your API key from the dashboard:
- Sign up at translateapi.ai/signup
- Go to داشبورد → کلیدهای API
- Click "Create API Key" and copy your key
API keys start with ta_ followed by 56 hex characters.
https://api.translateapi.ai/api/v1/2. Make Your First Request
Replace YOUR_API_KEY with the key from your dashboard:
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!"
$ch = curl_init("https://api.translateapi.ai/api/v1/translate/");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer YOUR_API_KEY",
"Content-Type: application/json"
],
CURLOPT_POSTFIELDS => json_encode([
"text" => "Hello, world!",
"target_language" => "es"
])
]);
$result = json_decode(curl_exec($ch), true);
echo $result["translated_text"]; // "Hola, mundo!"
payload := strings.NewReader(`{
"text": "Hello, world!",
"target_language": "es"
}`)
req, _ := http.NewRequest("POST", "https://api.translateapi.ai/api/v1/translate/", payload)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Println(result["translated_text"]) // "Hola, mundo!"
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
var content = new StringContent(
JsonSerializer.Serialize(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 = JsonSerializer.Deserialize<JsonElement>(
await response.Content.ReadAsStringAsync()
);
Console.WriteLine(result.GetProperty("translated_text")); // "Hola, mundo!"
پاسخ
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
احراز هویت
درخواستهای خود را با استفاده از یک کلید API احراز هویت کنید. میتوانید کلیدهای API را از داشبورد.
احراز هویت سرآیند) توصیه میشود (
Authorization: Bearer ta_your_api_key_here
ApiKey Header
Authorization: ApiKey ta_your_api_key_here
پارامتر پرسش
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
ترجمۀ متن
ترجمه متن به یک زبان هدف واحد.
POST https://api.translateapi.ai/api/v1/translate/
بدنه درخواست
| پارامتر | & نوع | الزامی | & توصیف |
|---|---|---|---|
text |
string | آره | متن برای ترجمه) حداکثر ۵۰ کاراکتر ( |
target_language |
string | آره | Target language code (e.g., "es", "fr", "de") |
source_language |
string | نه | Source language code. Default: "auto" (auto-detect) |
engine |
string | نه | Translation engine: "auto" (default), "huggingface", or "madlad". See Translation Models. مدلهای ترجمه. |
* استفاده target_language ) رشته (برای یک زبان یا target_languages ) آرایه (برای مضرب. ببینید ترجمه چند هدفه.
پاسخ
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language or set it to "auto" to automatically detect the source language. The detected language is returned in the source_language response field.
ترجمه چند هدفه
ترجمۀ متن به چند زبان در یک درخواست واحد. از همان نقطه پایانی به عنوان ترجمۀ واحد استفاده میکند.
POST https://api.translateapi.ai/api/v1/translate/
بدنه درخواست
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
استفاده target_languages ) آرایه (به جای target_language (string) برای چند هدف.
پاسخ
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
ترجمۀ گروهی
ترجمه چند متن در یک زمان با پردازش غیر همگام. ارسال یک بسته و نظرسنجی برای نتایج.
POST https://api.translateapi.ai/api/v1/translate/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"
}'
پاسخ) HTTP 202 پذیرفته شد (
{
"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/"
}
گام ۲: نظرسنجی برای نتایج
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
مثال رایگیری (پایتون)
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"Done: {processed}/{total} in {result.get('processing_time', 0):.1f}s")
translations = result["result_data"]["translations"]
break
elif status == "failed":
raise Exception(result.get("error_message", "Translation failed"))
elif status == "pending":
print(f"Queued (position {result.get('queue_position', '?')})")
else:
print(f"[{status}] {processed}/{total} ({progress:.0f}%)")
time.sleep(3)
پاسخ) تکمیل شد (
{
"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
| Field | & توصیف |
|---|---|
status |
pending (queued, waiting for a GPU worker), processing (actively translating), completed, failed |
processed_texts |
Number of individual translations completed so far. Updates in real time as each text is translated. |
progress_percentage |
Completion percentage (0-100). Calculated from processed_texts / total_texts. |
queue_position |
Your position in the queue when status is "pending" (1 = next up). Null when processing or completed. Use this to estimate wait time and show queue status to your users. |
processing_time |
Total processing time in seconds (available when completed). |
دسته چندزبانه
ترجمۀ چند متن به چند زبان در یک زمان:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
_دادههای نتیجه تکمیل شده
{
"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
}
پارامترهای درخواست
| پارامتر | & نوع | الزامی | & توصیف |
|---|---|---|---|
texts |
array | آره | آرایه رشتهها برای ترجمه |
target_language |
string | آره | کد زبان هدف برای یک زبان |
target_languages |
array | آره | آرایه کدهای زبان هدف برای چندین زبان |
source_language |
string | نه | Source language code. Default: "auto" |
* هر دو را وارد کنید target_language یا target_languagesنه هر دو
Best Practices for Large Workloads
- Send 1 target language per batch request. This keeps each batch fast and makes progress easy to track.
- Keep batches at 50-100 texts. Smaller batches complete faster and give you more frequent progress updates.
- Submit as many batch jobs as you need — our GPU cluster auto-scales to handle demand. Jobs are processed in parallel across multiple instances.
- On timeout, re-poll the same job_id instead of submitting a new batch. The original job may still be processing on the GPU.
- Poll every 3-5 seconds. More frequent polling does not speed up processing.
ترجمۀ سند
ترجمۀ تمام سندها با حفظ قالببندی. از قالبهای پروندۀ متعدد پشتیبانی میکند.
POST https://api.translateapi.ai/api/v1/translate/document/
درخواست) چندبخشی/دادههای فرم (
| پارامتر | & نوع | الزامی | & توصیف |
|---|---|---|---|
file |
file | آره | سند برای ترجمه) حداکثر ۱۰ مگابایت ( |
target_language |
string | آره | Target language code (e.g., "es", "fr", "de") |
source_language |
string | نه | Source language code. Default: "auto" (auto-detect) |
انواع پروندههای پشتیبانیشده
Documents
.txt- پروندههای متنی ساده.docx- سندهای Word.pdf- سندهای PDF (از جمله اسکن شده)
Data & Localization
.json- پروندههای JSON) مقادیر رشته را ترجمه میکند (.xml- پروندههای XML.srt- پروندههای زیرنویس.po/.pot- پروندههای ترجمۀ Gettext
Images (OCR)
.jpg/.jpeg- تصاویر JPEG) OCR (.png- تصاویر PNG) OCR (.tiff/.tif- تصاویر TIFF) OCR (.bmp- تصاویر BMP) OCR (.webp- تصاویر WebP) OCR (
مثال (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"
پاسخ
{
"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"
}
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
بررسی وضعیت ترجمه یک سند یا بازیابی نشانی وب بارگیری.
مقادیر وضعیت
pending |
پروندۀ بارگذاریشده، منتظر پردازش |
processing |
ترجمه در حال انجام |
completed |
ترجمه کامل شد، بارگیری در دسترس است |
failed |
ترجمه شکست خورد (check error_message) |
زبانهای پشتیبانیشده
فهرست تمام زبانهای پشتیبانیشده را دریافت کنید.
GET https://api.translateapi.ai/api/v1/translate/languages/
پاسخ
{
"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"},
...
]
}
Submit Corrections
Suggest a better translation for a given source text. Corrections enter a moderation queue; once approved by our team they surface as "Community Verified" translations for that text.
https://translateapi.ai/api/v1/ (not the api. translation host), and requires an API key.POST https://translateapi.ai/api/v1/suggestions/
بدنه درخواست
| Parameter | & نوع | & توصیف |
|---|---|---|
source_text |
string | The original text that was translated. |
source_language |
string | Source language code (e.g. "en"). |
target_language |
string | Target language code (e.g. "es"). |
machine_translation |
string | The machine translation you are correcting. |
suggested_translation |
string | Your improved translation (must differ from machine_translation). |
Example Request
curl -X POST https://translateapi.ai/api/v1/suggestions/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_text": "Hello, world!",
"source_language": "en",
"target_language": "es",
"machine_translation": "Hola, mundo!",
"suggested_translation": "¡Hola, mundo!"
}'
پاسخ
{
"id": 4213,
"status": "pending",
"created": true,
"message": "Correction submitted for review."
}
Re-submitting the same source/language pair updates your existing suggestion instead of creating a duplicate (returns 200 with "created": false).
مدلهای ترجمه
ما از پیشرفتهترین مدلهای ترجمه متن باز استفاده میکنیم که بر روی زیرساخت GPU خودمان اجرا میشوند. تمام مدلها به صورت تجاری مجوز دارند (آپاچی ۲٫۰).
| مدل | زبانها | بهترین برای |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ جفت زبان | زبانهای مشترک (EN, ES, FR, DE, IT, PT, RU, ZH, JA, etc.) |
| Google MADLAD-400 | 400+ زبان | زبانهای نادر، پوشش جامع |
پیآیپی بهطور خودکار بهترین مدل را برای زوج زبانتان انتخاب میکند. میتوانید گزینهای را مشخص کنید engine پارامتر:
| موتور | & توصیف |
|---|---|
"auto" |
پیشفرض، اول سعی میکند HuggingFace را امتحان کند، به MADLAD-400 برمیگردد |
"huggingface" |
Force HuggingFace/MarianMT (سریعترین، بیش از ۵۰ زبان) |
"madlad" |
Force MADLAD-400 (400+ languages) مشارکتکنندگان ویکیپدیا. |
دستکاری خطا
API از کدهای وضعیت استاندارد HTTP برای نشان دادن موفقیت یا شکست استفاده میکند.
| کد | & توصیف |
|---|---|
| 200 | موفقیت |
| 202 | Accepted — Batch job queued successfully |
| 400 | Bad Request — Invalid parameters (missing text, unsupported language, etc.) |
| 401 | غیرمجاز - کلید API نامعتبر یا مفقود |
| 402 | Payment Required — Character credits exhausted. Upgrade your plan or purchase a top-up. |
| 403 | Forbidden — API key lacks required scope or IP not in whitelist |
| 503 | خدمات در دسترس نیست - موتور ترجمه به طور موقت خاموش است |
قالب پاسخ خطا
{
"error": "insufficient_credits",
"credits_remaining": 0
}
Usage Limits
TranslateAPI has no request rate limits. All requests are queued and processed by our auto-scaling GPU cluster. Your plan determines your monthly character allowance:
| نقشه | کاراکترها/ماه | Batch API | Documents | قیمت | |
|---|---|---|---|---|---|
| آزاد | 250,000 | — | — | $0 | ثبت نام |
| آغازگر | 2,500,000 | $9/% 1 دقیقه | اشتراک | ||
| حرفهای | 10,000,000 | $29/% 1 دقیقه | اشتراک | ||
| کار | 40,000,000 | $79/% 1 دقیقه | اشتراک | ||
| مقیاسبندی | 125,000,000 | $199/% 1 دقیقه | اشتراک | ||
| Enterprise | Unlimited | $499/% 1 دقیقه | Contact Sales |
وقتي از حدت فراتر رفتي، يه 402 Payment Required تا ماه ديگه جواب نميدم وگرنه ارتقا ميديد
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. All requests are queued and processed — send hundreds of concurrent requests and they'll all be handled. Real-time translations get priority, batch jobs process in the background.
Need More Credits?
Run out of characters mid-month? Purchase a one-time credit top-up without changing your plan. View top-up packs