API دستاویزات

اردو سمیت 56 زبانوں میں پیرا فریزنگ، گرامر کی جانچ، خلاصہ، ترجمہ اور سرقہ کی جانچ۔ سادہ REST، جو Cloudflare کے ایج سے چلتی ہے۔

صرف اسی ڈومین سے
API فی الحال صرف adeptwrite.com کے اپنے صفحات سے آنے والی درخواستیں قبول کرتی ہے (CORS ہیڈر نہیں ہیں)۔ بیرونی رسائی API کلیدوں کے ساتھ پرو پلان کے ساتھ منصوبے میں ہے۔ یہ دستاویزات پہلے سے اس لیے شائع کی گئی ہیں کہ معاہدہ کھلا رہے اور آپ تیاری کر سکیں۔
خلاصہ

AdeptWrite کی v1 API میں تین فعال اینڈ پوائنٹس ہیں۔ POST /api/v1/run میں task، mode، lang اور text (زیادہ سے زیادہ 6,000 حروف) کا JSON بھیجا جاتا ہے اور Cloudflare Workers AI ماڈل کا سادہ متن نتیجہ ملتا ہے؛ POST /api/v1/plagiarism متن کو کھلے ذرائع سے ملا کر تلاش شدہ ذرائع بتاتا ہے؛ GET /api/v1/health سروس کی حالت بتاتا ہے۔ متن نہ محفوظ ہوتا ہے نہ لاگ، اور اے آئی درخواستیں 30 فی منٹ فی آئی پی ہیں۔

بنیادی باتیں

  • بنیادی پتہ: https://adeptwrite.com/api/v1
  • فارمیٹ: درخواستیں اور جوابات JSON میں ہیں (Content-Type: application/json، UTF-8)۔
  • تصدیق: ابھی نہیں؛ درخواستیں adeptwrite.com کے صفحات (ایک ہی ڈومین) سے آنی چاہئیں۔ API کلیدیں پرو کے ساتھ آئیں گی۔
  • رازداری: text فیلڈ نہ محفوظ ہوتا ہے نہ لاگ؛ جوابات میں Cache-Control: no-store ہوتا ہے۔
  • ورژن: /v1/ کا راستہ غیر موافق طریقے سے نہیں بدلے گا؛ بڑی تبدیلیاں /v2/ کے تحت آئیں گی۔

اردو متن بھیجتے وقت lang میں ur دیں، یا auto رکھیں تاکہ نتیجہ ان پٹ کی زبان ہی میں آئے۔

POST/api/v1/run

ایک متن پر ایک اے آئی کام چلاتا ہے اور نتیجہ سادہ متن کی صورت میں لوٹاتا ہے (کوئی تمہید نہیں، Markdown کے بلاک نہیں)۔

درخواست

FieldTypeRequiredNotes
taskstring✓کام کا نام؛ نیچے کاموں کی فہرست دیکھیں۔
textstring✓ان پٹ متن، 1 تا 6,000 حروف۔
langstring✓نتیجے کی زبان: سائٹ کے 56 لوکیل کوڈ میں سے ایک (ur، 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": "ur",
  "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":"ur","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: 'ur', 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": "ur", "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://ur.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":"ur","text":"…کم از کم 30 الفاظ…"}'

GET/api/v1/health

بتاتا ہے کہ کون سی سروسز چل رہی ہیں۔ اس میں کوئی باڈی نہیں ہوتی اور یہ کوٹے میں شمار نہیں ہوتا۔

جواب

اسٹیٹس 200۔ جب تک اے آئی کا کِل سوئچ آن ہو، ai غلط ہوتا ہے؛ plagiarism ان ذرائع کی فہرست دیتا ہے جن میں جانچ ممکن ہے؛ aidetect اے آئی ڈیٹیکٹر کے سرور والے گہرے تجزیے کی حالت بتاتا ہے، جو ابھی تعینات نہیں ہوا (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تحقیق کے خلاصے سے منظم ایبسٹریکٹ۔
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، YouTube۔
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)۔
فی آئی پی ایڈریس
30 درخواستیں فی منٹ۔
مجموعی
پوری سروس کے لیے 100 درخواستیں فی منٹ، اور اے آئی سہولیات کے لیے روزانہ کی ایک حد۔
سرقہ کی جانچ
فی آئی پی 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فی آئی پی یا مجموعی فی منٹ کی حد پار ہو گئی۔ Retry-After میں دیے گئے سیکنڈ انتظار کریں۔
429quota_exceededاے آئی سہولیات کی روزانہ حد ختم ہو گئی۔ اگلے دن (UTC) دوبارہ کوشش کریں۔
502upstreamزنجیر کا کوئی بھی ماڈل وقت پر جواب نہ دے سکا۔
502empty_outputماڈلز نے جواب تو دیا مگر نتیجہ خالی تھا۔
503disabledآپریٹر نے سروس عارضی طور پر بند کر دی ہے، یا (/api/v1/aidetect کے لیے) وہ ابھی تعینات نہیں ہوئی۔

