Dokumentácia API

Preformulovanie, kontrola gramatiky, zhrnutia, preklad a kontrola plagiátorstva v 56 jazykoch pre vašu aplikáciu. Jednoduché REST API z okraja siete Cloudflare.

Same-origin
API momentálne obsluhuje len požiadavky z webu adeptwrite.com (bez hlavičiek CORS). Externý prístup s API kľúčmi je plánovaný spolu s plánom Pro. Dokumentáciu zverejňujeme vopred, aby bol kontrakt otvorený a mohli ste sa naň pripraviť.
Zhrnutie

API AdeptWrite v1 má tri aktívne endpointy. POST /api/v1/run prijme JSON s poľami task, mode, lang a text (najviac 6 000 znakov) a vráti čistý text z modelu Cloudflare Workers AI, vybraného podľa jazyka; POST /api/v1/plagiarism porovná text s otvorenými zdrojmi a vypíše každý prehľadaný zdroj; GET /api/v1/health vráti stav služby. Text sa nikdy neukladá ani nezapisuje do logov a požiadavky na AI sú obmedzené na 30 za minútu na jednu IP adresu.

Základy

  • Základná URL: https://adeptwrite.com/api/v1
  • Formát: požiadavky aj odpovede sú JSON (Content-Type: application/json, UTF-8).
  • Autentifikácia: zatiaľ žiadna; požiadavka musí prísť zo stránky adeptwrite.com (same-origin). API kľúče pribudnú spolu s plánom Pro.
  • Súkromie: obsah poľa text sa neukladá ani nezapisuje do logov; odpoveď nesie hlavičku Cache-Control: no-store.
  • Verzia: cesta /v1/ sa nebude meniť nekompatibilne; väčšie zmeny prídu pod cestou /v2/.

POST/api/v1/run

Spustí jednu úlohu AI nad textom a vráti výsledok ako čistý text (bez úvodu a bez blokov Markdownu).

Požiadavka

FieldTypeRequiredNotes
taskstring✓Názov úlohy; pozrite zoznam úloh nižšie.
textstring✓Vstupný text, 1 až 6 000 znakov.
langstring✓Jazyk výsledku: jeden z 56 kódov jazykových verzií webu (sk, en, cs, pt-pt, zh-hant a ďalšie; značky BCP 47 ako pt-BR sa tiež priradia) alebo auto pre „rovnaký ako jazyk vstupu“.
modestring—Režim dostupný pre daný nástroj, napríklad Formal, Akademik, Ringkas, Poin-poin (názvy režimov sú kľúče registra nástrojov). Úlohy bez režimov ho ignorujú.
optionsobject—Doplnkové voľby podľa úlohy: from / to pre translate (z ktoréhokoľvek podporovaného jazyka do iného; from môže byť auto; sr-Cyrl žiada srbčinu v cyrilike), platform (instagram / tiktok / linkedin) pre caption a voliteľné označené fields pre bio, coverletter a meta. Ostatné kľúče sa ignorujú.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "sk",
  "text": "Kvalita písania je pre vysokoškolských študentov veľmi dôležitá.",
  "options": {}
}

Odpoveď

Stav 200 s ok: true, výsledkom v output, modelom, ktorý skutočne odpovedal, v model (líši sa, ak prevzal záložný model) a trvaním spracovania v milisekundách. Ak bola odpoveď useknutá pre dosiahnutý limit dĺžky alebo času, pribudne truncated: true.

{
  "ok": true,
  "output": "Kvalita textu je pre vysokoškolákov mimoriadne dôležitá.",
  "model": "@cf/qwen/qwen3-30b-a3b-fp8",
  "ms": 812
}

Príklad: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"sk","text":"Zajtra sa stretneme zo mnou v škole."}'

Príklad: 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: 'sk', 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

Vyberie 4 až 8 charakteristických fráz z textu, vyhľadá ich v otvorených zdrojoch podľa jazyka textu (Wikipédia, Wikisource, plné texty Internet Archive, Europe PMC, DOAJ, arXiv; poskytovateľ webového vyhľadávania len ak je nakonfigurovaný a vyžiadaný) a vypočíta mieru zhody. Zo servera odchádzajú iba tieto krátke frázy.

Požiadavka

