@ action
The TranslateAPI provides a simple REST interface for translating text between 180+ languages. All API endpoints return JSON responses.
1. Ka samu maɓallin API naka
Yi amfani da wannan asusun don ƙirƙirar maɓallin API daga dashboard:
- Yi rijista a translateapi.ai/signup
- @ action Dashboard → Maɓallan API
- Danna "Saita Maɓallin API" kuma ka kwafe maɓallinka
Maɓallan API suna farawa da ta_ @ action
https://api.translateapi.ai/api/v1/2. Yi Tambayarka ta Farko
Sauya YOUR_API_KEY da maɓallin daga dashboard ɗinka:
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!"
Mawallafi
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
QFileDialog
Ka tabbatar da bukatunka ta amfani da maɓallin API. Za ka iya ƙirƙirar maɓallan API daga cikinka Dashboard.
QFileDialog
Authorization: Bearer ta_your_api_key_here
QPrintPreviewDialog
Authorization: ApiKey ta_your_api_key_here
@ action
https://api.translateapi.ai/api/v1/translate/?api_key=ta_your_api_key_here
@ action
@ action
POST https://api.translateapi.ai/api/v1/translate/
QDialogButtonBox
| Parameters | @ action | QDialogButtonBox | Bayani |
|---|---|---|---|
text |
string | A' a | @ label: textbox |
target_language |
string | Na'am | Target language code (e.g., "es", "fr", "de") |
source_language |
string | QFileDialog | Source language code. Default: "auto" (auto-detect) |
engine |
string | QFileDialog | @ label: textbox QFontDatabase. |
@ action target_language (harshe) ga harshe guda ko target_languages (array) for multiple. See QFontDatabase.
Mawallafi
{
"translated_text": "Hola, mundo!",
"source_language": "en",
"target_language": "es",
"translations": {
"es": "Hola, mundo!"
},
"character_count": 13,
"translation_time": 0.45
}
source_language ko ka sanya shi zuwa "auto" @ action: button source_language @ action
QFontDatabase
@ action: inmenu
POST https://api.translateapi.ai/api/v1/translate/
QDialogButtonBox
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
@ action target_languages (array) a matsayin target_language (harshe) ga manyan fayiloli da yawa.
Mawallafi
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
QPrintPreviewDialog
@ action
POST https://api.translateapi.ai/api/v1/translate/batch/
@ action
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"
}'
QDialogButtonBox
{
"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/"
}
QDialogButtonBox
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
QDialogButtonBox
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)
Mawallafi
{
"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
}
}
QDialogButtonBox
| @ label: textbox | Bayani |
|---|---|
status |
pending (a cikin jerin gwano, yana jira ga mai aiki na GPU), processing Sa'an nan, su zama mãsu aikatãwa. completed, failed |
processed_texts |
@ info: status |
progress_percentage |
Cikin kashi na kammala (0-100). An ƙidaya daga processed_texts / total_texts. |
queue_position |
Matsayinka a cikin jerin gwano idan halinka na "damuwa" (1 = na gaba). Babu idan an aiwatar ko an kammala. Yi amfani da wannan don ƙididdige lokacin jira da nuna halin jerin gwano ga masu amfani da ka. |
processing_time |
Total processing time in seconds (available when completed). |
@ item Spelling dictionary
@ action
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
An kammala sakamakon_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
}
Parameters na tambaya
| Parameters | @ action | QDialogButtonBox | Bayani |
|---|---|---|---|
texts |
array | A' a | Array na jigogi da za'a fassara |
target_language |
string | Na'am | Ƙididdigar harshe na manufa ga harshe guda |
target_languages |
array | Na'am | Array of target language codes for multiple languages |
source_language |
string | QFileDialog | Source language code. Default: "auto" |
@ info: status target_language ko target_languagesÃ'a, duka biyun.
Best Practices for Large Workloads
- @ action
- @ action
- Submit as many batch jobs as you need - our GPU cluster auto-scales to handle demand. Jobs are processed in parallel across multiple instances.
- A lokacin da lokaci ya yi tsawo, za'a sake tambaya kan aiki_ID mai kama da wannan ba tare da aika wani sabon bangare ba. Za'a iya cewa aikin asali na ci gaba da aiki a kan GPU.
- Yi tambaya kowace sakan 3-5. Yin tambaya da yawa ba zai rage gudun aikin ba.
@ action
@ action
POST https://api.translateapi.ai/api/v1/translate/document/
Tambaya (multipart/form-data)
| Parameters | @ action | QDialogButtonBox | Bayani |
|---|---|---|---|
file |
file | A' a | Takardar da za'a fassara (maksimal 10MB) |
target_language |
string | A' a | Target language code (e.g., "es", "fr", "de") |
source_language |
string | QFileDialog | Source language code. Default: "auto" (auto-detect) |
Nau'in Fayil da Aka Goyi Bayansu
@ action
.txt- Fayil na rubutu mai sauƙi.docx- Takardun Word.pdf- Takardun PDF (ciki har da waɗanda aka yi gwaji)
KCharselect unicode block name
.json- Files JSON (translates string values).xml- Files XML.srt- Fayilolin sunaye na ƙarshe.po/.pot- @ action
@ action
.jpg/.jpeg- Zane-Zane.png- Zane-Zane.tiff/.tif- Zane-Zane.bmp- Zane-Zane.webp- Zane-Zane WebP (OCR)
Misali (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"
Mawallafi
{
"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}/
QDialogButtonBox
Kimar Hali
pending |
An shigar da fayil, ana jiran a aiwatar da shi |
processing |
@ info: status |
completed |
@ info: status |
failed |
QDialogButtonBox |
Yaren da ake goyon baya
Ka karɓi jerin dukkan harsuna da ake goyon baya.
GET https://api.translateapi.ai/api/v1/translate/languages/
Mawallafi
{
"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"},
...
]
}
QFontDatabase
Mun yi amfani da tsarin fassara mai sauki mai sauki wanda ke aiki akan ginin GPU na kanmu. Dukkanin nau'ikan suna da lasisin kasuwanci (Apache 2.0).
| @ action | @ action | QPrintPreviewDialog |
|---|---|---|
| Helsinki-NLP/opus-mt | KCharselect unicode block name | Harsuna masu yawa (EN, ES, FR, DE, IT, PT, RU, ZH, JA, da dai sauransu) |
| Google MADLAD-400 | @ item Spelling dictionary | @ item Spelling dictionary |
The API automatically chooses the best model for your language pair. You can optionally specify an engine Paramita:
| Injin | Bayani |
|---|---|
"auto" |
Default. Trys HuggingFace first, falls back to MADLAD-400 |
"huggingface" |
Ka tilasta HuggingFace/MarianMT (mafi sauri, harsuna 50+) |
"madlad" |
Force MADLAD-400 (400+ harsuna) |
QSoftKeyManager
The API uses standard HTTP status codes to indicate success or failure.
| KCharselect unicode block name | Bayani |
|---|---|
| 200 | QDialogButtonBox |
| 202 | An karɓi — An sanya aikin kwance cikin jerin gwano da nasara |
| 400 | Tambaya mara kyau — Parameters masu rashin inganci (watau, rubutun da ke faruwa, harshe da ba'a goyi bayansa, da dai sauransu) |
| 401 | Ba'a yarda ba - Maɓallin API da ba'a yarda da shi ko kuma da aka rasa |
| 402 | An buƙaci biyan kuɗi — An kashe kuɗaɗen alamomin. Yi ci gaba da shirinka ko kuma saya wani ci gaba. |
| 403 | An hana — maɓallin API yana da matsala da aikace-aikacen da ake buƙata ko IP ba a cikin lissafin fari ba |
| 503 | QDialogButtonBox |
QFileDialog
{
"error": "insufficient_credits",
"credits_remaining": 0
}
QDialogButtonBox
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:
| QPrintPreviewDialog | @ action | API na Batch | @ action | QShortcut | |
|---|---|---|---|---|---|
| QDialogButtonBox | 250,000 | — | — | $0 | Yi rijista |
| @ action | 2,500,000 | $9/MB | @ action | ||
| QShortcut | 10,000,000 | $29/MB | @ action | ||
| QFontDatabase | 40,000,000 | $79/MB | @ action | ||
| @ action | 125,000,000 | $199/MB | @ action | ||
| Enterprise | Unlimited | $499/MB | Contact Sales |
Kuma idan ka ƙẽtare iyãkanka, zã ka sãmi wata azãba mai raɗaɗi. 402 Payment Required mai amsa har zuwa wata mai zuwa ko ka canza.
QSql
TranslateAPI yana tafiya a kan NVIDIA A100 GPU masu dacewa da daidaitawar tsaye ta atomatik. Idan bukata ta karu, ana fara wasu GPU a cikin minti don kiyaye lokaci mai sauri na amsawa. An sanya dukkan bukatun a cikin jerin kuma an aiwatar da su — aika daruruwan bukatun da suka haɗu kuma za a yi musu aiki. Real-time translations get priority, batch jobs process in the background.
@ action
@ action Nuna sassa na ƙarshe