API मिसिलीकरण
हाम्रो सरल REST API संग आफ्नो अनुप्रयोगहरूमा शक्तिशाली अनुवाद एकीकृत।
सुरुआत गर्दै
यो TranslateAPI 180+ भाषाहरू बीच पाठ अनुवाद लागि एक सरल REST इन्टरफेस प्रदान गर्दछ। सबै API अन्त बिन्दुहरू JSON प्रतिक्रियाहरू फर्काउँछ।
https://api.translateapi.ai/api/v1/
छिटो सुरुआत
आफ्नो पहिलो अनुवाद अनुरोध गर्नुहोस्:
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!"
}
}
प्रमाणीकरण
एपीआई कुञ्जी प्रयोग गरेर आफ्नो अनुरोध प्रमाणित गर्नुहोस्। तपाईं आफ्नोबाट एपीआई कुञ्जीहरू सिर्जना गर्न सक्नुहुन्छ डेस्कटप.
हेडर प्रमाणीकरण (सिफारिस गरिएको)
Authorization: Bearer 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) |
* प्रयोग 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
}
बहु- लक्षित अनुवाद
एकल अनुरोधमा बहुभाषिक पाठ अनुवाद गर्नुहोस् । एकल अनुवादको रूपमा उही अन्त बिन्दु प्रयोग गर्दछ ।
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
}
ब्याच अनुवाद
अतुल्यकालिक प्रक्रियासँग एकै पटक बहुविध पाठ अनुवाद गर्नुहोस् । परिणामका लागि ब्याच र पोल पेश गर्नुहोस् ।
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 २०२ स्वीकार गरियो)
{
"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"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)
प्रतिक्रिया (निलम्बित — लाम लगाइएको, GPU का लागि प्रतिक्षा गर्दै)
{
"job_id": "67535b2b-...",
"status": "pending",
"processed_texts": 0,
"total_texts": 3,
"progress_percentage": 0.0,
"queue_position": 3
}
प्रतिक्रिया (प्रक्रिया गर्दा)
{
"job_id": "67535b2b-...",
"status": "processing",
"processed_texts": 1,
"total_texts": 3,
"progress_percentage": 33.33,
"queue_position": null
}
प्रतिक्रिया (समाप्त)
{
"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
}
}
वास्तविक समय प्रगति ट्रयाकिङ्ग
प्रत्येक जनमत संग्रह प्रतिक्रिया वास्तविक-समय प्रगति फिल्ड समावेश त्यसैले तपाईं आफ्नो ब्याच संग के भइरहेको छ ठीक निगरानी गर्न सक्नुहुन्छ:
| फिल्ड | वर्णन: |
|---|---|
status |
हालको काम स्थिति: pending (लामबद्ध, GPU कार्यकर्ताका लागि प्रतिक्षा गर्दै), processing (सक्रिय रूपमा अनुवाद), completed, failed |
processed_texts |
अहिलेसम्म पूरा भएका व्यक्तिगत अनुवादको सङ्ख्या । प्रत्येक पाठ अनुवाद गरिएको रूपमा वास्तविक समयमा अद्यावधिक गर्दछ । |
total_texts |
यो ब्याचमा अनुवादको कुल सङ्ख्या (पाठहरू × लक्षित भाषाहरू) । |
progress_percentage |
पूरा प्रतिशत (०-१००) । प्रक्रिया गरिएको पाठ / कूल पाठबाट गणना गरिएको । |
queue_position |
वस्तुस्थिति "निलम्बित" (१ = पछिल्लो माथि) हुँदा लाममा तपाईँको स्थिति । प्रक्रिया गर्दा वा समाप्त हुँदा शून्य । तपाईँको प्रयोगकर्तालाई प्रतिक्षा समय अनुमान गर्न र लाम वस्तुस्थिति देखाउन यसलाई प्रयोग गर्नुहोस् । |
processing_time |
सेकेन्डमा कूल प्रक्रिया समय (पूर्ण भएपछि उपलब्ध) । |
status छ "pending", GPU कामदार अन्य ब्याचसँग व्यस्त छन् । जाँच गर्नुहोस् queue_position तपाईँको अगाडि कति काम छन् हेर्न (1 = तपाईँ पछिल्लो हुनुहुन्छ) । तपाईँको काम स्वचालित रूपमा सुरु हुनेछ — कुनै कार्य आवश्यक छैन, केवल मतदान जारी राख्नुहोस् ।
ठूलो कार्यभारको लागि सर्वश्रेष्ठ अभ्यासहरू
- प्रति ब्याच अनुरोध १ लक्षित भाषा पठाउनुहोस् । यसले प्रत्येक ब्याच छिटो राख्दछ र ट्रयाक गर्न प्रगति सजिलो बनाउँछ ।
- 50-100 पाठहरूमा ब्याचहरू राख्नुहोस्। साना ब्याचहरू छिटो पूरा गर्नुहोस् र तपाईंलाई बढी नियमित प्रगति अद्यावधिक दिनुहोस्।
- अधिकतम २ एकसाथ ब्याच कार्यहरू चलाउनुहोस् । GPU ले समानान्तरमा २ ब्याचहरू प्रक्रिया गर्दछ — अतिरिक्त कामहरू लामबद्ध हुन्छन् र छिटो सुरु हुँदैनन् ।
- समय समाप्तिमा, नयाँ ब्याच पेश गर्नुको सट्टा उही काम आईडी पुन: पोल गर्नुहोस् । मौलिक काम अझै GPU मा प्रक्रिया भइरहेको हुन सक्छ ।
- प्रत्येक ३-५ सेकेन्डमा पोलिंग गर्नुहोस् । बढी बारम्बार पोलिंगले प्रक्रिया गति बढाउँदैन ।
बहु- भाषा ब्याच
एक पटकमा धेरै भाषामा धेरै पाठहरू अनुवाद गर्नुहोस्:
{
"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, दुवै होइन ।
job_id. प्वाल GET /api/v1/jobs/{job_id}/ सम्म status छ "completed", त्यसपछि पढ्नुहोस् result_data अनुवादका लागि । प्रयोग गर्नुहोस् progress_percentage प्रगति ट्रयाक गर्न ।
कागजात अनुवाद
ढाँचा बचत गर्दै सम्पूर्ण कागजात अनुवाद गर्नुहोस् । बहुविध फाइल ढाँचा समर्थन गर्दछ ।
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) |
समर्थित फाइल प्रकार
.txt- सादा पाठ फाइल.docx- वर्ड कागजातहरू.pdf- PDF कागजातहरू (स्क्यान सहित).json- JSON फाइलहरू (स्ट्रिङ मानहरू अनुवाद गर्दछ).xml- XML फाइलहरू
.srt- उपशीर्षक फाइलहरू.po/.pot- अनुवाद फाइलहरू.jpg/.jpeg- JPEG छविहरू (ओसीआर).png- PNG छविहरू (OCR).tiff/.tif- TIFF छविहरू (OCR).bmp- BMP छविहरू (OCR).webp- वेबपी छविहरू (ओसीआर)
उदाहरण (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 फाइल
प्रतिक्रिया
{
"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"
}
वस्तुस्थिति मान
pending |
फाइल अपलोड गरियो, प्रक्रिया गर्न प्रतिक्षा गर्दै |
processing |
अनुवाद प्रगतिमा छ |
completed |
अनुवाद समाप्त, डाउनलोड उपलब्ध |
failed |
अनुवाद असफल भयो (त्रुटि सन्देश जाँच गर्नुहोस्) |
GET https://api.translateapi.ai/api/v1/translate/document/{id}/
कागजात अनुवादको स्थिति जाँच गर्नुहोस् वा डाउनलोड यूआरएल पुन: प्राप्त गर्नुहोस् ।
प्रतिक्रिया
{
"id": 123,
"original_filename": "document.docx",
"status": "completed",
"translated_file_url": "/media/translated/document_es.docx",
"character_count": 5420
}
भाषा पहिचान
भाषा पत्ता लगाउने हरेक अनुवाद अनुरोधमा निर्माण गरिएको छ । सेट source_language to "auto" (वा यसलाई छोड्नुहोस्) र पत्ता लागेको भाषा प्रतिक्रियामा फर्किन्छ ।
POST https://api.translateapi.ai/api/v1/translate/
अनुरोध मुख्य भाग
{
"text": "Bonjour, comment allez-vous?",
"target_language": "en"
}
प्रतिक्रिया
{
"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
}
यो source_language जब स्वचालित पत्ता लगाउने प्रयोग गरिन्छ जब प्रतिक्रियामा फिल्डले पत्ता लगाएको भाषा देखाउँछ ।
समर्थित भाषाहरू
सबै समर्थित भाषाहरूको सूची प्राप्त गर्नुहोस् ।
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"},
...
]
}
अनुवाद नमूना
हामी राज्य-को-आर्ट खुला स्रोत अनुवाद मोडेल हाम्रो आफ्नै GPU पूर्वाधार मा चलिरहेको प्रयोग. सबै मोडेल व्यावसायिक लाइसेन्स छन् (Apache 2.0).
| नमूना | भाषाहरू | यसका लागि उत्तम |
|---|---|---|
| Helsinki-NLP/opus-mt | 50+ भाषा जोडीहरू | सामान्य भाषाहरू (EN, ES, FR, DE, IT, PT, RU, ZH, JA, आदि) |
| Google MADLAD-400 | ४००+ भाषाहरू | दुर्लभ भाषाहरू, व्यापक कवरेज |
एपीआई स्वचालित रूपमा आफ्नो भाषा जोडी लागि सबै भन्दा राम्रो नमूना चयन गर्दछ. तपाईं वैकल्पिक एक निर्दिष्ट गर्न सक्नुहुन्छ engine परिमिति:
| इन्जिन | वर्णन: |
|---|---|
"auto" |
पूर्वनिर्धारित । पहिलो पटक HuggingFace प्रयास गर्दछ, MADLAD-400 मा फर्किन्छ |
"huggingface" |
HuggingFace/MarianMT बल (द्रुत, 50+ भाषाहरू) |
"madlad" |
बल MADLAD-400 (400+ भाषाहरू) |
त्रुटि ह्यान्डलिङ
एपीआई सफलता वा असफलता संकेत गर्न मानक HTTP स्थिति कोड प्रयोग गर्दछ।
| सङ्केत | वर्णन: |
|---|---|
200 |
सफलता |
400 |
खराब अनुरोध - अवैध परिमिति |
401 |
अवैध - अवैध वा हराइरहेको API कुञ्जी |
402 |
आवश्यक भुक्तानी - दैनिक क्यारेक्टर कोटा अतिक्रमण गरियो |
429 |
धेरै अनुरोध - दर सीमा नाघेको छ |
503 |
सेवा उपलब्ध छैन - अनुवाद इन्जिन अस्थायी रूपमा तल |
त्रुटि प्रतिक्रिया ढाँचा
{
"error": "daily_limit_exceeded",
"credits_remaining": 0,
"daily_limit": 100000
}
दर सीमा
योजना द्वारा सीमा फरक. हेर्नुहोस् मूल्याङ्कन पूर्ण विवरणहरूका लागि:
| प्लान | क्यारेक्टर/महिना | मूल्य | |
|---|---|---|---|
| स्वतन्त्र | 250,000 | $0 | निःशुल्क दर्ता गर्नुहोस् |
| सुरुआतकर्ता | 2,500,000 | $9/मिनेट | सदस्य बनाउनुहोस् |
| प्रो | 10,000,000 | $29/मिनेट | सदस्य बनाउनुहोस् |
| व्यवसाय | 40,000,000 | $79/मिनेट | सदस्य बनाउनुहोस् |
| मापन | 125,000,000 | $199/मिनेट | सदस्य बनाउनुहोस् |
जब तपाईं आफ्नो सीमा भन्दा बढी, तपाईं एक प्राप्त हुनेछ 429 Too Many Requests अर्को महिना वा तपाईं स्तरोन्नति सम्म प्रतिक्रिया।
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.