मुख्य कंटेंट तक स्किप करें

दस्तावेज़ अनुवाद API

अपनी API कुंजी से समर्थित दस्तावेज़ फ़ाइलों का एसिंक्रोनस अनुवाद करें।

कार्यप्रवाह​

  1. POST /v1/translation/document-translation/api का उपयोग करके दस्तावेज़ अपलोड करें।
  2. लौटाया गया translationId सहेजें।
  3. GET /v1/translation/document-translation-status/{translationId} से स्थिति पोल करें।
  4. स्थिति completed होने पर अनुवादित फ़ाइल डाउनलोड करने के लिए data.documentUrl का उपयोग करें।

1) दस्तावेज़ अपलोड करें​

एंडपॉइंट​

POST https://api.gpttranslator.co/v1/translation/document-translation/api

प्रमाणीकरण​

x-api-key: YOUR_API_KEY

कंटेंट टाइप​

multipart/form-data का उपयोग करें और फ़ाइल को file फ़ील्ड में भेजें।

फ़ॉर्म फ़ील्ड​

आवश्यक:

  • file फ़ाइल
  • sourceLang स्ट्रिंग
  • targetLang स्ट्रिंग
  • model स्ट्रिंग

वैकल्पिक:

  • domain स्ट्रिंग
  • writingStyle स्ट्रिंग
  • tone स्ट्रिंग
  • customPrompt स्ट्रिंग

भाषा कोड समर्थित भाषाएँ में दिए गए हैं। समर्थित मॉडल समर्थित मॉडल में दिए गए हैं। समर्थित फ़ाइल प्रकार समर्थित दस्तावेज़ प्रकार में दिए गए हैं।

सत्यापन नियम​

cURL उदाहरण​

curl --location 'https://api.gpttranslator.co/v1/translation/document-translation/api' \
--header 'x-api-key: YOUR_API_KEY' \
--form 'file=@"/absolute/path/sample.docx"' \
--form 'sourceLang="en"' \
--form 'targetLang="fr"' \
--form 'model="gpt-4.1-mini-2025-04-14"' \
--form 'tone="professional"'

JavaScript उदाहरण​

const apiKey = "YOUR_API_KEY";
const fileInput = document.querySelector("#fileInput");

const formData = new FormData();
formData.append("file", fileInput.files[0]);
formData.append("sourceLang", "en");
formData.append("targetLang", "fr");
formData.append("model", "gpt-4.1-mini-2025-04-14");
formData.append("tone", "professional");

const uploadRes = await fetch(
"https://api.gpttranslator.co/v1/translation/document-translation/api",
{
method: "POST",
headers: {
"x-api-key": apiKey,
},
body: formData,
},
);

const uploadData = await uploadRes.json();
const translationId = uploadData?.data?.translationId;

if (!translationId) {
console.error("Upload failed:", uploadData);
}

Python उदाहरण​

import requests

api_key = "YOUR_API_KEY"
url = "https://api.gpttranslator.co/v1/translation/document-translation/api"

headers = {
"x-api-key": api_key
}

data = {
"sourceLang": "en",
"targetLang": "fr",
"model": "gpt-4.1-mini-2025-04-14",
"tone": "professional"
}

with open("/absolute/path/sample.docx", "rb") as f:
files = {
"file": ("sample.docx", f)
}
response = requests.post(url, headers=headers, data=data, files=files)

print(response.status_code)
print(response.json())

सफल प्रतिक्रिया 201​

{
"message": "Document translation added successfully",
"data": {
"translationId": "12345"
},
"error": null,
"statusCode": 201
}

प्रतिक्रिया के प्रकार​

मिडलवेयर से अनुरोध सत्यापन त्रुटि (400):

{
"error": "Invalid model type. Please enter a valid model type e.g. ..."
}

कोई फ़ाइल अपलोड नहीं हुई (400):

{
"error": "No file uploaded. Please upload a file for translation.",
"statusCode": 400,
"data": null,
"message": "No file uploaded. Please upload a file for translation."
}

अमान्य फ़ाइल प्रकार (400):

{
"error": "Invalid file type. Please upload one of: docx, xlsx, pdf, pptx, srt, vtt, xml, json, yaml, yml, csv, txt, md, html, eml.",
"statusCode": 400,
"data": null,
"message": "Invalid file type. Please upload one of: docx, xlsx, pdf, pptx, srt, vtt, xml, json, yaml, yml, csv, txt, md, html, eml."
}

अमान्य API कुंजी हेडर (401):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 401,
"data": null
}

अमान्य API कुंजी/उपयोगकर्ता/संगठन सेटअप (400):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 400,
"data": null
}
{
"message": "User not found or user is not active",
"error": "User not found or user is not active",
"statusCode": 400,
"data": null
}
{
"message": "Organization Id not found for the user",
"error": "Organization Id not found for the user",
"statusCode": 400,
"data": null
}

सर्वर त्रुटि (500):

{
"error": "Internal server error",
"message": "An error occurred while processing the document translation request. Please try again later.",
"data": null,
"statusCode": 500
}

2) अनुवाद की स्थिति जाँचें​

एंडपॉइंट​

GET https://api.gpttranslator.co/v1/translation/document-translation-status/{translationId}

प्रमाणीकरण​

x-api-key: YOUR_API_KEY

cURL उदाहरण​