FieldTypeRequiredNotes
textstring✓Najmenej 30 slov, najviac 6 000 znakov.
langstring✓Kód jazykovej verzie webu alebo auto.
optionsobject—web: true zapojí aj poskytovateľa webového vyhľadávania, ak ho prevádzkovateľ nakonfiguroval; webSearched v odpovedi uvádza, či poskytovateľ naozaj odpovedal.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…aspoň 30 slov…", "lang": "sk", "options": { "web": false } }

Odpoveď

Stav 200 s score (zhodujúce sa slová ÷ počet slov, 0 až 1), matches podľa zdrojov so zvýraznenými passages (pozície znakov vo vašom texte), sourcesSearched (presne tie zdroje, ktorých odpoveď je vo výsledku), sourcesSkipped s dôvodmi a webSearched.

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

Príklad: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"sk","text":"…aspoň 30 slov…"}'

GET/api/v1/health

Hlási, ktoré služby bežia. Nevyžaduje telo požiadavky a nezapočítava sa do kvót.

Odpoveď

Stav 200. ai je false, kým je zapnutý núdzový vypínač AI; plagiarism uvádza zdroje, ktoré kontrola vie prehľadávať; aidetect opisuje hĺbkovú analýzu AI detektora na serveri, ktorá zatiaľ nie je nasadená (POST /api/v1/aidetect odpovie 503 disabled; detektor na webe beží vo vašom prehliadači).

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

Príklad: curl

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

Task list

taskWhat it does
paraphrasePreformulovanie; režimy: Standar, Formal, Santai (neformálny), Akademik, Kreatif, Ringkas (skrátiť), Panjangkan (rozšíriť).
grammarOprava gramatiky a pravopisu (pri slovenčine podľa Pravidiel slovenského pravopisu).
toneZmena tónu; režimy: Formal, Kantor (pracovný), Santai (neformálny).
rewriteOprava ťažkopádnych alebo nejasných viet; režimy: Standar, Formal.
resizeSkrátenie alebo rozšírenie viet; režimy: Ringkas, Panjangkan.
essaySúvislé odseky alebo esej z hesiel; režimy: Akademik, Kreatif, Panjangkan.
summarizeZhrnutie; režimy: Poin-poin (odrážky), Paragraf (odsek), Satu kalimat (jedna veta).
translatePreklad medzi dvoma podporovanými jazykmi; options.from (alebo auto) a options.to; režimy: Alami (prirodzený, predvolený), Formal, Santai (neformálny).
thesisNápady na témy záverečných prác a osnova kapitol.
abstractŠtruktúrovaný abstrakt zo zhrnutia výskumu.
captionPopisky na sociálne siete; options.platform: instagram, tiktok, linkedin.
emailE-maily a listy; režimy: Lamaran kerja (žiadosť o prácu), Surat resmi (úradný list), Follow-up (pripomenutie).
headlineNadpisy a titulky článkov; režimy: Kreatif, Ringkas.
productPopisy produktov; režimy: Marketplace, Toko online (internetový obchod).
synonymZoznam synoným pre jedno slovo alebo frázu.
humanizeŤažkopádny, generický text bude znieť prirodzenejšie; režimy: Alami (prirodzený), Pribadi (osobný), Profesional (profesionálny).
metaTri dvojice meta titulku a popisu; režimy: Artikel (článok), Produk (produkt), Halaman (stránka).
hashtagJeden riadok hashtagov; režimy: Instagram, TikTok, LinkedIn, X.
bioTri profilové bio; režimy: Instagram, LinkedIn, X, TikTok.
outlineOčíslovaná osnova s podbodmi; režimy: Artikel (článok), Esai (esej), Skripsi (záverečná práca), Presentasi (prezentácia).
sloganDesať nápadov na slogan; režimy: Merek (značka), Kampanye (kampaň), Produk (produkt).
paragraphJeden odsek k téme; režimy: Pembuka (úvod), Isi (jadro), Penutup (záver).
coverletterNávrh motivačného listu; režimy: Fresh graduate (absolvent), Berpengalaman (skúsený), Magang (stáž).
poemKrátke básne; režimy: Bebas (voľný verš), Berima (rýmovaný), Akrostik (akrostich), Haiku.

Limity

