പാരാഫ്രേസിങ്, ഗ്രാമർ പരിശോധന, സംഗ്രഹം, പരിഭാഷ, പ്ലാഗിയറിസം പരിശോധന എന്നിവ മലയാളം ഉൾപ്പെടെ 56 ഭാഷകളിൽ. ലളിതമായ REST, Cloudflare-ന്റെ എഡ്ജിൽ നിന്ന്.
Same-origin
നിലവിൽ API, adeptwrite.com-ൽ നിന്നുള്ള അഭ്യർഥനകൾ മാത്രമേ സ്വീകരിക്കൂ (CORS ഹെഡറുകളില്ല). API കീകൾ ഉപയോഗിച്ചുള്ള ബാഹ്യ ആക്സസ് Pro പ്ലാനിനൊപ്പം ആസൂത്രണം ചെയ്തിട്ടുണ്ട്. കരാർ തുറന്നിരിക്കാനും നിങ്ങൾക്ക് മുൻകൂട്ടി ഒരുങ്ങാനും വേണ്ടിയാണ് ഈ ഡോക്യുമെന്റേഷൻ നേരത്തേ പ്രസിദ്ധീകരിക്കുന്നത്.
ചുരുക്കം
AdeptWrite v1 API-ക്ക് മൂന്ന് എൻഡ്പോയിന്റുകളുണ്ട്: POST /api/v1/run (task, mode, lang, text; പരമാവധി 6,000 അക്ഷരം; ഫലം സാധാരണ ടെക്സ്റ്റ്), POST /api/v1/plagiarism (തുറന്ന സ്രോതസ്സുകളുമായി താരതമ്യം), GET /api/v1/health. ടെക്സ്റ്റ് സൂക്ഷിക്കില്ല; ഒരു IP-ക്ക് മിനിറ്റിൽ 30 അഭ്യർഥനകൾ.
അടിസ്ഥാന വിവരങ്ങൾ
ബേസ് 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 ലോക്കൽ കോഡുകളിൽ ഒന്ന് (മലയാളത്തിന് ml; en, id, ja, pt-pt, zh-hant…; pt-BR പോലുള്ള BCP 47 ടാഗുകൾ മാപ്പ് ചെയ്യും) അല്ലെങ്കിൽ "ഇൻപുട്ടിന്റെ അതേ ഭാഷ" എന്നതിന് auto.
mode
string
—
ആ ടൂളിൽ ലഭ്യമായ ഒരു മോഡ്, ഉദാഹരണത്തിന് Formal, Akademik, Ringkas, Poin-poin (മോഡ് പേരുകൾ ഇന്തോനേഷ്യൻ രജിസ്ട്രി ലേബലുകളാണ്, API-യിൽ അവ അതേപടി അയയ്ക്കണം). മോഡില്ലാത്ത ടാസ്കുകളിൽ അവഗണിക്കും.
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": "ml",
"text": "വിദ്യാർഥികൾക്ക് നല്ല എഴുത്ത് വളരെ പ്രധാനമാണ്.",
"options": {}
}
പ്രതികരണം
സ്റ്റാറ്റസ് 200, ok: true, ഫലം output-ൽ, യഥാർഥത്തിൽ ഉത്തരം നൽകിയ മോഡൽ model-ൽ (ബാക്കപ്പ് മോഡൽ ഏറ്റെടുത്താൽ വ്യത്യസ്തമായിരിക്കും), പ്രോസസിങ് സമയം മില്ലിസെക്കൻഡിൽ. ഉത്തരം നീളപരിധിയിലോ സമയപരിധിയിലോ എത്തി മുറിഞ്ഞുപോയാൽ truncated: true ചേർക്കും.
const res = await fetch('/api/v1/run', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ task: 'summarize', mode: 'Poin-poin', lang: 'ml', 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 പറയുന്നു.
ഏതെല്ലാം സേവനങ്ങൾ ഓണാണെന്ന് അറിയിക്കുന്നു. ബോഡി ആവശ്യമില്ല, ക്വോട്ടയിൽ കണക്കാക്കുകയുമില്ല.
പ്രതികരണം
സ്റ്റാറ്റസ് 200. AI കിൽ സ്വിച്ച് ഓണായിരിക്കുമ്പോൾ ai false ആയിരിക്കും; plagiarism ചെക്കറിന് തിരയാവുന്ന സ്രോതസ്സുകൾ പട്ടികപ്പെടുത്തുന്നു; AI ഡിറ്റക്ടറിന്റെ സെർവർ വശത്തെ ആഴത്തിലുള്ള വിശകലനത്തെ aidetect വിവരിക്കുന്നു, അത് ഇതുവരെ വിന്യസിച്ചിട്ടില്ല (POST /api/v1/aidetect503 disabled എന്ന് മറുപടി നൽകുന്നു; സൈറ്റിലെ ഡിറ്റക്ടർ നിങ്ങളുടെ ബ്രൗസറിൽ പ്രവർത്തിക്കുന്നു).
ചെറിയ കവിതകൾ; മോഡുകൾ: 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 ഫീൽഡിൽ എപ്പോഴും ഉണ്ടാകും.
പിഴവ് കോഡുകൾ
നില
കോഡ്
എപ്പോൾ സംഭവിക്കുന്നു
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-ന്) അത് ഇതുവരെ വിന്യസിച്ചിട്ടില്ല.
പിശക് ഫോർമാറ്റ്
എല്ലാ പിശകുകളും ബന്ധപ്പെട്ട HTTP സ്റ്റാറ്റസ് കോഡോടെ, ഒരേ ഘടനയിലുള്ള JSON ആയി ലഭിക്കും:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
ആദ്യം ok പരിശോധിക്കുക; പ്രോഗ്രാം വഴി കൈകാര്യം ചെയ്യാൻ error.code വായിക്കുക. error.message ഇംഗ്ലീഷിലാണ്; ഉപയോക്താക്കളെ കാണിക്കാൻ സുരക്ഷിതവുമാണ്.
ശുപാർശ ചെയ്യുന്ന രീതി
നീണ്ട രേഖ ഒറ്റയടിക്ക് അയയ്ക്കുന്നതിനു പകരം ഭാഗങ്ങളായി (ഉദാഹരണത്തിന് ഓരോ ഖണ്ഡികയും) അയയ്ക്കുക; ഫലം വേഗത്തിൽ വരും, പരിശോധിക്കാനും എളുപ്പമാണ്.
429 കൈകാര്യം ചെയ്യുമ്പോൾ ഉടൻ വീണ്ടും ശ്രമിക്കാതെ എക്സ്പോണൻഷ്യൽ ബാക്ക്-ഓഫ് ഉപയോഗിക്കുക.
ആവശ്യമില്ലാത്ത വ്യക്തിഗത അല്ലെങ്കിൽ രഹസ്യ വിവരങ്ങൾ അയയ്ക്കരുത്; ഞങ്ങൾ സൂക്ഷിക്കുന്നില്ലെങ്കിലും കുറഞ്ഞ ഡാറ്റ മാത്രം ഉപയോഗിക്കുക എന്ന തത്ത്വം ബാധകമാണ്.
AI ഫലം തെറ്റാകാം; അത് അന്തിമ സത്യമായല്ല, പരിശോധിക്കേണ്ട നിർദേശമായി അവതരിപ്പിക്കുക.
പതിവ് ചോദ്യങ്ങൾ
എന്റെ സ്വന്തം ആപ്പിൽ നിന്നോ ഡൊമെയ്നിൽ നിന്നോ API വിളിക്കാമോ?
ഇപ്പോൾ കഴിയില്ല. Worker ഇപ്പോൾ CORS ഹെഡറുകൾ അയയ്ക്കുന്നില്ല, adeptwrite.com പേജുകൾക്ക് മാത്രമേ സേവനം നൽകുന്നുള്ളൂ. API കീകൾ ഉപയോഗിച്ചുള്ള ബാഹ്യ ആക്സസ് Pro പ്ലാനിനൊപ്പം ആസൂത്രണം ചെയ്തിട്ടുണ്ട്; ലഭ്യമാകുമ്പോൾ ഈ ഡോക്യുമെന്റേഷൻ പുതുക്കും.
API-യിലേക്ക് അയയ്ക്കുന്ന ടെക്സ്റ്റ് സൂക്ഷിക്കുമോ?
ഇല്ല. ഉത്തരം തയ്യാറാക്കാൻ ടെക്സ്റ്റ് മോഡലിന് കൈമാറുകയും പിന്നീട് ഉപേക്ഷിക്കുകയും ചെയ്യുന്നു. ലോഗുകളിൽ മെറ്റാഡാറ്റ മാത്രമേയുള്ളൂ (സ്റ്റാറ്റസ് കോഡ്, ടാസ്ക്, സമയദൈർഘ്യം). വിശദാംശങ്ങൾക്ക് സ്വകാര്യതാ നയം കാണുക.
ഫലം ഘടനയുള്ള JSON അല്ലാതെ സാധാരണ ടെക്സ്റ്റ് ആകുന്നത് എന്തുകൊണ്ട്?
ഓരോ ടാസ്കും മുഖവുരയും Markdown ഫെൻസുകളും ഇല്ലാതെ നേരിട്ട് ഉപയോഗിക്കാവുന്ന ഒരു ടെക്സ്റ്റ് നൽകുന്നു; അങ്ങനെ എഡിറ്ററിൽ അതേപടി കാണിക്കാം. കൂടുതൽ ഘടന (ഉദാഹരണത്തിന് മാറ്റങ്ങളുടെ പട്ടിക) v1 മാറ്റാതെ പിന്നീടുള്ള പതിപ്പിൽ ആസൂത്രണം ചെയ്തിട്ടുണ്ട്.
API-ക്ക് എത്ര ചെലവ് വരും?
adeptwrite.com-ൽ നിന്ന് ഇത് സൗജന്യമാണ്, ഒരു IP-ക്ക് മിനിറ്റിൽ 30 AI അഭ്യർഥനകൾ എന്ന പരിധിയോടെ. ബാഹ്യ ആക്സസിന്റെ വില Pro പ്ലാനിനൊപ്പം പ്രഖ്യാപിക്കും; അതുവരെ ഒന്നും ഈടാക്കില്ല.
എന്റെ അഭ്യർഥനയ്ക്ക് ഏത് മോഡലാണ് ഉത്തരം നൽകുന്നത്?
ഭാഷയെ ആശ്രയിച്ചിരിക്കുന്നു: ഇംഗ്ലീഷും ഇന്തോനേഷ്യനും SEA-LION-ലേക്ക്, മലയാളം ഉൾപ്പെടെ മറ്റ് ഭാഷകൾ Qwen3-30B-യിലേക്ക്. ആ മോഡൽ തിരക്കിലോ പരാജയപ്പെട്ടോ ആണെങ്കിൽ ബാക്കപ്പ് ശൃംഖലയിലെ അടുത്ത മോഡൽ ഉത്തരം നൽകും; ഏതാണ് ഉത്തരം നൽകിയതെന്ന് പ്രതികരണത്തിലെ model ഫീൽഡ് പറയും.