API sənədləri

Parafraz, qrammatika yoxlama, xülasə, tərcümə və plagiat yoxlaması 56 dildə. Sadə REST, Cloudflare-in kənar şəbəkəsindən xidmət göstərir.

Eyni mənbə
API hazırda yalnız adeptwrite.com saytının öz sorğularına xidmət edir (CORS başlıqları yoxdur). Açarlarla xarici giriş Pro planla birlikdə planlaşdırılıb. Bu sənədlər müqavilə açıq olsun və ona hazırlaşa biləsiniz deyə əvvəlcədən dərc olunub.
Xülasə

AdeptWrite v1 API-sinin üç aktiv endpointi var. POST /api/v1/run task, mode, lang və text (6 000 simvola qədər) sahələri olan JSON qəbul edir və dil üçün seçilmiş Cloudflare Workers AI modelindən düz mətn nəticə qaytarır; POST /api/v1/plagiarism mətni açıq mənbələrlə tutuşdurur və baxdığı hər mənbəni sadalayır; GET /api/v1/health xidmətin vəziyyətini qaytarır. Mətn heç vaxt saxlanmır və jurnala yazılmır, süni intellekt sorğuları hər IP üçün dəqiqədə 30 ilə məhdudlaşır.

Əsaslar

  • Baza URL: https://adeptwrite.com/api/v1
  • Format: sorğular və cavablar JSON-dur (Content-Type: application/json, UTF-8).
  • Autentifikasiya: hələ yoxdur; sorğular adeptwrite.com səhifələrindən (eyni mənbədən) gəlməlidir. API açarları Pro ilə gələcək.
  • Məxfilik: text sahəsi heç vaxt saxlanmır və jurnala yazılmır; cavablarda Cache-Control: no-store olur.
  • Versiya: /v1/ yolu uyğunsuz şəkildə dəyişməyəcək; qırıcı dəyişikliklər /v2/ istifadə edəcək.

POST/api/v1/run

Mətn üzərində bir süni intellekt tapşırığı icra edir və nəticəni düz mətn kimi qaytarır (giriş sözü və Markdown blokları olmadan).

Sorğu

FieldTypeRequiredNotes
taskstring✓Tapşırığın adı; aşağıdakı tapşırıqlar siyahısına baxın.
textstring✓Giriş mətni, 1–6 000 simvol.
langstring✓Nəticənin dili: saytın 56 yerli kodundan biri (az, en, id, pt-pt, zh-hant…; pt-BR kimi BCP 47 teqləri uyğunlaşdırılır) və ya «giriş mətni ilə eyni dil» üçün auto.
modestring—Həmin alət üçün mövcud rejim, məsələn Formal, Akademik, Ringkas, Poin-poin (rejim adları reyestrdəki İndoneziya etiketləridir). Rejimi olmayan tapşırıqlarda nəzərə alınmır.
optionsobject—Tapşırığa xas seçimlər: translate üçün from / to (dəstəklənən istənilən dildən digərinə; from auto ola bilər; sr-Cyrl serbcanı kirilcə ilə istəyir), caption üçün platform (instagram / tiktok / linkedin) və bio, coverletter və meta üçün könüllü etiketli fields. Digər açarlar nəzərə alınmır.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "az",
  "text": "Düzgün yazı tələbələr üçün çox vacibdir.",
  "options": {}
}

Cavab

200 statusu, ok: true, nəticə output sahəsində, həqiqətən cavab verən model model sahəsində (ehtiyat model işə düşəndə fərqli olur) və millisaniyə ilə emal müddəti. Cavab uzunluq büdcəsinə və ya vaxt limitinə çatıb kəsilibsə, truncated: true əlavə olunur.

{
  "ok": true,
  "output": "Düzgün yazı tələbələr üçün mühüm əhəmiyyət daşıyır.",
  "model": "@cf/qwen/qwen3-30b-a3b-fp8",
  "ms": 812
}

Nümunə: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"az","text":"Mən sabah kitabxanaya getməliyəm."}'

Nümunə: 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: 'az', 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

Mətndən 4–8 fərqli ifadə seçir, mətnin dilində açıq mənbələrdə axtarır (Wikipedia, Wikisource, Internet Archive tam mətni, Europe PMC, DOAJ, arXiv; veb axtarış təchizatçısı yalnız konfiqurasiya olunubsa və istənilibsə) və üst-üstə düşməni qiymətləndirir. Serveri yalnız həmin qısa ifadələr tərk edir.

Sorğu

FieldTypeRequiredNotes
textstring✓Ən azı 30 söz, ən çox 6 000 simvol.
langstring✓Saytın yerli kodu və ya auto.
optionsobject—web: true operator konfiqurasiya edibsə, veb axtarış təchizatçısını da sorğulayır; cavabdakı webSearched onun həqiqətən cavab verib-vermədiyini göstərir.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…ən azı 30 söz…", "lang": "az", "options": { "web": false } }

