Dokumentasyon ng API

Paraphrase, grammar check, buod, pagsasalin at plagiarism check sa 56 wika. Simpleng REST, inihahatid mula sa edge ng Cloudflare.

Same-origin
Sa ngayon, ang API ay tumatanggap lamang ng kahilingan mula sa adeptwrite.com mismo (walang CORS header). Nakaplano ang panlabas na access na may API key kasabay ng planong Pro. Inilathala nang maaga ang dokumentasyong ito para bukas ang kontrata at makapaghanda ka.
Buod

May tatlong live na endpoint ang v1 API ng AdeptWrite. Ang POST /api/v1/run ay tumatanggap ng JSON na may task, mode, lang at text (hanggang 6,000 karakter) at nagbabalik ng plain text mula sa model ng Cloudflare Workers AI; ang POST /api/v1/plagiarism ay naghahambing ng teksto sa mga bukas na sanggunian at inililista ang mga sinuri; ang GET /api/v1/health ay nag-uulat ng katayuan. Hindi iniimbak o isinusulat sa log ang teksto; 30 kahilingan sa AI kada minuto kada IP ang limitasyon.

Mga pangunahing detalye

  • Base URL: https://adeptwrite.com/api/v1
  • Format: JSON ang mga kahilingan at tugon (Content-Type: application/json, UTF-8).
  • Authentication: wala pa; dapat manggaling ang mga kahilingan sa mga pahina ng adeptwrite.com (same-origin). Darating ang mga API key kasama ng Pro.
  • Privacy: ang field na text ay hindi iniimbak o isinusulat sa log; may Cache-Control: no-store ang mga tugon.
  • Pag-bersyon: hindi magbabago nang hindi tugma ang path na /v1/; /v2/ ang gagamitin sa mga pagbabagong sumisira.

POST/api/v1/run

Nagpapatakbo ng isang gawain ng AI sa isang teksto at ibinabalik ang resulta bilang plain text (walang paunang salita, walang Markdown fence).

Kahilingan

FieldTypeRequiredNotes
taskstring✓Pangalan ng gawain; tingnan ang listahan ng mga gawain sa ibaba.
textstring✓Input na teksto, 1–6,000 karakter.
langstring✓Wika ng resulta: isa sa 56 code ng locale ng site (en, tl, id, ja, pt-pt, zh-hant…; minamapa ang mga BCP 47 tag gaya ng pt-BR) o auto para sa "parehong wika ng input".
modestring—Isang mode na available sa tool na iyon, hal. Formal, Akademik, Ringkas, Poin-poin (mga label ng registry sa wikang Indonesian ang mga pangalan ng mode). Hindi pinapansin sa mga gawaing walang mode.
optionsobject—Mga opsiyong partikular sa gawain: from / to para sa translate (anumang suportadong wika papunta sa alinmang iba pa; puwedeng auto ang from; ang sr-Cyrl ay humihingi ng Serbian sa Cyrillic), platform (instagram / tiktok / linkedin) para sa caption, at opsiyonal na may-label na fields para sa bio, coverletter at meta. Hindi pinapansin ang ibang key.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "tl",
  "text": "Mahalaga ang mahusay na pagsulat para sa mga estudyante.",
  "options": {}
}

Tugon

Status 200 na may ok: true, ang resulta sa output, ang model na talagang sumagot sa model (iba ito kapag pumasok ang fallback model) at ang oras ng pagproseso sa millisecond. Idinaragdag ang truncated: true kapag naabot ng sagot ang hangganan ng haba nito o ang time limit at pinutol ito.

{
  "ok": true,
  "output": "Napakahalaga ng mahusay na pagsulat sa mga estudyante.",
  "model": "@cf/qwen/qwen3-30b-a3b-fp8",
  "ms": 812
}

Halimbawa: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"tl","text":"Pupunta ako sa aklatan bukas ng umaga."}'

Halimbawa: 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: 'tl', 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

Pumipili ng 4–8 natatanging parirala mula sa teksto, naghahanap sa mga bukas na sanggunian sa wika ng teksto (Wikipedia, Wikisource, buong teksto ng Internet Archive, Europe PMC, DOAJ, arXiv; isang web search provider lamang kapag naka-configure at hiniling) at tinutuos ang pagkakapareho. Ang mga maiikling pariralang iyon lamang ang lumalabas sa server.

Kahilingan