Dĺžka textu
Najviac 6 000 znakov na požiadavku (viac vráti 413 too_long).
Na IP adresu
30 požiadaviek za minútu.
Globálne
100 požiadaviek za minútu pre celú službu a denný strop pre funkcie s AI.
Kontrola plagiátorstva
5 kontrol za minútu na IP adresu a 60 za minútu pre celú službu; najmenej 30 slov.
Výstup
Rozpočet dĺžky podľa úlohy, nikdy viac ako 2 048 tokenov; useknutá odpoveď nesie truncated: true.
Model
Vyberá sa podľa jazyka: angličtina a indonézčina používajú @cf/aisingapore/gemma-sea-lion-v4-27b-it, každý iný jazyk @cf/qwen/qwen3-30b-a3b-fp8. Keď je model vyťažený, narazí na limit, je pomalý alebo zlyhá, požiadavka prejde na ďalší model záložného reťazca (Qwen3-30B, potom @cf/google/gemma-4-26b-a4b-it, potom @cf/meta/llama-3.3-70b-instruct-fp8-fast). Pole model vždy uvádza model, ktorý odpovedal.

Chybové kódy

StavKódKedy nastane
400invalid_requestNeplatný JSON, chýbajúce povinné pole alebo neznáme task či lang.
413too_longtext má viac ako 6 000 znakov.
403forbiddenPožiadavka neprišla zo stránky adeptwrite.com.
429rate_limitedPrekročený minútový limit na IP adresu alebo globálny limit. Počkajte počet sekúnd z hlavičky Retry-After.
429quota_exceededDenný limit funkcií s AI je vyčerpaný. Skúste to znova nasledujúci deň (UTC).
502upstreamŽiadny model v reťazci neodpovedal včas.
502empty_outputModel odpovedal, ale výsledok je prázdny.
503disabledPrevádzkovateľ službu dočasne vypol alebo (pri /api/v1/aidetect) ešte nie je nasadená.

Formát chýb

Každá chyba sa vracia ako JSON s príslušným stavovým kódom HTTP a rovnakým tvarom:

{ "ok": false, "error": { "code": "rate_limited", "message": "Príliš veľa požiadaviek. Skúste to o chvíľu." } }

Najprv skontrolujte ok, potom čítajte error.code na programové spracovanie; error.message je bezpečné zobraziť používateľovi.

Odporúčaný postup

  • Posielajte text po častiach (napríklad po odsekoch), nie ako jeden dlhý dokument; výsledok príde rýchlejšie a ľahšie sa kontroluje.
  • Na 429 reagujte exponenciálnym čakaním, nie okamžitým opakovaním.
  • Neposielajte osobné ani dôverné údaje, ktoré nepotrebujete – hoci ich neukladáme, platí zásada minimalizácie údajov.
  • Výstup AI môže byť nesprávny; ukážte ho ako návrh na kontrolu, nie ako konečnú pravdu.

Najčastejšie otázky

Môžem API volať z vlastnej aplikácie alebo domény?

Zatiaľ nie. Worker momentálne neposiela hlavičky CORS a obsluhuje len stránky adeptwrite.com. Externý prístup s API kľúčmi je plánovaný spolu s plánom Pro; dokumentáciu aktualizujeme, keď bude dostupný.

Ukladá sa text odoslaný do API?

Nie. Text sa odovzdá modelu na vytvorenie odpovede a potom sa zahodí. Logy obsahujú iba metaúdaje, ako stavový kód, názov úlohy a trvanie, a vôbec nie obsah textu. Všetky podrobnosti nájdete v zásadách ochrany osobných údajov.

Prečo je výstup čistý text a nie štruktúrovaný JSON?

Každá úloha vytvára jeden hotový text bez úvodu a blokov Markdownu, aby sa dal priamo zobraziť v editore. Ďalšiu štruktúru (napríklad zoznam zmien) plánujeme v neskoršej verzii bez zmeny v1.

Koľko stojí používanie API?

Z webu adeptwrite.com je zadarmo s limitom 30 požiadaviek na AI za minútu na jednu IP adresu. Ceny externého prístupu oznámime spolu s plánom Pro; dovtedy sa nič neúčtuje.

Ktorý model odpovedá na moju požiadavku?

Závisí od jazyka: angličtinu a indonézčinu obsluhuje SEA-LION, ostatné jazyky Qwen3-30B. Ak je tento model vyťažený alebo zlyhá, odpovie ďalší model záložného reťazca a pole model v odpovedi uvádza ten, ktorý skutočne odpovedal.