Dokumentasi API

Parafrase, cek tata basa, ringkesan, terjemahan, lan cek plagiasi ing 56 basa. REST prasaja, dilayani saka edge Cloudflare.

Same-origin
Saiki API mung nampa panyuwunan saka adeptwrite.com dhéwé (tanpa header CORS). Akses saka njaba nganggo kunci API direncanakaké bareng paket Pro. Dokumentasi iki diterbitaké luwih awal supaya kontraké mbukak lan kowé bisa nyiapaké.
Ringkesan

API AdeptWrite v1 nduwèni telung endpoint aktif. POST /api/v1/run nampa JSON isi task, mode, lang, lan text (nganti 6.000 karakter) lan mbalèkaké asil teks polos saka model Cloudflare Workers AI sing dipilih manut basa; POST /api/v1/plagiarism mbandhingaké teks karo sumber terbuka lan ndhaftar saben sumber sing ditelusuri; GET /api/v1/health mbalèkaké status layanan. Teks ora disimpen lan ora dicathet, lan panyuwunan AI diwatesi 30 saben menit saben IP.

Dhasar

  • Base URL: https://adeptwrite.com/api/v1
  • Format: panyuwunan lan wangsulan awujud JSON (Content-Type: application/json, UTF-8).
  • Otentikasi: durung ana; panyuwunan kudu teka saka kaca adeptwrite.com (same-origin). Kunci API teka bareng Pro.
  • Privasi: field text ora tau disimpen utawa dicathet; wangsulan nggawa Cache-Control: no-store.
  • Versi: dalan /v1/ ora bakal owah kanthi cara sing ora kompatibel; owah-owahan gedhé bakal nganggo /v2/.

POST/api/v1/run

Njalanaké siji tugas AI ing teks lan mbalèkaké asil awujud teks polos (tanpa pambuka, tanpa pager kode Markdown).

Panyuwunan

FieldTypeRequiredNotes
taskstring✓Jeneng tugas; deleng dhaptar tugas ing ngisor.
textstring✓Teks mlebu, 1–6.000 karakter.
langstring✓Basa asil: salah siji saka 56 kode lokal situs (en, id, jv, ja, pt-pt, zh-hant…; tag BCP 47 kayata pt-BR dipetakaké) utawa auto kanggo "padha karo basa teks mlebu".
modestring—Mode sing ana kanggo piranti iku, umpamané Formal, Akademik, Ringkas, Poin-poin (jeneng mode iku label registri Basa Indonesia). Ora digatèkaké kanggo tugas tanpa mode.
optionsobject—Pilihan khusus tugas: from / to kanggo translate (basa apa waé sing didhukung menyang basa liyané; from bisa auto; sr-Cyrl njaluk Serbia aksara Sirilik), platform (instagram / tiktok / linkedin) kanggo caption, lan fields opsional kanthi label kanggo bio, coverletter, lan meta. Kunci liyané ora digatèkaké.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "jv",
  "text": "Nulis sing apik iku penting banget kanggo siswa.",
  "options": {}
}

Wangsulan

Status 200 kanthi ok: true, asil ing output, model sing tenan mangsuli ing model (bisa beda yen model cadhangan sing mangsuli), lan wektu proses ing milidetik. truncated: true ditambahaké yen wangsulan tekan wates dawané utawa wates wektu lan kepotong.

{
  "ok": true,
  "output": "Kemampuan nulis kang apik iku wigati banget tumrap siswa.",
  "model": "@cf/qwen/qwen3-30b-a3b-fp8",
  "ms": 812
}

Conto: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"jv","text":"Aku arep lunga menyang pasar sesuk esuk."}'

Conto: 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: 'jv', 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

Milih 4–8 frasa khas saka teks, nggolèki sumber terbuka ing basa teks iku (Wikipedia, Wikisource, teks lengkap Internet Archive, Europe PMC, DOAJ, arXiv; panyedhiya panelusuran web mung yen wis disetel lan dijaluk) lan ngetung tingkat kamiripan. Mung frasa-frasa cendhak iku sing metu saka server.

