API ডকুমেন্টেশন
আমাদের সহজ রেস্ট এপিআই ব্যবহার করে আপনার অ্যাপ্লিকেশনে শক্তিশালী অনুবাদ একীভূত করুন।
শুরু করা হচ্ছে
180+ ভাষার মধ্যে টেক্সট অনুবাদ করার জন্য TranslateAPI একটি সহজ 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!"
}
}
অনুমোদন
API কী ব্যবহার করে আপনার অনুরোধ অনুমোদন করুন। আপনি আপনার অ্যাকাউন্ট থেকে API কী তৈরি করতে পারেন ড্যাশবোর্ড.
হেডার অনুমোদন (উপস্থিত)
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
}
ব্যাচ অনুবাদ
একাধিক টেক্সট একসাথে অনুবাদ করুন async প্রসেসিং এর মাধ্যমে । ফলাফল পেতে ব্যাচ এবং পোল জমা দিন ।
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 |
সমাপ্তির শতাংশ (০-১০০)। processed_texts / total_texts থেকে গণনা করা হয়েছে। |
queue_position |
স্ট্যাটাস "অপেক্ষারত" (১ = পরবর্তী পদক্ষেপ) হলে অপেক্ষারত তালিকায় আপনার অবস্থান। প্রক্রিয়াকরণ অথবা সম্পন্ন হলে শূণ্য। অপেক্ষা করার সময় অনুমান করতে এবং ব্যবহারকারীদের অপেক্ষারত তালিকার স্ট্যাটাস প্রদর্শন করতে এটি ব্যবহার করুন। |
processing_time |
সেকেন্ডে মোট প্রসেসিং সময় (সম্পূর্ণ হলে উপলব্ধ)। |
status হল "pending", GPU কর্মীরা অন্য ব্যাচ- এ ব্যস্ত । চেক করো queue_position আপনার কাজের আগে কতগুলো কাজ আছে তা দেখার জন্য (১ = আপনি পরবর্তী)। আপনার কাজ স্বয়ংক্রিয়ভাবে শুরু হবে - কোন কাজ করার প্রয়োজন নেই, শুধুমাত্র পোলিং চালিয়ে যান।
বড় ওয়ার্কলোডের জন্য সেরা প্র্যাকটিস
- প্রতিটি ব্যাচ অনুরোধের জন্য একটি লক্ষ্য ভাষা পাঠাও । এটি প্রতিটি ব্যাচকে দ্রুত রাখে এবং অগ্রগতি অনুসরণ করা সহজ করে ।
- ব্যাচগুলি ৫০-১০০ টেক্সটের মধ্যে রাখুন । ছোট ব্যাচগুলি দ্রুত সম্পন্ন হবে এবং আপনাকে আরও ঘন ঘন অগ্রগতি হালনাগাদ দেবে ।
- সর্বোচ্চ ২টি একই সময়ে ব্যাচ কাজ চালাও। GPU সমান্তরালে ২টি ব্যাচ প্রক্রিয়াকরণ করে - অতিরিক্ত কাজের জন্য অপেক্ষা করা হবে এবং তা দ্রুত আরম্ভ হবে না।
- টাইম-আউট হলে, নতুন ব্যাচ জমা দেয়ার পরিবর্তে একই job_id পুনরায় পোলিং করা হবে। GPU-তে মূল কাজ এখনো প্রসেস করা হতে পারে।
- প্রতি ৩-৫ সেকেন্ডে পোলিং করা হবে । বেশি বার পোলিং করলে প্রসেসিং- এর গতি বাড়বে না ।
বহুভাষিক ব্যাচ
একই সময়ে একাধিক ভাষায় একাধিক টেক্সট অনুবাদ করুন:
{
"texts": ["Hello", "Goodbye"],
"target_languages": ["es", "fr"],
"source_language": "en"
}
সমাপ্ত ফলাফল তথ্য (_d)
{
"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- Gettext অনুবাদ ফাইল.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"
.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 |
অনুবাদ ব্যর্থ (error_message পরীক্ষা করুন) |
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"},
...
]
}
অনুবাদ মডেল
আমরা অত্যাধুনিক ওপেন সোর্স অনুবাদ মডেল ব্যবহার করি যা আমাদের নিজস্ব জিপিইউ পরিকাঠামোতে চলছে। সকল মডেল বাণিজ্যিকভাবে লাইসেন্সপ্রাপ্ত (আপাচি ২. ০)।
| মডেল | ভাষা | এর জন্য সেরা |
|---|---|---|
| Helsinki-NLP/opus-mt | ৫০+ ভাষা জুটি | সাধারণ ভাষা (EN, ES, FR, DE, IT, PT, RU, ZH, JA, ইত্যাদি) |
| Google MADLAD-400 | ৪০০+ ভাষা | বিরল ভাষা, বিস্তৃত কাভারেজ |
API স্বয়ংক্রিয়ভাবে আপনার ভাষা জোড়ার জন্য সেরা মডেল নির্বাচন করে। আপনি ইচ্ছাকৃতভাবে একটি উল্লেখ করতে পারেন engine পরামিতি:
| ইঞ্জিন | বর্ণনা |
|---|---|
"auto" |
ডিফল্ট। প্রথমে HuggingFace চেষ্টা করে, তারপর MADLAD-400-এ ফিরে যায় |
"huggingface" |
Force HuggingFace/MarianMT (সবচেয়ে দ্রুত, ৫০+ ভাষা) |
"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/% 1 সেকেন্ড | সাবস্ক্রাইব |
| প্রফেসর | 10,000,000 | $29/% 1 সেকেন্ড | সাবস্ক্রাইব |
| ব্যবসা | 40,000,000 | $79/% 1 সেকেন্ড | সাবস্ক্রাইব |
| আকার পরিবর্তন | 125,000,000 | $199/% 1 সেকেন্ড | সাবস্ক্রাইব |
যখন আপনি আপনার সীমা অতিক্রম, আপনি একটি পাবেন 429 Too Many Requests আগামী মাসে অথবা আপনি আপগ্রেড পর্যন্ত প্রতিক্রিয়া।
স্বয়ংক্রিয়ভাবে স্কেলিং ক্লাউড ইনফ্রাস্ট্রাকচার
স্বয়ংক্রিয়ভাবে অনুভূমিকভাবে স্কেলিং সহ বিশেষ এনভিডিএ এ১০০ জিপিইউ ইনস্ট্যান্সে ট্রান্সলেটএপিআই চালিত হয়। যখন চাহিদা বৃদ্ধি পায়, দ্রুত প্রতিক্রিয়া সময় বজায় রাখার জন্য মিনিটের মধ্যে অতিরিক্ত জিপিইউ ইনস্ট্যান্স চালু করা হয়। এর অর্থ আমাদের এপিআই প্রকৃতপক্ষে অসীমিত একযোগে অনুরোধের ব্যবস্থা করতে পারে — একক অনুরোধ থেকে প্রতি মিনিটে হাজার হাজার পর্যন্ত।