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
আপনার API কী নিরাপদে রাখুন! ক্লায়েন্ট-সাইড কোড অথবা পাবলিক রিপোজিটরিতে তাদের প্রকাশ করবেন না।

লেখা অনুবাদ করো

টেক্সটকে একটি নির্দিষ্ট ভাষায় অনুবাদ করো ।

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 প্রসেসিং এর মাধ্যমে । ফলাফল পেতে ব্যাচ এবং পোল জমা দিন ।

সীমাবদ্ধতা: প্রতি ব্যাচে সর্বোচ্চ ৫০০টি টেক্সট, সর্বোচ্চ ৭৫০টি আইটেম (টেক্সট × লক্ষ্য ভাষা) । প্রসেসিং শুরুর ৩০ মিনিট পর কাজের সময়সীমা শেষ হয়ে যায় (কিউ অপেক্ষা করার সময় গণনা করা হয় না) ।
প্রসেসিং সময় ভাষা অনুযায়ী পরিবর্তিত হয়: সাধারণ ভাষা (স্প্যানিশ, ফরাসি, জার্মান, ইত্যাদি) দ্রুত মডেল ব্যবহার করে (প্রতিটি টেক্সটে ~ 0. 1 সেকেন্ড), যখন কম সাধারণ ভাষা আমাদের বড় বহুভাষিক মডেল ব্যবহার করে (প্রতিটি টেক্সটে ~ 1-3সেকেন্ড) । সাধারণ ভাষার জন্য একটি ১০০- টেক্সট ব্যাচ সাধারণত ১০- ৩০ সেকেন্ডে সম্পন্ন হয়, অথবা কম সাধারণ ভাষার জন্য ২- ৫ মিনিট । সর্বোত্তম ফলাফল পেতে প্রতিটি ব্যাচ অনুরোধের জন্য ১টি লক্ষ্য ভাষা প্রেরণ করুন এবং ব্যাচের আকার ৫০ টেক্সটের নিচে রাখুন ।
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)
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"
অনুবাদ করার পূর্বে টেক্সট এক্সট্র্যাক্ট করার জন্য ছবির ফাইলগুলিকে OCR দ্বারা প্রসেস করা হয়। অনুবাদকৃত আউটপুটটি একটি হিসাবে ফিরিয়ে দেওয়া হয় .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 আগামী মাসে অথবা আপনি আপগ্রেড পর্যন্ত প্রতিক্রিয়া।

স্বয়ংক্রিয়ভাবে স্কেলিং ক্লাউড ইনফ্রাস্ট্রাকচার

স্বয়ংক্রিয়ভাবে অনুভূমিকভাবে স্কেলিং সহ বিশেষ এনভিডিএ এ১০০ জিপিইউ ইনস্ট্যান্সে ট্রান্সলেটএপিআই চালিত হয়। যখন চাহিদা বৃদ্ধি পায়, দ্রুত প্রতিক্রিয়া সময় বজায় রাখার জন্য মিনিটের মধ্যে অতিরিক্ত জিপিইউ ইনস্ট্যান্স চালু করা হয়। এর অর্থ আমাদের এপিআই প্রকৃতপক্ষে অসীমিত একযোগে অনুরোধের ব্যবস্থা করতে পারে — একক অনুরোধ থেকে প্রতি মিনিটে হাজার হাজার পর্যন্ত।

এই পাতাটি রেটিং দিন
আপনার রেটিংয়ের জন্য ধন্যবাদ!
/5 ভিত্তি করে রেটিং