FieldTypeRequiredNotes
textstring✓Hindi bababa sa 30 salita, hindi hihigit sa 6,000 karakter.
langstring✓Isang code ng locale ng site o auto.
optionsobject—Ang web: true ay nagtatanong din sa web search provider kapag may na-configure ang operator; sinasabi ng webSearched sa tugon kung talagang sumagot ito.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…hindi bababa sa 30 salita…", "lang": "tl", "options": { "web": false } }

Tugon

Status 200 na may score (tugmang salita ÷ salita, 0–1), matches kada sanggunian na may naka-highlight na passages (mga character offset sa teksto mo), sourcesSearched (eksaktong mga sanggunian na ang sagot ay nasa resulta), sourcesSkipped na may dahilan, at webSearched.

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

Halimbawa: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"tl","text":"…hindi bababa sa 30 salita…"}'

GET/api/v1/health

Iniuulat kung aling mga serbisyo ang naka-on. Walang body at hindi binibilang sa quota.

Tugon

Status 200. Ang ai ay false habang naka-on ang AI kill switch; inililista ng plagiarism ang mga sanggunian na maaaring tanungin ng checker; inilalarawan ng aidetect ang server-side na malalimang pagsusuri ng AI detector, na hindi pa naka-deploy (sumasagot ang POST /api/v1/aidetect ng 503 disabled; sa browser mo tumatakbo ang detector sa site).

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

Halimbawa: curl

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

Task list

taskWhat it does
paraphraseParaphrase; mga mode: Standar, Formal, Santai, Akademik, Kreatif, Ringkas, Panjangkan.
grammarPagwawasto ng grammar at baybay.
tonePagpapalit ng tono; mga mode: Formal, Kantor (pang-opisina), Santai (kaswal).
rewritePag-ayos ng matigas o magulong pangungusap; mga mode: Standar, Formal.
resizePagpapaikli o pagpapahaba ng pangungusap; mga mode: Ringkas, Panjangkan.
essayPagbuo ng talata o sanaysay mula sa mga punto; mga mode: Akademik, Kreatif, Panjangkan.
summarizeBuod; mga mode: Poin-poin (mga punto), Paragraf (talata), Satu kalimat (isang pangungusap).
translatePagsasalin sa pagitan ng alinmang dalawang suportadong wika; options.from (o auto) at options.to; mga mode: Alami (natural, default), Formal, Santai (kaswal).
thesisMga ideya ng pamagat ng thesis at balangkas ng mga kabanata.
abstractNakaayos na abstrak mula sa buod ng pananaliksik.
captionMga caption sa social media; options.platform: instagram, tiktok, linkedin.
emailMga email at liham; mga mode: Lamaran kerja (aplikasyon sa trabaho), Surat resmi (pormal na liham), Follow-up.
headlineMga pamagat at headline ng artikulo; mga mode: Kreatif, Ringkas.
productMga paglalarawan ng produkto; mga mode: Marketplace, Toko online (online store).
synonymListahan ng kasingkahulugan ng isang salita o parirala.
humanizeGawing mas natural basahin ang matigas o generic na teksto; mga mode: Alami, Pribadi (personal), Profesional.
metaTatlong pares ng meta title at description; mga mode: Artikel (artikulo), Produk (produkto), Halaman (anumang web page).
hashtagIsang linya ng mga hashtag; mga mode: Instagram, TikTok, LinkedIn, X.
bioTatlong bio sa profile; mga mode: Instagram, LinkedIn, X, TikTok.
outlineMay-numerong balangkas na may mga sub-punto; mga mode: Artikel (artikulo), Esai (sanaysay), Skripsi (thesis), Presentasi (presentasyon).
sloganSampung ideya ng slogan; mga mode: Merek (brand), Kampanye (kampanya), Produk (produkto).
paragraphIsang talata mula sa paksa; mga mode: Pembuka (panimula), Isi (katawan), Penutup (wakas).
coverletterBurador ng application letter; mga mode: Fresh graduate, Berpengalaman (may karanasan), Magang (OJT / internship).
poemMaiikling tula; mga mode: Bebas (malayang taludturan), Berima (may tugma), Akrostik, Haiku.

Mga limitasyon

