Τεκμηρίωση API
Ενσωμάτωση ισχυρή μετάφραση στις εφαρμογές σας με μας απλή REST API.
Ξεκίνησις
Το TranslateAPI παρέχει μια απλή διεπαφή REST για τη μετάφραση κειμένου μεταξύ 180+ γλωσσών.
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 | Ναι. | Κείμενο για μετάφραση (μέγ. 50.000 χαρακτήρες) |
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 (string) για μία μόνο γλώσσα ή target_languages (συναγερμός) για πολλαπλάσια. Multi-Target Μετάφραση.
Απάντηση
{
"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.
Multi-Target Μετάφραση
Μεταφράστε το κείμενο σε πολλές γλώσσες σε ένα μόνο αίτημα. Χρησιμοποιεί το ίδιο τελικό σημείο με την ενιαία μετάφραση.
POST https://api.translateapi.ai/api/v1/translate/
Αιτούμενος φορέας
{
"text": "Hello, world!",
"target_languages": ["es", "fr", "de", "ja"],
"source_language": "en"
}
Χρήση target_languages (συναγερμός) αντί του target_language Για πολλούς στόχους.
Απάντηση
{
"source_language": "en",
"translations": {
"es": "Hola, mundo!",
"fr": "Bonjour, monde!",
"de": "Hallo, Welt!",
"ja": "こんにちは、世界!"
},
"character_count": 52,
"translation_time": 2.31
}
Μετάφραση παρτίδας
Μεταφράστε πολλαπλά κείμενα ταυτόχρονα με την επεξεργασία async. Υποβάλετε μια παρτίδα και δημοσκόπηση για τα αποτελέσματα.
POST https://api.translateapi.ai/api/v1/translate/batch/
Βήμα 1: Υποβολή παρτίδας
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/"
}
Βήμα 2: Η δημοσκόπηση για τα αποτελέσματα
GET https://api.translateapi.ai/api/v1/jobs/{job_id}/
Παράδειγμα γύρης (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"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). |
Multi-Language Batch
Μετάφρασε πολλαπλά κείμενα σε πολλές γλώσσες ταυτόχρονα:
{
"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 | Ναι. | Το έγγραφο που θα μεταφράσει (max 10MB) |
target_language |
string | Ναι. | Target language code (e.g., "es", "fr", "de") |
source_language |
string | Όχι. | Source language code. Default: "auto" (auto-detect) |
Υποστηριγμένοι τύποι αρχείων
Documents
.txt- Απλά αρχεία κειμένου.docx- Έγγραφα λέξεων.pdf- Έγγραφα PDF (συμπεριλαμβανομένων των σαρωμένων)
Data & Localization
.json- Αρχεία JSON (μεταφράζει τις τιμές συμβολοσειράς).xml- Αρχεία XML.srt- Αρχείο υπότιτλου.po/.pot- Gettext translation files
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}/
Ελέγξτε την κατάσταση μιας μετάφρασης εγγράφου ή ανακτήστε το URL λήψης.
Τιμές κατάστασης
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. Όλα τα μοντέλα είναι εμπορικά αδειοδοτημένα (Apache 2.0).
| Υπόδειγμα | Γλώσσες | Το καλύτερο για |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ ζεύγη γλωσσών | Κοινές γλώσσες (EN, ES, FR, DE, IT, PT, RU, ZH, JA κ.λπ.) |
| Google MADLAD-400 | 400+ γλώσσες | Σπάνιες γλώσσες, πλήρης κάλυψη |
Το API επιλέγει αυτόματα το καλύτερο μοντέλο για το ζεύγος γλώσσας σας. engine παράμετρος:
| Κινητήρας | Περιγραφή εμπορευμάτων |
|---|---|
"auto" |
Προκαθορισμένο. Δοκιμάζει HuggingFace πρώτα, πέφτει πίσω στο MDLAD-400 |
"huggingface" |
Δύναμη HuggingFace/MarianMT (γρήγορη, 50+ γλώσσες) |
"madlad" |
Δύναμη MADLAD-400 (400+ γλώσσες) |
Χειρισμός λάθους
Το 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/ου | Εγγραφή | ||
| Pro | 10,000,000 | $29/ου | Εγγραφή | ||
| Επιχειρήσεις | 40,000,000 | $79/ου | Εγγραφή | ||
| Κλίμακα | 125,000,000 | $199/ου | Εγγραφή | ||
| Enterprise | Unlimited | $499/ου | 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