त्वरित शुरुआत
- साइन इन करें और API कुंजी बनाएँ. इसकी .env एंट्री को उदाहरण के पास मौजूद निजी .env फ़ाइल में कॉपी करें। API अनुवाद में खाते के क्रेडिट इस्तेमाल होते हैं, जिनमें पात्र साइनअप क्रेडिट भी शामिल हैं; वेबसाइट की दैनिक सीमा लागू नहीं होती। कुंजी को कभी कमिट न करें और न ही सार्वजनिक ब्राउज़र कोड में रखें।
- Node.js उदाहरण डाउनलोड करें. Node.js 22 या उसके बाद का संस्करण इस्तेमाल करें; किसी पैकेज की ज़रूरत नहीं है। उसी फ़ोल्डर में input.txt नाम से एक छोटा UTF-8 टेक्स्ट दस्तावेज़ सेव करें। यह उदाहरण अधिकतम 16,000 अक्षरों के लिए है; बड़े दस्तावेज़ों में नीचे दिए गए API के ज़रिए कई सेगमेंट इस्तेमाल होते हैं।
- क्रेडिट खर्च किए बिना कोटेशन देखने के लिए पहला कमांड चलाएँ। इसकी समीक्षा करें, फिर स्पैनिश में अनुवाद करने और translated.txt सेव करने के लिए दूसरा कमांड चलाएँ। ज़रूरत के अनुसार भाषा और पाथ बदलें।
node --env-file=.env translate-text.mjs input.txt Spanish translated.txt
node --env-file=.env translate-text.mjs input.txt Spanish translated.txt --startयह उदाहरण तैयार होने तक बार-बार जाँचता है और मौजूदा आउटपुट को कभी ओवरराइट नहीं करता। इसकी .translation.json चेकपॉइंट फ़ाइल रखें और रुकावट के बाद वही कमांड दोबारा चलाएँ: यह बिना दोबारा शुल्क लिए मौजूदा जॉब और डाउनलोड को पुनः प्राप्त कर लेता है। चेकपॉइंट में दस्तावेज़ का टेक्स्ट या API key नहीं होती। प्रतीक्षा का समय समाप्त होने से प्रोसेसिंग रद्द नहीं होती।
अनुवाद API निकाला गया टेक्स्ट स्वीकार करता है और अनुवादित खंड लौटाता है। वैकल्पिक निजी मूल और पुनर्निर्माण बैकअप, अनुवाद शुरू होने से अधिकतम 24 घंटे तक रिकवरी में मदद करते हैं। तैयार दस्तावेज़ को अपने क्लाइंट में पुनर्निर्मित करें।
या https://document-translator.com/developers/ कॉपी करें और शुरुआत करने में मदद के लिए इसे अपने AI एजेंट को दें।
दस्तावेज़ अनुवाद का वर्कफ़्लो बनाएँ
अपने ऐप्लिकेशन में स्थिर सेगमेंट ID के साथ टेक्स्ट निकालें। नीचे दिखाया गया पेलोड भेजें, फिर हर लौटाई गई ID का उपयोग करके अनुवाद को उसके दस्तावेज़ में वापस जोड़ें।
कोटेशन बनाएँ
POST /api/v1/quotes
Authorization: Bearer doctr_...
Content-Type: application/json
{
"version": "document-ir/7",
"format": "txt",
"fingerprint": "f8c3bf62a9aa3e6fc1619c250e48abe7519373d3edf41be62eb5dc45199af2ef",
"sourceLanguage": "auto",
"targetLanguage": "Spanish",
"segments": [
{
"id": "s0",
"text": "Hello, world."
}
]
}जवाब में कोट ID, स्रोत शब्दों की संख्या, सटीक क्रेडिट लागत और समाप्ति का समय शामिल है। कोट दस मिनट तक मान्य रहते हैं। कोट माँगने से क्रेडिट आरक्षित नहीं होते और न ही दस्तावेज़ का टेक्स्ट सेव होता है।
कोटेशन में डिफ़ॉल्ट रूप से सख्त आउटपुट का उपयोग होता है। आंशिक परिणामों की अनुमति देने के लिए कोटेशन URL में output=best-effort-v1 जोड़ें। तैयार परिणामों में outcome और issues शामिल होते हैं; उपयोग से पहले उनकी जाँच करें। नीति कोटेशन के साथ तय होती है।
POST /api/v1/quotes?output=best-effort-v1अनुवाद शुरू करें
POST /api/v1/translations
Authorization: Bearer doctr_...
Content-Type: application/json
{
"quoteId": "<quote id>",
"idempotencyKey": "my-document-0001",
"payload": {
"version": "document-ir/7",
"format": "txt",
"fingerprint": "f8c3bf62a9aa3e6fc1619c250e48abe7519373d3edf41be62eb5dc45199af2ef",
"sourceLanguage": "auto",
"targetLanguage": "Spanish",
"segments": [
{
"id": "s0",
"text": "Hello, world."
}
]
}
}शुरुआत में मूल कोट किया गया payload फिर से भेजें। टेक्स्ट सेव करने या क्रेडिट आरक्षित करने से पहले सर्वर उसके स्वामी और canonical hash की पुष्टि करता है। JSON ऑब्जेक्ट की कुंजियों का क्रम मायने नहीं रखता; टेक्स्ट, सेगमेंट का क्रम, फ़ॉर्मैट, फ़िंगरप्रिंट या भाषाएँ बदलने पर नया कोटेशन आवश्यक है।
अनुवादित परिणाम पढ़ें
GET /api/v1/translations/JOB_ID/result
Authorization: Bearer doctr_...
{
"version": "document-ir/7",
"jobId": "<job id>",
"fingerprint": "f8c3bf62a9aa3e6fc1619c250e48abe7519373d3edf41be62eb5dc45199af2ef",
"targetLanguage": "Spanish",
"segments": [
{
"id": "s0",
"text": "Hola, mundo."
}
],
"mock": false
}अपनी फ़ाइल को फिर से बनाने के लिए सेगमेंट ID इस्तेमाल करें; नतीजे वाला एंडपॉइंट JSON लौटाता है, तैयार दस्तावेज़ नहीं। खाली जगह, लिंक, शैलियाँ और अन्य गैर-अनुवाद योग्य संरचनाएँ अपने क्लाइंट में बनाए रखें। हर सेगमेंट की एक अलग ID होनी चाहिए, जो 1–48 अक्षरों की हो और उसमें a–z, 0–9, अंडरस्कोर या हाइफ़न इस्तेमाल किए जा सकते हैं। सेगमेंट टेक्स्ट में अधिकतम 16,000 UTF-16 कोड यूनिट हो सकते हैं। फ़िंगरप्रिंट, मूल फ़ाइल के बाइट्स का लोअरकेस SHA-256 हैश है।
वेबसाइट दस्तावेज़ का विश्लेषण और पुनर्निर्माण करती है। API क्लाइंट निकाला गया टेक्स्ट देते हैं और अपनी फ़ाइलें स्वयं दोबारा बनाते हैं। ब्राउज़र OCR छह भाषाओं में स्पष्ट स्कैन का समर्थन करता है; होमपेज के FAQ में देखें। जटिल लेआउट में आगे जारी रहने वाले पेज या पढ़ने योग्य वैकल्पिक रूप का इस्तेमाल हो सकता है।
cURL के साथ एक अनुरोध
ऊपर दिए गए कोटेशन JSON को payload.json के रूप में सेव करें और अपने शेल में DOCUMENT_TRANSLATOR_API_KEY सेट करें। यह कमांड केवल कोटेशन का अनुरोध करता है। शुरू करने के लिए, लौटाई गई quote ID और वही payload लेकर start JSON को translations endpoint पर भेजें।
curl https://document-translator.com/api/v1/quotes \
-H "Authorization: Bearer $DOCUMENT_TRANSLATOR_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @payload.jsonPowerShell में, curl.exe और $env:DOCUMENT_TRANSLATOR_API_KEY का उपयोग करें; ऊपर दिखाए गए बैकस्लैश वाले निरंतरता प्रारूप के बजाय कमांड एक ही पंक्ति में लिखें।
अनुवाद क्रेडिट और API कुंजियाँ
सीमाओं के भीतर हर API दस्तावेज़ के लिए खाते का एक क्रेडिट आरक्षित होता है। सख्त जॉब में शुल्क तभी लगता है जब परिणाम की पुष्टि हो जाए और वह तैयार हो। अधूरे असफल या रद्द किए गए जॉब का आरक्षण छोड़ दिया जाता है। बेस्ट-एफ़र्ट आउटपुट में छोटी कमियों के लिए सहमत क्रेडिट इस्तेमाल हो सकता है, जबकि बड़ी कमियों या गंभीर त्रुटियों पर क्रेडिट छोड़ दिया जाता है। यह मानने के बजाय कि हर तैयार परिणाम का शुल्क लिया गया है, outcome.creditOutcome और outcome.completion देखें।
हर खाते के लिए अधिकतम पाँच सक्रिय API कुंजियाँ बनाएँ। कुंजियाँ केवल एक बार दिखाई जाती हैं, हैश के रूप में संग्रहीत होती हैं और खाते में रद्द की जा सकती हैं। एक सक्रिय कुंजी उस खाते के सशुल्क अनुवादों तक पहुँच सकती है, जिनमें उसी खाते की किसी दूसरी कुंजी से बनाए गए कार्य भी शामिल हैं। कुंजियाँ साइन इन या भुगतान की अनुमति नहीं देतीं।
दोबारा कोशिशें और बीच में रुके अनुरोध
GET /api/v1/translations?requestKey=IDEMPOTENCY_KEY"eId=QUOTE_ID
DELETE /api/v1/translations?requestKey=IDEMPOTENCY_KEY"eId=QUOTE_IDअनिश्चित शुरुआत अनुरोध के बाद उसी quote ID, payload और idempotency key का फिर से उपयोग करें। समान दोबारा कोशिशें बिना कोई अतिरिक्त शुल्क लिए मौजूदा जॉब लौटाती हैं। बदला हुआ payload या किसी दूसरी quote के लिए दोबारा उपयोग की गई key, 409 लौटाती है। जॉब और idempotency का मेटाडेटा समाप्ति के बाद सात दिनों तक रखा जाता है।
जब तक स्रोत टेक्स्ट उपलब्ध है, तब तक विफल हुए ऐसे जॉब को फिर से चलाया जा सकता है जिसे बीच में रोककर बाद में जारी किया जा सके। दोबारा चलाने पर उसका जॉब ID वही रहेगा और पहले से पूरे हुए हिस्सों का फिर उपयोग होगा। प्रत्येक जॉब को अधिकतम तीन बार प्रोसेस किया जा सकता है। अनुवाद दोबारा शुरू किए बिना, डाउनलोड विफल होने पर परिणाम वाले एंडपॉइंट पर फिर कोशिश की जा सकती है।
पोलिंग और डाउनलोड
GET /api/v1/translations/JOB_ID
GET /api/v1/translations?ids=JOB_ID_1,JOB_ID_2
GET /api/v1/translations/JOB_ID/result
PUT /api/v1/translations/JOB_ID/files/txt
GET /api/v1/translations/JOB_ID/files/txt
POST /api/v1/translations/JOB_ID/retry
DELETE /api/v1/translations/JOB_IDबैच स्थिति अनुरोध में अधिकतम 100 ID स्वीकार करता है और केवल अधिकृत, हटाए न गए जॉब वाली { jobs: [...] } सूची लौटाता है। प्रोसेसिंग के दौरान लगभग हर पाँच सेकंड में और कतार में रहने के दौरान हर पंद्रह सेकंड में स्थिति जाँचें। 100 से अधिक जॉब फिर से प्राप्त करते समय बैचों को बारी-बारी से निष्पक्ष रूप से चुनें। छिपे हुए टैब में स्थिति जाँचना रोकें और अंतिम स्थिति या स्थायी प्राधिकरण त्रुटि आने पर बंद कर दें।
स्थिति तैयार होने पर, उसी खाते के प्राधिकरण से नतीजा प्राप्त करें। इसमें स्थानीय स्तर पर पुनर्निर्माण के लिए अनुवादित खंडों की मैपिंग शामिल होती है। नतीजे पूरे होने के बाद 24 घंटे तक उपलब्ध रहते हैं; असफल इनपुट, बनाए जाने के एक घंटे बाद समाप्त हो जाता है। समाप्त नतीजों पर 410 मिलता है। हटाए गए या पहुँच से बाहर जॉब पर 404 मिलता है।
queued → processing → ready
↘ failed / cancelled / expired
{"jobs":[{"id":"<job id>","state":"processing","completedChunks":1,"totalChunks":2}]}तैयार फ़ाइल को उसके बाइनरी बॉडी, Content-Length और उससे मेल खाते Content-Type के साथ PUT द्वारा सेव करें। समर्थित एक्सटेंशन हैं: docx, pptx, xlsx, pdf, txt और md। हर फ़ॉर्मैट के लिए एक फ़ाइल सेव की जा सकती है और आउटपुट की सीमा 50 MB है। सफल सेव को दोहराने पर मौजूदा फ़ाइल बनी रहती है। GET से सेव की गई फ़ाइल डाउनलोड करें; जॉब की स्थिति में savedFormats उपलब्ध फ़ॉर्मैट दिखाता है। सेव और डाउनलोड पर जॉब के समान स्वामित्व-जाँच लागू होती है, इनके लिए अतिरिक्त क्रेडिट नहीं लगते और 24 घंटे की समय-सीमा नहीं बढ़ती।
PUT /api/v1/translations/{id}/files/docx
X-Download-Kind: reading-copy
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
Content-Length: {bytes}
{binary DOCX body}
GET /api/v1/translations/{id}
{"savedFormats":["docx"],"savedDownloads":[{"format":"docx","kind":"reading-copy"}]}DELETE अधूरे काम को रद्द करता है या उपलब्ध टेक्स्ट और सहेजी गई फ़ाइलें हटाता है। पूरा हुआ परिणाम हटाने से क्रेडिट वापस नहीं मिलते और न ही डाउनलोड की अवधि बढ़ती है। इस रिलीज़ में काम पूरा होने के वेबहुक उपलब्ध नहीं हैं।
PUT /api/v1/translations/{id}/manifest
Content-Type: application/json
Content-Length: {bytes, maximum 2 MiB}
{"version":1,"parserVersion":"document-ir/7","fingerprint":"{original SHA-256}","ocr":[]}
PUT /api/v1/translations/{id}/source
Content-Type: application/octet-stream
Content-Length: {bytes, maximum 25 MiB}
X-Parser-Version: document-ir/7
X-Source-SHA256: {original SHA-256}
{unchanged original bytes}
GET /api/v1/translations/{id}
// sourceBackup is available only after both saves
GET /api/v1/translations/{id}/manifest
GET /api/v1/translations/{id}/sourceखाते की शेष राशि और इतिहास
GET /api/v1/translations?before=NEXT_CURSOR&limit=5
GET /api/v1/translations?active=1&before=NEXT_CURSOR
GET /api/account/balanceइतिहास केवल मौजूदा खाते के लिए उपलब्ध है और लौटाए गए पेजिनेशन कर्सर का उपयोग करता है। बैलेंस एंडपॉइंट ब्राउज़र खाते के सत्र का उपयोग करता है और साइन-इन तथा बैलेंस की न्यूनतम जानकारी लौटाता है। Checkout लंबित होने पर, इसे हर पाँच सेकंड में अधिकतम दस बार जाँचें, पेज छिपा होने पर रोकें और क्रेडिट मिलने या खाते से साइन आउट होने पर बंद कर दें।
n8n, Make और Zapier
गुप्त Bearer क्रेडेंशियल के साथ HTTP अनुरोध वाला चरण इस्तेमाल करें। पहले टेक्स्ट निकालें, JSON पेलोड को कोट एंडपॉइंट पर POST करें, फिर कोट ID, पेलोड और 16–80 अक्षरों वाली स्थिर idempotency key को translations एंडपॉइंट पर POST करें। विलंब जोड़ें और तैयार होने तक स्थिति के लिए GET करें, फिर नतीजा प्राप्त करके अनुवादित टेक्स्ट को दोबारा बनाएँ या सेव करें। कोट ID और रीट्राई कुंजी को अपने वर्कफ़्लो रिकॉर्ड के साथ सेव करें। किसी विशेष कनेक्टर या multipart अपलोड की ज़रूरत नहीं है।
सीमाएँ और त्रुटियाँ
- हर दस्तावेज़ में अधिकतम 50,000 स्रोत शब्द, निकाले गए 400,000 अक्षर और 12,000 टेक्स्ट सेगमेंट हो सकते हैं। ब्राउज़र में मूल फ़ाइलों की सीमा 25 MB, PDF की 300 पृष्ठ और PowerPoint फ़ाइलों की 300 स्लाइड है। ये स्रोत की सीमाएँ हैं और अनुवाद शुरू होने से पहले जाँची जाती हैं।
- हर खाते में अधिकतम 100 दस्तावेज़ कतार में या प्रोसेस हो सकते हैं। API कुंजियों के लिए प्रति मिनट 120 कोट और प्रति खाते हर दस सेकंड में पाँच नए अनुरोध या रीट्राई की सीमा है। 429 जवाबों में Retry-After का पालन करें और अस्थायी विफलताओं के लिए सीमित बैकऑफ़ का उपयोग करें; बार-बार स्थिति जाँचने से प्रोसेसिंग तेज़ नहीं होती।
- सख़्त आउटपुट में शुल्क लेने से पहले छूटे हुए, डुप्लिकेट या गलत फ़ॉर्मैट वाले अनूदित अंश अस्वीकार कर दिए जाते हैं। सर्वोत्तम-प्रयास आउटपुट में सत्यापित अनुवाद रखे जाते हैं और जिन अनुभागों का समाधान नहीं हुआ है, उनमें मूल टेक्स्ट बना रह सकता है; परिणाम और समस्याएँ इसकी जानकारी देते हैं। दस्तावेज़ की सामग्री में कोई वॉटरमार्क या सेवा का श्रेय नहीं जोड़ा जाता।
त्रुटियों में एक त्रुटि संदेश और कोड शामिल होते हैं। 400 का अर्थ है अमान्य इनपुट, 401 का अर्थ है अमान्य प्राधिकरण, 402 का अर्थ है अपर्याप्त क्रेडिट, 404 का अर्थ है अनुपलब्ध जॉब, 409 का अर्थ है परस्पर विरोधी कोट या स्थिति, 410 का अर्थ है समय-सीमा समाप्त होना, 429 का अर्थ है दर या क्षमता की सीमा, और 503 का अर्थ है अनुपलब्ध सेवा।
अनुवाद शुरू होने के बाद, हम आपके मूल दस्तावेज़ और पुनर्निर्माण डेटा का निजी बैकअप अधिकतम 24 घंटे तक रखते हैं। पूरा मूल-फ़ॉर्मैट डाउनलोड सहेजे जाने या आपके अनुवाद हटाने के बाद बैकअप इससे पहले भी हटा दिए जाते हैं। फ़ाइलनाम और PDF पासवर्ड कभी अपलोड नहीं किए जाते। अनुवाद प्रदाता को केवल निकाला गया टेक्स्ट भेजा जाता है। OCR आपके ब्राउज़र में चलता है। गोपनीयता विवरण