पैराफ़्रेज़, व्याकरण जाँच, सारांश, अनुवाद और प्लेजरिज़्म जाँच, 56 भाषाओं में। सरल REST, Cloudflare के एज से परोसी जाती है।
Same-origin
API फ़िलहाल केवल adeptwrite.com के अपने अनुरोध स्वीकार करती है (कोई CORS हेडर नहीं)। कुंजी के साथ बाहरी पहुँच Pro प्लान के साथ प्रस्तावित है। ये दस्तावेज़ पहले ही प्रकाशित किए गए हैं ताकि अनुबंध खुला रहे और आप तैयारी कर सकें।
सारांश
AdeptWrite की v1 API में तीन चालू एंडपॉइंट हैं: /api/v1/run (task, mode, lang और 6,000 अक्षर तक का text भेजें, सादे पाठ का नतीजा पाएँ), /api/v1/plagiarism (खुले स्रोतों से मिलान) और /api/v1/health (सेवा की स्थिति)। पाठ कभी सहेजा या लॉग नहीं होता।
बुनियादी बातें
बेस URL:https://adeptwrite.com/api/v1
फ़ॉर्मैट: अनुरोध और प्रतिक्रिया JSON में होते हैं (Content-Type: application/json, UTF-8)। देवनागरी पाठ सीधे UTF-8 में भेजें।
प्रमाणीकरण: अभी नहीं; अनुरोध adeptwrite.com के पेजों से आने चाहिए (same-origin)। API कुंजियाँ Pro के साथ आएँगी।
गोपनीयता:text फ़ील्ड कभी सहेजा या लॉग नहीं किया जाता; प्रतिक्रियाओं में Cache-Control: no-store रहता है।
संस्करण:/v1/ पथ में असंगत बदलाव नहीं होंगे; तोड़ने वाले बदलाव /v2/ में आएँगे।
POST/api/v1/run
पाठ पर एक AI टास्क चलाता है और नतीजा सादे पाठ के रूप में लौटाता है (न भूमिका, न Markdown के कोड-ब्लॉक)।
अनुरोध
Field
Type
Required
Notes
task
string
✓
टास्क का नाम; नीचे की टास्क-सूची देखें।
text
string
✓
इनपुट पाठ, 1–6,000 अक्षर।
lang
string
✓
नतीजे की भाषा: साइट के 56 लोकेल कोड में से एक (hi, en, id, ja, pt-pt, zh-hant…; pt-BR जैसे BCP 47 टैग मैप कर दिए जाते हैं) या auto, यानी "इनपुट वाली ही भाषा"।
mode
string
—
उस टूल के लिए उपलब्ध कोई मोड, जैसे Formal, Akademik, Ringkas, Poin-poin (मोड के नाम रजिस्ट्री के मूल लेबल हैं, इसलिए पेज पर दिखने वाले हिंदी नामों से अलग हैं)। बिना मोड वाले टास्क में यह अनदेखा किया जाता है।
options
object
—
टास्क के विशिष्ट विकल्प: translate के लिए from / to (कोई भी समर्थित भाषा किसी भी दूसरी में; fromauto हो सकता है; sr-Cyrl सर्बियाई को सिरिलिक में माँगता है), caption के लिए platform (instagram / tiktok / linkedin), और bio, coverletter तथा meta के लिए वैकल्पिक लेबल वाले fields। बाकी कुंजियाँ अनदेखी की जाती हैं।
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "hi",
"text": "विद्यार्थियों के लिए अच्छा लेखन बहुत ज़रूरी है।",
"options": {}
}
प्रतिक्रिया
स्टेटस 200, जिसमें ok: true, नतीजा output में, असल में जवाब देने वाला मॉडल model में (वैकल्पिक मॉडल के आने पर यह अलग होता है) और प्रोसेसिंग का समय मिलीसेकंड में होता है। अगर उत्तर अपनी लंबाई-सीमा या समय-सीमा पर कट गया हो, तो truncated: true जोड़ा जाता है।
{
"ok": true,
"output": "विद्यार्थियों के लिए उत्तम लेखन-कौशल अत्यंत आवश्यक है।",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
const res = await fetch('/api/v1/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ task: 'summarize', mode: 'Poin-poin', lang: 'hi', text }),
});
const data = await res.json();
if (!data.ok) throw new Error(data.error.code + ': ' + data.error.message);
console.log(data.output);
POST/api/v1/plagiarism
पाठ से 4–8 विशिष्ट वाक्यांश चुनता है, पाठ की भाषा में खुले स्रोत खोजता है (Wikipedia, Wikisource, Internet Archive का पूर्ण पाठ, Europe PMC, DOAJ, arXiv; वेब खोज प्रदाता केवल तब जब वह कॉन्फ़िगर हो और माँगा गया हो) और समानता का स्कोर देता है। सर्वर से केवल वही छोटे वाक्यांश बाहर जाते हैं।
अनुरोध
Field
Type
Required
Notes
text
string
✓
कम से कम 30 शब्द, अधिकतम 6,000 अक्षर।
lang
string
✓
साइट का कोई लोकेल कोड या auto।
options
object
—
web: true तब वेब खोज प्रदाता को भी खंगालता है जब संचालक ने कोई प्रदाता कॉन्फ़िगर किया हो; प्रतिक्रिया का webSearched बताता है कि उसने सचमुच जवाब दिया या नहीं।
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json
{ "text": "…कम से कम 30 शब्द…", "lang": "hi", "options": { "web": false } }
प्रतिक्रिया
स्टेटस 200, जिसमें score (मिले शब्द ÷ शब्द, 0–1), हर स्रोत के हिसाब से matches और रेखांकित passages (आपके पाठ में अक्षर-ऑफ़सेट), sourcesSearched (ठीक वे स्रोत जिनके उत्तर नतीजे में शामिल हैं), कारण सहित sourcesSkipped, और webSearched होते हैं।
curl -X POST https://adeptwrite.com/api/v1/plagiarism \
-H "Content-Type: application/json" \
-d '{"lang":"hi","text":"…कम से कम 30 शब्द…"}'
GET/api/v1/health
बताता है कि कौन-सी सेवाएँ चालू हैं। इसमें कोई बॉडी नहीं जाती और यह कोटे में नहीं गिना जाता।
प्रतिक्रिया
स्टेटस 200। AI की मास्टर स्विच बंद होने पर ai false रहता है; plagiarism उन स्रोतों की सूची देता है जिन्हें चेकर खंगाल सकता है; aidetect AI डिटेक्टर के सर्वर-पक्ष के गहरे विश्लेषण का ब्योरा देता है, जो अभी तैनात नहीं है (POST /api/v1/aidetect अभी 503 disabled लौटाता है; साइट पर डिटेक्टर आपके ब्राउज़र में चलता है)।
प्रति अनुरोध अधिकतम 6,000 अक्षर (इससे ऊपर 413 too_long)।
प्रति IP पता
प्रति मिनट 30 अनुरोध।
वैश्विक
पूरी सेवा में प्रति मिनट 100 अनुरोध, साथ में AI सुविधाओं की दैनिक सीमा।
प्लेजरिज़्म
प्रति IP प्रति मिनट 5 जाँच और पूरी सेवा में प्रति मिनट 60; कम से कम 30 शब्द।
आउटपुट
हर टास्क का अपना लंबाई-बजट, कभी 2,048 टोकन से ज़्यादा नहीं; कटे हुए उत्तर में truncated: true रहता है।
मॉडल
भाषा के अनुसार चुना जाता है: अंग्रेज़ी और इंडोनेशियाई @cf/aisingapore/gemma-sea-lion-v4-27b-it पर चलती हैं, बाकी हर भाषा @cf/qwen/qwen3-30b-a3b-fp8 पर। मॉडल के व्यस्त, दर-सीमित, धीमे या विफल होने पर अनुरोध श्रृंखला के अगले मॉडल पर चला जाता है (Qwen3-30B, फिर @cf/google/gemma-4-26b-a4b-it, फिर @cf/meta/llama-3.3-70b-instruct-fp8-fast)। model फ़ील्ड हमेशा उस मॉडल का नाम बताता है जिसने जवाब दिया।
त्रुटि कोड
स्थिति
कोड
कब होता है
400
invalid_request
अमान्य JSON, कोई ज़रूरी फ़ील्ड ग़ायब, या अज्ञात task या lang।
413
too_long
text 6,000 अक्षर से ज़्यादा है।
403
forbidden
अनुरोध adeptwrite.com के किसी पेज से नहीं आया।
429
rate_limited
प्रति-IP या वैश्विक प्रति-मिनट सीमा पार हो गई। Retry-After में बताए सेकंड तक रुकें।
429
quota_exceeded
AI सुविधाओं की दैनिक सीमा पूरी हो गई। अगले दिन (UTC) फिर कोशिश करें।
502
upstream
श्रृंखला का कोई भी मॉडल समय पर जवाब नहीं दे सका।
502
empty_output
मॉडलों ने जवाब दिया, पर नतीजा खाली था।
503
disabled
संचालक ने सेवा अस्थायी रूप से बंद कर दी है, या (/api/v1/aidetect के लिए) वह अभी तैनात नहीं है।
त्रुटि का फ़ॉर्मैट
हर त्रुटि उसी स्टेटस कोड के साथ और एक ही ढाँचे के JSON में लौटती है:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
पहले ok जाँचें, फिर प्रोग्राम से निपटने के लिए error.code पढ़ें; error.message उपयोगकर्ताओं को दिखाना सुरक्षित है (वह अंग्रेज़ी में आता है)।
सुझाई गई पद्धति
पूरा दस्तावेज़ एक साथ भेजने के बजाय पाठ हिस्सों में (जैसे अनुच्छेद-दर-अनुच्छेद) भेजें; नतीजे जल्दी आते हैं और जाँचने में आसान रहते हैं।
429 को तुरंत दोबारा आज़माने के बजाय बढ़ते अंतराल (exponential back-off) से संभालें।
जो निजी या गोपनीय डेटा ज़रूरी न हो, उसे न भेजें; हम उसे सहेजते नहीं, फिर भी न्यूनतम डेटा का सिद्धांत लागू रहता है।
AI का नतीजा ग़लत हो सकता है; उसे जाँचने योग्य सुझाव के रूप में दिखाएँ, अंतिम सत्य के रूप में नहीं।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं API को अपने ऐप या डोमेन से कॉल कर सकता हूँ?
अभी नहीं। Worker फ़िलहाल कोई CORS हेडर नहीं भेजता और केवल adeptwrite.com के पेजों की सेवा करता है। कुंजी के साथ बाहरी पहुँच Pro प्लान के साथ प्रस्तावित है; उपलब्ध होने पर ये दस्तावेज़ अद्यतन होंगे।
क्या API को भेजा गया पाठ सहेजा जाता है?
नहीं। पाठ उत्तर बनाने के लिए मॉडल को भेजा जाता है और फिर त्याग दिया जाता है। लॉग में केवल मेटाडेटा (स्टेटस कोड, टास्क, अवधि) रहता है। पूरी जानकारी के लिए गोपनीयता नीति देखें।
आउटपुट संरचित JSON के बजाय सादा पाठ क्यों है?
हर टास्क बिना भूमिका और Markdown कोड-ब्लॉक के एक तैयार पाठ देता है, ताकि उसे सीधे एडिटर में दिखाया जा सके। अतिरिक्त संरचना (जैसे बदलावों की सूची) v1 को बदले बिना बाद के संस्करण के लिए प्रस्तावित है।
API की कीमत क्या है?
adeptwrite.com से यह मुफ़्त है, प्रति IP प्रति मिनट 30 AI अनुरोधों की सीमा के साथ। बाहरी पहुँच की कीमतें Pro प्लान के साथ घोषित होंगी; तब तक कुछ नहीं लगता।
मेरे अनुरोध का जवाब कौन-सा मॉडल देता है?
यह भाषा पर निर्भर है: अंग्रेज़ी और इंडोनेशियाई SEA-LION पर जाती हैं, बाकी भाषाएँ, हिंदी सहित, Qwen3-30B पर। वह मॉडल व्यस्त हो या विफल हो जाए, तो श्रृंखला का अगला मॉडल जवाब देता है, और प्रतिक्रिया का model फ़ील्ड बताता है कि किसने दिया।