Cavab

200 statusu; score (üst-üstə düşən sözlər ÷ sözlər, 0–1), hər mənbə üzrə matches və vurğulanmış passages (mətninizdə simvol mövqeləri), sourcesSearched (cavabı nəticəyə daxil olan mənbələr), səbəbi ilə sourcesSkipped və webSearched.

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

Nümunə: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"az","text":"…ən azı 30 söz…"}'

GET/api/v1/health

Hansı xidmətlərin işə salındığını bildirir. Gövdə qəbul etmir və kvotaya daxil edilmir.

Cavab

200 statusu. Süni intellekt söndürmə açarı işə düşəndə ai false olur; plagiarism yoxlayıcının sorğulaya biləcəyi mənbələri sadalayır; aidetect AI detektorunun hələ yerləşdirilməmiş server tərəfi dərin təhlilini təsvir edir (POST /api/v1/aidetect 503 disabled cavabı verir; saytdakı detektor brauzerinizdə işləyir).

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

Nümunə: curl

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

Task list

taskWhat it does
paraphraseParafraz; rejimlər: Standar, Formal, Santai, Akademik, Kreatif, Ringkas, Panjangkan (standart, rəsmi, danışıq, akademik, yaradıcı, qısa, genişləndirilmiş).
grammarQrammatika və orfoqrafiya düzəlişi.
toneTonu dəyişir; rejimlər: Formal (rəsmi), Kantor (iş üslubu), Santai (danışıq).
rewriteAğır və ya yöndəmsiz cümlələri düzəldir; rejimlər: Standar, Formal.
resizeCümlələri qısaldır və ya genişləndirir; rejimlər: Ringkas (qısalt), Panjangkan (genişləndir).
essayMaddələrdən paraqraf və ya esse qurur; rejimlər: Akademik, Kreatif, Panjangkan.
summarizeXülasə; rejimlər: Poin-poin (maddələr), Paragraf (paraqraf), Satu kalimat (bir cümlə).
translateİki dəstəklənən dil arasında tərcümə; options.from (və ya auto) və options.to; rejimlər: Alami (təbii, defolt), Formal (rəsmi), Santai (danışıq).
thesisDissertasiya mövzusu ideyaları və fəsil planı.
abstractTədqiqat xülasəsindən quruluşlu annotasiya.
captionSosial şəbəkə caption-ları; options.platform: instagram, tiktok, linkedin.
emailE-poçt və məktublar; rejimlər: Lamaran kerja (iş müraciəti), Surat resmi (rəsmi məktub), Follow-up (təqib).
headlineMəqalə başlıqları; rejimlər: Kreatif (yaradıcı), Ringkas (qısa).
productMəhsul təsvirləri; rejimlər: Marketplace (bazar platforması), Toko online (onlayn mağaza).
synonymBir söz və ya ifadə üçün sinonim siyahısı.
humanizeAğır, ümumi mətni daha təbii səsləndirir; rejimlər: Alami (təbii), Pribadi (şəxsi), Profesional (peşəkar).
metaÜç meta başlıq və təsvir cütü; rejimlər: Artikel (məqalə), Produk (məhsul), Halaman (istənilən veb səhifə).
hashtagBir sətir heşteq; rejimlər: Instagram, TikTok, LinkedIn, X.
bioÜç profil bio-su; rejimlər: Instagram, LinkedIn, X, TikTok.
outlineAlt məqamlı nömrələnmiş plan; rejimlər: Artikel (məqalə), Esai (esse), Skripsi (dissertasiya), Presentasi (təqdimat).
sloganOn sloqan ideyası; rejimlər: Merek (marka), Kampanye (kampaniya), Produk (məhsul).
paragraphMövzudan bir paraqraf; rejimlər: Pembuka (giriş), Isi (əsas hissə), Penutup (yekun).
coverletterMotivasiya məktubu qaralaması; rejimlər: Fresh graduate (yeni məzun), Berpengalaman (təcrübəli), Magang (təcrübə proqramı).
poemQısa şeirlər; rejimlər: Bebas (sərbəst), Berima (qafiyəli), Akrostik (akrostix), Haiku (hayku).

Limitlər