غلطی کا فارمیٹ

ہر غلطی JSON کی صورت میں متعلقہ HTTP اسٹیٹس کوڈ کے ساتھ ایک ہی ساخت میں لوٹتی ہے:

{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }

پہلے ok دیکھیں، پھر پروگرام کے ذریعے سنبھالنے کے لیے error.code پڑھیں؛ error.message صارفین کو دکھانا محفوظ ہے۔

تجویز کردہ طریقہ

  • متن حصوں میں بھیجیں (مثلاً فی پیراگراف)، ایک طویل دستاویز کے بجائے؛ نتیجہ جلد آتا ہے اور جانچنا آسان ہوتا ہے۔
  • 429 کو فوری دوبارہ کوشش کے بجائے بتدریج بڑھتے وقفے (exponential back-off) سے سنبھالیں۔
  • غیر ضروری ذاتی یا رازدارانہ ڈیٹا نہ بھیجیں؛ ہم اسے محفوظ نہیں کرتے، پھر بھی کم سے کم ڈیٹا بھیجنے کا اصول لاگو رہتا ہے۔
  • اے آئی کا نتیجہ غلط ہو سکتا ہے؛ اسے حتمی سچائی کے بجائے جانچ کے لیے ایک تجویز کے طور پر پیش کریں۔

اکثر پوچھے جانے والے سوالات

کیا میں API اپنی ایپ یا ڈومین سے استعمال کر سکتا ہوں؟

ابھی نہیں۔ ورکر فی الحال CORS ہیڈر نہیں بھیجتا اور صرف adeptwrite.com کے صفحات کو جواب دیتا ہے۔ API کلیدوں کے ساتھ بیرونی رسائی پرو پلان کے ساتھ منصوبے میں ہے؛ دستیاب ہونے پر یہ دستاویزات اپ ڈیٹ ہوں گی۔

کیا API کو بھیجا گیا متن محفوظ ہوتا ہے؟

نہیں۔ متن جواب بنانے کے لیے ماڈل کو دیا جاتا ہے اور پھر ضائع کر دیا جاتا ہے۔ لاگ میں صرف میٹا ڈیٹا (اسٹیٹس کوڈ، کام، دورانیہ) ہوتا ہے۔ پوری تفصیل [رازداری کی پالیسی](/ur/privacy/) میں ہے۔

آؤٹ پٹ منظم JSON کے بجائے سادہ متن کیوں ہے؟

ہر کام ایک تیار متن دیتا ہے جس میں تمہید یا Markdown بلاک نہیں ہوتے، تاکہ اسے سیدھا ایڈیٹر میں دکھایا جا سکے۔ اضافی ساخت (مثلاً تبدیلیوں کی فہرست) v1 کو بدلے بغیر بعد کے ورژن میں شامل کرنے کا منصوبہ ہے۔

API کی قیمت کیا ہے؟

adeptwrite.com سے استعمال مفت ہے اور فی آئی پی 30 اے آئی درخواستیں فی منٹ تک محدود ہے۔ بیرونی رسائی کی قیمتوں کا اعلان پرو پلان کے ساتھ ہوگا؛ اس سے پہلے کچھ وصول نہیں کیا جاتا۔

میری درخواست کا جواب کون سا ماڈل دیتا ہے؟

یہ زبان پر منحصر ہے: انگریزی اور انڈونیشیائی SEA-LION کو جاتی ہیں، اردو سمیت باقی زبانیں Qwen3-30B کو۔ اگر وہ ماڈل مصروف ہو یا ناکام ہو تو متبادل زنجیر کا اگلا ماڈل جواب دیتا ہے، اور جواب کا model فیلڈ اسی کا نام بتاتا ہے۔