Haba ng teksto
Hanggang 6,000 karakter kada kahilingan (413 too_long kapag lumampas).
Kada IP address
30 kahilingan kada minuto.
Pangkalahatan
100 kahilingan kada minuto sa buong serbisyo, bukod pa sa daily cap para sa mga feature ng AI.
Plagiarism
5 check kada minuto kada IP at 60 kada minuto sa buong serbisyo; 30 salita ang minimum.
Output
May hangganan ng haba kada gawain, hindi kailanman lalampas sa 2,048 token; ang sagot na naputol ay may truncated: true.
Model
Pinipili kada wika: ang English at Indonesian ay tumatakbo sa @cf/aisingapore/gemma-sea-lion-v4-27b-it, ang bawat ibang wika sa @cf/qwen/qwen3-30b-a3b-fp8. Kapag abala, na-rate-limit, mabagal o pumalya ang isang model, lilipat ang kahilingan sa susunod na model sa hanay (Qwen3-30B, saka @cf/google/gemma-4-26b-a4b-it, saka @cf/meta/llama-3.3-70b-instruct-fp8-fast). Palaging pinangangalanan ng field na model ang model na sumagot.

Mga error code

StatusCodeKailan ito nangyayari
400invalid_requestDi-wastong JSON, kulang na kinakailangang field, o hindi kilalang task o lang.
413too_longLumampas sa 6,000 karakter ang text.
403forbiddenHindi nanggaling sa pahina ng adeptwrite.com ang kahilingan.
429rate_limitedNalampasan ang limitasyon kada minuto, kada IP man o pangkalahatan. Maghintay ng bilang ng segundong nasa Retry-After.
429quota_exceededNaubos na ang daily cap para sa mga feature ng AI. Subukan muli kinabukasan (UTC).
502upstreamWalang nakasagot sa tamang oras sa lahat ng model sa hanay.
502empty_outputSumagot ang mga model, ngunit walang laman ang resulta.
503disabledPansamantalang pinatay ng operator ang serbisyo, o (para sa /api/v1/aidetect) hindi pa naka-deploy.

Format ng error

Ang bawat error ay ibinabalik bilang JSON na may katugmang HTTP status code at parehong hugis:

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

Suriin muna ang ok, saka basahin ang error.code para sa programmatic na paghawak; ligtas ipakita sa mga user ang error.message.

Mga inirerekomendang gawi

  • Magpadala ng teksto nang paunti-unti (halimbawa, kada talata) sa halip na isang mahabang dokumento; mas mabilis dumating ang mga resulta at mas madaling suriin.
  • Tugunan ang 429 ng exponential back-off, hindi ng agarang pag-uulit.
  • Huwag magpadala ng personal o kumpidensiyal na datos na hindi mo kailangan — kahit hindi namin ito iniimbak, may bisa pa rin ang pagbabawas ng datos.
  • Maaaring mali ang output ng AI; ipakita ito bilang mungkahing susuriin, hindi bilang pinal na katotohanan.

Mga madalas itanong

Puwede ko bang tawagin ang API mula sa sarili kong app o domain?

Hindi pa. Sa ngayon, walang CORS header ang Worker at mga pahina lamang ng adeptwrite.com ang pinaglilingkuran nito. Nakaplano ang panlabas na access na may API key kasabay ng planong Pro; ia-update ang dokumentasyong ito kapag available na.

Iniimbak ba ang tekstong ipinapadala sa API?

Hindi. Ipinapasa ang teksto sa model para buuin ang sagot at itinatapon pagkatapos. Metadata lamang (status code, gawain, tagal) ang laman ng mga log. Tingnan ang patakaran sa privacy para sa lahat ng detalye.

Bakit plain text ang output at hindi nakabalangkas na JSON?

Ang bawat gawain ay gumagawa ng iisang tekstong handa nang gamitin, walang paunang salita o Markdown fence, para direkta itong maipakita sa editor. Nakaplano para sa susunod na bersyon ang karagdagang estruktura (halimbawa, listahan ng mga pagbabago) nang hindi binabago ang v1.

Magkano ang API?

Libre ito mula sa adeptwrite.com, limitado sa 30 kahilingan sa AI kada minuto kada IP. Ihahayag ang presyo para sa panlabas na access kasabay ng planong Pro; walang sinisingil bago noon.

Aling model ang sumasagot sa kahilingan ko?

Depende sa wika: ang English at Indonesian ay napupunta sa SEA-LION, ang ibang wika sa Qwen3-30B. Kapag abala o pumalya ang model na iyon, ang susunod na model sa hanay ng fallback ang sasagot, at pinangangalanan ng field na model sa tugon ang sumagot.