Přeformulování, kontrola gramatiky a pravopisu, shrnutí, překlad a kontrola plagiátů v 56 jazycích pro vaši aplikaci. Jednoduché REST rozhraní z okraje sítě Cloudflare.
Same-origin
API v současnosti obsluhuje jen požadavky z webu adeptwrite.com (bez hlaviček CORS). Externí přístup s klíčem API je plánován spolu s plánem Pro. Dokumentaci zveřejňujeme předem, aby byl kontrakt otevřený a mohli jste se připravit.
Shrnutí
API AdeptWrite v1 má tři aktivní endpointy. POST /api/v1/run přijme JSON s poli task, mode, lang a text (nejvýše 6 000 znaků) a vrátí čistý text z modelu Cloudflare Workers AI vybraného podle jazyka; POST /api/v1/plagiarism porovná text s otevřenými zdroji a uvede každý prohledaný zdroj; GET /api/v1/health vrátí stav služby. Text se neukládá ani nezapisuje do logů a požadavky na AI jsou omezeny na 30 za minutu na jednu IP adresu.
Základy
Základní URL:https://adeptwrite.com/api/v1
Formát: požadavky i odpovědi jsou JSON (Content-Type: application/json, UTF-8).
Autentizace: zatím žádná; požadavek musí pocházet ze stránky adeptwrite.com (same-origin). Klíče API přijdou spolu s plánem Pro.
Soukromí: obsah pole text se neukládá ani nezapisuje do logů; odpovědi mají hlavičku Cache-Control: no-store.
Verze: cesta /v1/ se nezmění nekompatibilním způsobem; větší změny dostanou cestu /v2/.
POST/api/v1/run
Spustí jednu úlohu AI nad textem a vrátí výsledek jako čistý text (bez úvodu a bez bloků Markdownu).
Požadavek
Field
Type
Required
Notes
task
string
✓
Název úlohy; viz seznam úloh níže.
text
string
✓
Vstupní text, 1–6 000 znaků.
lang
string
✓
Jazyk výsledku: jeden z 56 kódů jazykových verzí webu (cs, en, ja, pt-pt, zh-hant a další; značky BCP 47 jako pt-BR se přiřadí také) nebo auto pro „stejný jazyk jako vstup“.
mode
string
—
Režim dostupný pro daný nástroj, například Formal, Akademik, Ringkas, Poin-poin. Pokud úloha režimy nemá, ignoruje se.
options
object
—
Další volby podle úlohy: from / to pro translate (z libovolného podporovaného jazyka do jiného; from může být auto; sr-Cyrl žádá srbštinu v cyrilici), platform (instagram / tiktok / linkedin) pro caption a volitelná pojmenovaná pole fields pro bio, coverletter a meta. Ostatní klíče se ignorují.
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "cs",
"text": "Kvalita psaní je pro studenty hrozně důležitá.",
"options": {}
}
Odpověď
Stav 200 s ok: true, výsledkem v output, modelem, který skutečně odpověděl, v model (liší se, pokud zasáhl záložní model) a dobou zpracování v milisekundách. Pokud byla odpověď oříznuta kvůli dosažení limitu délky nebo času, přibude truncated: true.
{
"ok": true,
"output": "Kvalita psaní je pro studenty velmi důležitá.",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
Příklad: curl
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"cs","text":"Já a kolegové jsme to včera dokončily bysme to poslali."}'
Pří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: 'cs', 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
Vybere z textu 4–8 charakteristických frází, vyhledá je v otevřených zdrojích podle jazyka textu (Wikipedie, Wikisource, plné texty Internet Archive, Europe PMC, DOAJ, arXiv; poskytovatel webového vyhledávání jen tehdy, když je nastaven a vyžádán) a spočítá míru překryvu. Server opouštějí pouze tyto krátké fráze.
Požadavek
Field
Type
Required
Notes
text
string
✓
Nejméně 30 slov, nejvýše 6 000 znaků.
lang
string
✓
Kód jazykové verze webu nebo auto.
options
object
—
web: true zapojí také poskytovatele webového vyhledávání, pokud ho provozovatel nastavil; webSearched v odpovědi říká, zda poskytovatel skutečně odpověděl.
Stav 200 s polem score (shodná slova ÷ počet slov, 0–1), matches podle zdrojů se zvýrazněnými úseky passages (pozice znaků ve vašem textu), sourcesSearched (přesně ty zdroje, jejichž odpověď je ve výsledku), sourcesSkipped s důvody a webSearched.
Hlásí, které služby jsou aktivní. Nevyžaduje tělo požadavku a nezapočítává se do kvóty.
Odpověď
Stav 200. ai je false, dokud je zapnutý nouzový vypínač AI; plagiarism uvádí zdroje, které kontrola umí prohledat; aidetect popisuje hloubkovou analýzu AI detektoru na serveru, která zatím není nasazena (POST /api/v1/aidetect odpovídá 503 disabled; detektor na webu běží ve vašem prohlížeči).
Nejvýše 6 000 znaků na požadavek (při překročení 413 too_long).
Na IP adresu
30 požadavků za minutu.
Globálně
100 požadavků za minutu pro celou službu a denní limit pro funkce s AI.
Kontrola plagiátů
5 kontrol za minutu na IP adresu a 60 za minutu pro celou službu; nejméně 30 slov.
Výstup
Rozpočet délky podle úlohy, nikdy více než 2 048 tokenů; oříznutá odpověď nese truncated: true.
Model
Vybírá se podle jazyka: indonéština a angličtina používají @cf/aisingapore/gemma-sea-lion-v4-27b-it, ostatní jazyky včetně češtiny @cf/qwen/qwen3-30b-a3b-fp8. Když je model vytížený, narazí na limit, je pomalý nebo selže, požadavek přejde na další model záložního řetězce (Qwen3-30B, pak @cf/google/gemma-4-26b-a4b-it, pak @cf/meta/llama-3.3-70b-instruct-fp8-fast). Pole model vždy uvádí model, který odpověděl.
Chybové kódy
Stav
Kód
Kdy k ní dochází
400
invalid_request
Neplatný JSON, prázdné povinné pole, neznámý task nebo lang.
413
too_long
text má více než 6 000 znaků.
403
forbidden
Požadavek nepochází ze stránky adeptwrite.com.
429
rate_limited
Byl překročen limit za minutu na IP adresu nebo globální limit. Počkejte počet sekund uvedený v Retry-After.
429
quota_exceeded
Denní limit funkcí s AI je vyčerpán. Zkuste to znovu následující den (UTC).
502
upstream
Žádný model v řetězci neodpověděl včas.
502
empty_output
Model odpověděl, ale výsledek je prázdný.
503
disabled
Provozovatel službu dočasně vypnul, nebo (u /api/v1/aidetect) ještě není nasazena.
Formát chyb
Všechny chyby se vracejí jako JSON s odpovídajícím stavovým kódem HTTP a stejným tvarem:
{ "ok": false, "error": { "code": "rate_limited", "message": "Příliš mnoho požadavků. Zkuste to za chvíli znovu." } }
Nejdřív zkontrolujte ok, pak pro programové zpracování čtěte error.code; error.message lze bezpečně zobrazit uživateli.
Doporučené postupy
Posílejte text po částech (například po odstavcích), ne jako jeden dlouhý dokument; výsledek je rychlejší a snáz se kontroluje.
Odpověď 429 řešte exponenciálním čekáním, ne okamžitým opakováním.
Neposílejte zbytečné osobní ani důvěrné údaje; i když je neukládáme, zásada minimalizace údajů platí.
Výstupy AI mohou být chybné; zobrazujte je jako návrh k ověření, ne jako konečnou pravdu.
Časté otázky
Mohu API používat z vlastní aplikace nebo domény?
Zatím ne. Worker v tuto chvíli neposílá hlavičky CORS a obsluhuje jen stránky adeptwrite.com. Externí přístup s klíčem API je plánován spolu s plánem Pro; dokumentaci aktualizujeme, jakmile bude skutečně dostupný.
Ukládá se text odeslaný do API?
Ne. Text se předá modelu, aby vytvořil odpověď, a pak se zahodí. Logy obsahují jen metadata, například stavový kód, název úlohy a dobu zpracování, nikdy obsah textu. Úplné podrobnosti jsou v zásadách ochrany osobních údajů.
Proč je výsledek čistý text a ne strukturovaný JSON?
Každá úloha vrací jeden hotový text bez úvodu a bloků Markdownu, aby šel rovnou zobrazit v editoru. Další struktura (například seznam změn) se plánuje do příští verze, aniž by se změnila v1.
Kolik stojí používání API?
Z webu adeptwrite.com je zdarma s limitem 30 požadavků na AI za minutu na IP adresu. Cenu externího přístupu oznámíme spolu s plánem Pro; do té doby nic neúčtujeme.
Který model moji žádost zpracuje?
Záleží na jazyce: indonéštinu a angličtinu zpracovává SEA-LION, ostatní jazyky včetně češtiny Qwen3-30B. Když je model vytížený nebo selže, odpoví další model záložního řetězce a pole model v odpovědi uvádí ten, který skutečně odpověděl.