curl --location 'https://api.gpttranslator.co/v1/translation/document-translation-status/12345' \
--header 'x-api-key: YOUR_API_KEY'

JavaScript उदाहरण​

const apiKey = "YOUR_API_KEY";
const translationId = "12345";

const statusRes = await fetch(
`https://api.gpttranslator.co/v1/translation/document-translation-status/${translationId}`,
{
headers: {
"x-api-key": apiKey,
},
},
);

const statusData = await statusRes.json();
console.log(statusData);

Python उदाहरण​

import requests

api_key = "YOUR_API_KEY"
translation_id = "12345"
url = f"https://api.gpttranslator.co/v1/translation/document-translation-status/{translation_id}"

response = requests.get(url, headers={"x-api-key": api_key})

print(response.status_code)
print(response.json())

प्रतिक्रिया प्रारूप​

{
"message": "Translation status fetched successfully",
"translationStatus": "completed",
"data": {
"documentUrl": "https://api.gpttranslator.co/v1/translation/download-document/65f0d3f6f0a1c91234567890"
},
"error": null,
"statusCode": 200
}

स्थिति मान​

  • waiting: जॉब कतार में है।
  • active: अनुवाद जारी है।
  • completed: अनुवाद पूरा हो गया है और data.documentUrl उपलब्ध है।
  • failed: अनुवाद विफल रहा। error देखें।

प्रतिक्रिया के प्रकार​

कतार id अनुपस्थित (400):

{
"error": "Queue ID is required",
"message": "Queue ID is required to fetch translation status",
"data": null,
"statusCode": 400
}

अमान्य API कुंजी हेडर (401):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 401,
"data": null
}

अमान्य API कुंजी/उपयोगकर्ता/संगठन सेटअप (400):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 400,
"data": null
}

जॉब नहीं मिला (404):

{
"error": "Translation job not found",
"message": "The requested translation job does not exist.",
"data": null,
"statusCode": 404
}

उपयोगकर्ता संदर्भ अनुपस्थित होने पर अनधिकृत (401):

{
"error": "Unauthorized",
"message": "You are not authorized to access this resource.",
"data": null,
"statusCode": 401
}

कतार तक अनधिकृत पहुँच (401):

{
"error": "Unauthorized access to translation status",
"message": "You do not have permission to access the status of this translation job.",
"data": null,
"statusCode": 401
}

कतार परिणाम से आई व्यावसायिक नियम विफलता (402 उदाहरण):

{
"message": "Translation status fetched successfully",
"translationStatus": "failed",
"data": null,
"error": "only subscribed users are allowed to use this model",
"statusCode": 402
}

सर्वर त्रुटि (500):

{
"error": "Internal server error",
"message": "An error occurred while fetching the translation status. Please try again later.",
"data": null,
"statusCode": 500
}

3) अनुवादित दस्तावेज़ डाउनलोड करें​

स्थिति completed होने पर, स्थिति प्रतिक्रिया से documentUrl को कॉल करें।

एंडपॉइंट​

GET https://api.gpttranslator.co/v1/translation/download-document/{translationId}

वैकल्पिक क्वेरी:

  • fileType=translated (डिफ़ॉल्ट)
  • fileType=source

cURL उदाहरण​

curl --location 'https://api.gpttranslator.co/v1/translation/download-document/65f0d3f6f0a1c91234567890' \
--header 'x-api-key: YOUR_API_KEY' \
--output translated-file

JavaScript उदाहरण​

const apiKey = "YOUR_API_KEY";
const translationId = "65f0d3f6f0a1c91234567890";

const downloadRes = await fetch(
`https://api.gpttranslator.co/v1/translation/download-document/${translationId}`,
{
headers: {
"x-api-key": apiKey,
},
},
);

if (!downloadRes.ok) {
const err = await downloadRes.json();
console.error("Download failed:", err);
} else {
const blob = await downloadRes.blob();
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "translated-document";
a.click();
URL.revokeObjectURL(url);
}

Python उदाहरण​

import requests

api_key = "YOUR_API_KEY"
translation_id = "65f0d3f6f0a1c91234567890"
url = f"https://api.gpttranslator.co/v1/translation/download-document/{translation_id}"

response = requests.get(url, headers={"x-api-key": api_key}, stream=True)

if response.status_code == 200:
with open("translated-document", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
else:
print(response.status_code)
try:
print(response.json())
except Exception:
print("Download failed")

प्रतिक्रिया के प्रकार​

सफल (200):

  • बाइनरी फ़ाइल सामग्री लौटाता है।
  • हेडर में शामिल हैं:
    • Content-Type (अनुवादित फ़ाइल के प्रकार के अनुसार)
    • Content-Disposition: attachment; filename="..."

अमान्य API कुंजी हेडर (401):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 401,
"data": null
}

अमान्य API कुंजी/उपयोगकर्ता/संगठन सेटअप (400):

{
"message": "Invalid api key",
"error": "Invalid api key",
"statusCode": 400,
"data": null
}

डाउनलोड त्रुटियाँ:

{ "error": "Invalid translation ID" }
{ "error": "Translation not found or you do not have permission to access it" }
{ "error": "Translation is currently active. Please wait for completion." }
{ "error": "Translated file not available" }

सर्वोत्तम अभ्यास​

translationStatus के completed या failed होने तक हर 2 से 5 सेकंड में स्थिति पोल करें।