Mətn uzunluğu
Sorğu başına ən çox 6 000 simvol (bundan çoxda 413 too_long).
IP ünvanı üzrə
Dəqiqədə 30 sorğu.
Ümumi
Bütün xidmət üzrə dəqiqədə 100 sorğu, üstəlik süni intellekt funksiyaları üçün gündəlik limit.
Plagiat
IP başına dəqiqədə 5 yoxlama və bütün xidmət üzrə dəqiqədə 60; ən azı 30 söz.
Çıxış
Hər tapşırıq üçün uzunluq büdcəsi, heç vaxt 2 048 tokendən çox deyil; kəsilmiş cavabda truncated: true olur.
Model
Dil üzrə seçilir: ingilis və indoneziya dilləri @cf/aisingapore/gemma-sea-lion-v4-27b-it, qalan bütün dillər, o cümlədən Azərbaycan dili, @cf/qwen/qwen3-30b-a3b-fp8 üzərində işləyir. Model məşğul olduqda, limitə çatdıqda, yavaşladıqda və ya xəta verdikdə sorğu zəncirdəki növbəti modelə keçir (Qwen3-30B, sonra @cf/google/gemma-4-26b-a4b-it, sonra @cf/meta/llama-3.3-70b-instruct-fp8-fast). model sahəsi həmişə cavab verən modelin adını göstərir.

Xəta kodları

StatusKodNə vaxt baş verir
400invalid_requestYanlış JSON, çatışmayan məcburi sahə və ya naməlum task ya da lang.
413too_longtext 6 000 simvolu aşır.
403forbiddenSorğu adeptwrite.com səhifəsindən gəlməyib.
429rate_limitedIP üzrə və ya ümumi dəqiqəlik limit aşılıb. Retry-After başlığındakı saniyə qədər gözləyin.
429quota_exceededSüni intellekt funksiyaları üçün gündəlik limit tükənib. Ertəsi gün (UTC) yenidən cəhd edin.
502upstreamZəncirdəki heç bir model vaxtında cavab verə bilmədi.
502empty_outputModellər cavab verdi, lakin nəticə boş idi.
503disabledXidmət operator tərəfindən müvəqqəti söndürülüb və ya (/api/v1/aidetect üçün) hələ yerləşdirilməyib.

Xəta formatı

Hər xəta uyğun HTTP status kodu ilə və eyni quruluşda JSON kimi qaytarılır:

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

Əvvəlcə ok sahəsini yoxlayın, proqram idarəsi üçün isə error.code oxuyun; error.message istifadəçilərə göstərmək üçün təhlükəsizdir.

Tövsiyə olunan təcrübə

  • Mətni uzun sənəd kimi yox, hissə-hissə (məsələn, paraqraf-paraqraf) göndərin; nəticə daha tez gəlir və yoxlamaq asan olur.
  • 429 cavabına dərhal təkrar sorğu ilə yox, eksponensial gözləmə ilə cavab verin.
  • Lazım olmayan şəxsi və ya məxfi məlumat göndərməyin: biz onu saxlamasaq da, məlumatın minimuma endirilməsi prinsipi qüvvədədir.
  • Süni intellekt nəticəsi yanlış ola bilər; onu yekun həqiqət kimi yox, yoxlanmalı təklif kimi təqdim edin.

Tez-tez verilən suallar

API-ni öz tətbiqimdən və ya domenimdən çağıra bilərəmmi?

Hələ yox. Worker hazırda CORS başlıqları göndərmir və yalnız adeptwrite.com səhifələrinə xidmət edir. Açarlarla xarici giriş Pro planla birlikdə planlaşdırılıb; mövcud olduqda bu sənədlər yenilənəcək.

API-yə göndərilən mətn saxlanırmı?

Xeyr. Mətn cavabı hazırlamaq üçün modelə ötürülür və sonra atılır. Jurnallarda yalnız metaməlumat (status kodu, tapşırıq, müddət) olur. Bütün təfərrüatlar üçün məxfilik siyasətinə baxın.

Nəticə niyə strukturlu JSON yox, düz mətndir?

Hər tapşırıq giriş sözü və Markdown blokları olmadan bir hazır mətn çıxarır ki, redaktorda birbaşa göstərilsin. Əlavə struktur (məsələn, dəyişikliklər siyahısı) v1 dəyişmədən sonrakı versiya üçün planlaşdırılıb.

API neçəyə başa gəlir?

adeptwrite.com saytından istifadə pulsuzdur, hər IP üçün dəqiqədə 30 süni intellekt sorğusu ilə məhdudlaşır. Xarici giriş qiymətləri Pro planla birlikdə elan olunacaq; o vaxta qədər heç nə tutulmur.

Sorğuma hansı model cavab verir?

Dildən asılıdır: ingilis və indoneziya dilləri SEA-LION modelinə, digər dillər, o cümlədən Azərbaycan dili, Qwen3-30B modelinə gedir. Həmin model məşğuldursa və ya xəta verirsə, ehtiyat zəncirindəki növbəti model cavab verir və cavabın model sahəsi onun adını göstərir.