Panyuwunan

FieldTypeRequiredNotes
textstring✓Paling sethithik 30 tembung, paling akèh 6.000 karakter.
langstring✓Kode lokal situs utawa auto.
optionsobject—web: true uga nakoni panyedhiya panelusuran web yen operator wis nyetel; webSearched ing wangsulan nuduhaké apa panyedhiya iku tenan mangsuli.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…paling sethithik 30 tembung…", "lang": "jv", "options": { "web": false } }

Wangsulan

Status 200 kanthi score (tembung sing cocog ÷ tembung, 0–1), matches saben sumber karo passages sing disorot (offset karakter ing teksmu), sourcesSearched (persis sumber-sumber sing wangsulané ana ing asil), sourcesSkipped lan alesané, lan webSearched.

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

Conto: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"jv","text":"…paling sethithik 30 tembung…"}'

GET/api/v1/health

Nglaporaké layanan endi sing nyala. Ora nganggo isi panyuwunan lan ora diitung ing kuota.

Wangsulan

Status 200. ai false nalika sakelar pateni AI nyala; plagiarism ndhaftar sumber sing bisa ditakoni pengecek; aidetect njlèntrèhaké analisis jero detektor AI ing sisih server, sing durung dipasang (POST /api/v1/aidetect mangsuli 503 disabled; detektor ing situs mlaku ing browsermu).

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

Conto: curl

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

Task list

taskWhat it does
paraphraseParafrase; mode: Standar, Formal, Santai, Akademik, Kreatif, Ringkas, Panjangkan.
grammarKoreksi tata basa lan ejaan.
toneNgowahi nada; mode: Formal, Kantor, Santai.
rewriteNgrapèkaké ukara sing kaku utawa ora wajar; mode: Standar, Formal.
resizeCendhakaké utawa dawakaké ukara; mode: Ringkas, Panjangkan.
essayNyusun paragraf utawa esai saka poin-poin; mode: Akademik, Kreatif, Panjangkan.
summarizeRingkesan; mode: Poin-poin, Paragraf, Satu kalimat (siji ukara).
translateTerjemahan antarane rong basa apa waé sing didhukung; options.from (utawa auto) lan options.to; mode: Alami (wajar, baku), Formal, Santai.
thesisGagasan judul skripsi lan kerangka bab.
abstractAbstrak sing tertata saka ringkesan panliten.
captionCaption media sosial; options.platform: instagram, tiktok, linkedin.
emailEmail lan layang; mode: Lamaran kerja, Surat resmi, Follow-up.
headlineJudul artikel lan headline; mode: Kreatif, Ringkas.
productDeskripsi produk; mode: Marketplace, Toko online.
synonymDhaptar sinonim kanggo siji tembung utawa frasa.
humanizeNdadèkaké teks sing kaku utawa umum muni luwih wajar; mode: Alami, Pribadi, Profesional.
metaTelung pasang judul lan deskripsi meta; mode: Artikel, Produk, Halaman (kaca web apa waé).
hashtagSiji baris hashtag; mode: Instagram, TikTok, LinkedIn, X.
bioTelung bio profil; mode: Instagram, LinkedIn, X, TikTok.
outlineKerangka kanthi nomer lan sub-poin; mode: Artikel, Esai, Skripsi, Presentasi.
sloganSepuluh gagasan slogan; mode: Merek, Kampanye, Produk.
paragraphSiji paragraf saka topik; mode: Pembuka, Isi, Penutup.
coverletterRancangan surat lamaran kerja; mode: Fresh graduate, Berpengalaman, Magang.
poemGeguritan cekak; mode: Bebas, Berima, Akrostik, Haiku.

Watesan

