API दस्तावेज़

पैराफ़्रेज़, व्याकरण जाँच, सारांश, अनुवाद और प्लेजरिज़्म जाँच, 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 के कोड-ब्लॉक)।

अनुरोध

FieldTypeRequiredNotes
taskstring✓टास्क का नाम; नीचे की टास्क-सूची देखें।
textstring✓इनपुट पाठ, 1–6,000 अक्षर।
langstring✓नतीजे की भाषा: साइट के 56 लोकेल कोड में से एक (hi, en, id, ja, pt-pt, zh-hant…; pt-BR जैसे BCP 47 टैग मैप कर दिए जाते हैं) या auto, यानी "इनपुट वाली ही भाषा"।
modestring—उस टूल के लिए उपलब्ध कोई मोड, जैसे Formal, Akademik, Ringkas, Poin-poin (मोड के नाम रजिस्ट्री के मूल लेबल हैं, इसलिए पेज पर दिखने वाले हिंदी नामों से अलग हैं)। बिना मोड वाले टास्क में यह अनदेखा किया जाता है।
optionsobject—टास्क के विशिष्ट विकल्प: translate के लिए from / to (कोई भी समर्थित भाषा किसी भी दूसरी में; from auto हो सकता है; 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
}

उदाहरण: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"hi","text":"मैं कल पुस्तकालय जाउंगा।"}'

उदाहरण: JavaScript (fetch)

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; वेब खोज प्रदाता केवल तब जब वह कॉन्फ़िगर हो और माँगा गया हो) और समानता का स्कोर देता है। सर्वर से केवल वही छोटे वाक्यांश बाहर जाते हैं।

अनुरोध

FieldTypeRequiredNotes
textstring✓कम से कम 30 शब्द, अधिकतम 6,000 अक्षर।
langstring✓साइट का कोई लोकेल कोड या auto।
optionsobject—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 होते हैं।

{
  "ok": true,
  "score": 0.42,
  "words": 52,
  "matchedWords": 22,
  "matches": [{ "source": "wikipedia", "title": "…", "url": "https://hi.wikipedia.org/wiki/…",
                "matchedWords": 22, "passages": [{ "start": 0, "end": 131, "text": "…" }] }],
  "sourcesSearched": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj"],
  "sourcesSkipped": [],
  "webSearched": false,
  "ms": 2310
}

उदाहरण: curl

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 लौटाता है; साइट पर डिटेक्टर आपके ब्राउज़र में चलता है)।

{
  "ok": true,
  "ai": true,
  "plagiarism": { "enabled": true, "sources": ["wikipedia", "wikisource", "internet-archive-fts", "europepmc", "doaj", "arxiv"], "web": false },
  "aidetect": { "enabled": false, "judge": false }
}

उदाहरण: curl

curl https://adeptwrite.com/api/v1/health

Task list

taskWhat it does
paraphraseपैराफ़्रेज़; मोड: Standar (सामान्य), Formal (औपचारिक), Santai (अनौपचारिक), Akademik (अकादमिक), Kreatif (रचनात्मक), Ringkas (संक्षिप्त), Panjangkan (विस्तृत)।
grammarव्याकरण और वर्तनी सुधार।
toneलहजा बदलना; मोड: Formal (औपचारिक), Kantor (कार्यालयी), Santai (अनौपचारिक)।
rewriteअटपटे या अकड़े वाक्य सुधारना; मोड: Standar, Formal।
resizeवाक्य छोटे या बड़े करना; मोड: Ringkas (संक्षिप्त), Panjangkan (विस्तृत)।
essayबिंदुओं से अनुच्छेद या निबंध बनाना; मोड: Akademik, Kreatif, Panjangkan।
summarizeसारांश; मोड: Poin-poin (मुख्य बिंदु), Paragraf (अनुच्छेद), Satu kalimat (एक वाक्य)।
translateकिन्हीं दो समर्थित भाषाओं के बीच अनुवाद; options.from (या auto) और options.to; मोड: Alami (स्वाभाविक, डिफ़ॉल्ट), Formal (औपचारिक), Santai (अनौपचारिक)।
thesisशोध शीर्षक के विचार और अध्यायों की रूपरेखा।
abstractशोध-सार से संरचित abstract।
captionसोशल मीडिया कैप्शन; options.platform: instagram, tiktok, linkedin।
emailईमेल और पत्र; मोड: Lamaran kerja (नौकरी का आवेदन), Surat resmi (औपचारिक पत्र), Follow-up (फ़ॉलो-अप)।
headlineलेख के शीर्षक और हेडलाइन; मोड: Kreatif (रचनात्मक), Ringkas (संक्षिप्त)।
productउत्पाद विवरण; मोड: Marketplace (मार्केटप्लेस), Toko online (ऑनलाइन स्टोर)।
synonymएक शब्द या वाक्यांश के पर्यायवाची की सूची।
humanizeअकड़े या ढर्रे वाले पाठ को ज़्यादा स्वाभाविक बनाना; मोड: Alami (स्वाभाविक), Pribadi (व्यक्तिगत), Profesional (पेशेवर)।
metaमेटा टाइटल और डिस्क्रिप्शन की तीन जोड़ियाँ; मोड: Artikel (लेख), Produk (उत्पाद), Halaman (कोई भी वेब पेज)।
hashtagहैशटैग की एक पंक्ति; मोड: Instagram, TikTok, LinkedIn, X।
bioप्रोफ़ाइल बायो के तीन रूप; मोड: Instagram, LinkedIn, X, TikTok।
outlineउप-बिंदुओं सहित क्रमांकित रूपरेखा; मोड: Artikel (लेख), Esai (निबंध), Skripsi (शोध प्रबंध), Presentasi (प्रस्तुति)।
sloganदस स्लोगन के विचार; मोड: Merek (ब्रांड), Kampanye (अभियान), Produk (उत्पाद)।
paragraphकिसी विषय से एक अनुच्छेद; मोड: Pembuka (भूमिका), Isi (मुख्य भाग), Penutup (उपसंहार)।
coverletterकवर लेटर का मसौदा; मोड: Fresh graduate (फ़्रेशर), Berpengalaman (अनुभवी), Magang (इंटर्नशिप)।
poemछोटी कविताएँ; मोड: Bebas (मुक्त छंद), Berima (तुकांत), Akrostik (एक्रोस्टिक), Haiku (हाइकु)।

सीमाएँ

पाठ की लंबाई
प्रति अनुरोध अधिकतम 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 फ़ील्ड हमेशा उस मॉडल का नाम बताता है जिसने जवाब दिया।

त्रुटि कोड

स्थितिकोडकब होता है
400invalid_requestअमान्य JSON, कोई ज़रूरी फ़ील्ड ग़ायब, या अज्ञात task या lang।
413too_longtext 6,000 अक्षर से ज़्यादा है।
403forbiddenअनुरोध adeptwrite.com के किसी पेज से नहीं आया।
429rate_limitedप्रति-IP या वैश्विक प्रति-मिनट सीमा पार हो गई। Retry-After में बताए सेकंड तक रुकें।
429quota_exceededAI सुविधाओं की दैनिक सीमा पूरी हो गई। अगले दिन (UTC) फिर कोशिश करें।
502upstreamश्रृंखला का कोई भी मॉडल समय पर जवाब नहीं दे सका।
502empty_outputमॉडलों ने जवाब दिया, पर नतीजा खाली था।
503disabledसंचालक ने सेवा अस्थायी रूप से बंद कर दी है, या (/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 फ़ील्ड बताता है कि किसने दिया।