Dawa teks
Paling akèh 6.000 karakter saben panyuwunan (413 too_long yen luwih).
Saben alamat IP
30 panyuwunan saben menit.
Global
100 panyuwunan saben menit ing sakabèhing layanan, ditambah wates saben dina kanggo fitur AI.
Plagiasi
5 pangecekan saben menit saben IP lan 60 saben menit ing sakabèhing layanan; paling sethithik 30 tembung.
Output
Anggaran dawa saben tugas, ora tau luwih saka 2.048 token; wangsulan sing kepotong nggawa truncated: true.
Model
Dipilih manut basa: Inggris lan Indonesia nganggo @cf/aisingapore/gemma-sea-lion-v4-27b-it, basa liyané kabèh nganggo @cf/qwen/qwen3-30b-a3b-fp8. Yen model lagi sibuk, kena wates, alon, utawa gagal, panyuwunan pindhah menyang model sabanjuré ing rantai (Qwen3-30B, banjur @cf/google/gemma-4-26b-a4b-it, banjur @cf/meta/llama-3.3-70b-instruct-fp8-fast). Field model tansah nyebut model sing tenan mangsuli.

Kode kesalahan

StatusKodeKapan kedadeyan
400invalid_requestJSON ora valid, field wajib ora ana, utawa task utawa lang ora dikenal.
413too_longtext ngluwihi 6.000 karakter.
403forbiddenPanyuwunan ora teka saka kaca adeptwrite.com.
429rate_limitedWates saben menit per IP utawa global kelangkung. Enteni cacahé detik ing Retry-After.
429quota_exceededWates saben dina kanggo fitur AI wis entek. Coba maneh dina sabanjuré (UTC).
502upstreamKabèh model ing rantai gagal mangsuli ing wektu sing ditemtokaké.
502empty_outputModel mangsuli, nanging asilé kosong.
503disabledLayanan dipateni sauntara dening operator, utawa (kanggo /api/v1/aidetect) durung dipasang.

Format kesalahan

Saben kesalahan dibalèkaké awujud JSON kanthi kode status HTTP sing cocog lan wujud sing padha:

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

Priksa ok dhisik, banjur waca error.code kanggo panangani ing program; error.message aman ditampilaké marang pangguna.

Praktik sing disaranaké

  • Kirimen teks sabagéan-sabagéan (umpamané saben paragraf), aja siji dokumen dawa; asil teka luwih cepet lan luwih gampang dipriksa.
  • Tangani 429 nganggo back-off eksponensial, aja langsung dicoba maneh.
  • Aja ngirim dhata pribadi utawa rahasia sing ora perlu — senajan kita ora nyimpen, prinsip minimalisasi dhata tetep ditrapaké.
  • Asil AI bisa klèru; tampilna minangka saran sing kudu dipriksa, dudu bebener pungkasan.

Pitakon sing kerep diajokaké

Apa aku bisa nelpon API saka aplikasi utawa domainku dhéwé?

Durung. Worker saiki ora ngirim header CORS lan mung nglayani kaca adeptwrite.com. Akses saka njaba nganggo kunci API direncanakaké bareng paket Pro; dokumentasi iki bakal dianyari yen wis kasedhiya.

Apa teks sing dikirim menyang API disimpen?

Ora. Teks diterusaké menyang model kanggo nggawé wangsulan, banjur dibuwang. Log mung ngandhut metadata (kode status, tugas, dawa wektu). Rinciané ana ing kabijakan privasi.

Yagene asil awujud teks polos, dudu JSON sing tertata?

Saben tugas ngasilaké siji teks sing siap dienggo tanpa pambuka utawa pager kode Markdown, supaya bisa langsung ditampilaké ing editor. Struktur tambahan (umpamané dhaptar owah-owahan) direncanakaké ing versi sabanjuré tanpa ngowahi v1.

Pira rega API-né?

Saka adeptwrite.com gratis, diwatesi 30 panyuwunan AI saben menit saben IP. Rega akses saka njaba bakal diumumaké bareng paket Pro; sadurungé kuwi ora ana sing ditagih.

Model endi sing mangsuli panyuwunanku?

Gumantung basa: Inggris lan Indonesia menyang SEA-LION, basa liyané menyang Qwen3-30B. Yen model iku sibuk utawa gagal, model sabanjuré ing rantai cadhangan sing mangsuli, lan field model ing wangsulan nyebut sing tenan mangsuli.