API dokümantasyonu

56 dilde paraphrase, dil bilgisi kontrolü, özet, çeviri ve intihal kontrolü. Cloudflare'in uç ağından sunulan sade bir REST API.

Aynı kaynak
API şu anda yalnızca adeptwrite.com'un kendisinden gelen isteklere hizmet verir (CORS başlığı yok). API anahtarlarıyla dış erişim Pro planla birlikte planlanıyor. Sözleşme açık olsun ve hazırlık yapabilesiniz diye bu doküman erken yayımlandı.
Özet

AdeptWrite v1 API'sinin üç canlı uç noktası vardır. POST /api/v1/run; task, mode, lang ve text (en fazla 6.000 karakter) alanlı bir JSON alır ve dile göre seçilen bir Cloudflare Workers AI modelinden düz metin çıktı döndürür. POST /api/v1/plagiarism bir metni açık kaynaklarla karşılaştırır ve taradığı her kaynağı listeler. GET /api/v1/health hizmet durumunu verir. Metin asla saklanmaz ya da günlüğe yazılmaz; yapay zeka istekleri IP başına dakikada 30 ile sınırlıdır.

Temel bilgiler

  • Temel URL: https://adeptwrite.com/api/v1
  • Biçim: istekler ve yanıtlar JSON'dur (Content-Type: application/json, UTF-8).
  • Kimlik doğrulama: henüz yok; istekler adeptwrite.com sayfalarından gelmelidir (aynı kaynak). API anahtarları Pro ile gelecek.
  • Gizlilik: text alanı asla saklanmaz ya da günlüğe yazılmaz; yanıtlar Cache-Control: no-store taşır.
  • Sürümleme: /v1/ yolu uyumsuz biçimde değişmeyecek; uyumsuz değişiklikler /v2/ kullanacak.

POST/api/v1/run

Bir metin üzerinde tek bir yapay zeka görevi çalıştırır ve sonucu düz metin olarak döndürür (giriş cümlesi ve Markdown çiti yok).

İstek

FieldTypeRequiredNotes
taskstring✓Görev adı; aşağıdaki görev listesine bakın.
textstring✓Girdi metni, 1–6.000 karakter.
langstring✓Sonucun dili: sitenin 56 yerel ayar kodundan biri (tr, en, id, ja, pt-pt, zh-hant…; pt-BR gibi BCP 47 etiketleri eşlenir) ya da "girdiyle aynı dil" için auto.
modestring—O araç için geçerli bir mod, örneğin Formal, Akademik, Ringkas, Poin-poin (mod adları kayıt defterindeki Endonezyaca etiketlerdir; sayfalarda Türkçe karşılıkları görünür). Modu olmayan görevlerde yok sayılır.
optionsobject—Göreve özgü seçenekler: translate için from / to (desteklenen herhangi bir dilden diğerine; from auto olabilir; sr-Cyrl Sırpçayı Kiril yazısıyla ister), caption için platform (instagram / tiktok / linkedin) ve bio, coverletter ile meta için isteğe bağlı etiketli fields. Diğer anahtarlar yok sayılır.
POST /api/v1/run HTTP/1.1
Content-Type: application/json

{
  "task": "paraphrase",
  "mode": "Formal",
  "lang": "tr",
  "text": "Öğrenciler için iyi yazmak gerçekten önemli.",
  "options": {}
}

Yanıt

200 durum kodu ve ok: true; sonuç output alanında, gerçekten yanıt veren model model alanında (yedek model devreye girdiyse farklıdır) ve işlem süresi milisaniye olarak döner. Yanıt uzunluk bütçesine ya da zaman sınırına takılıp kesildiğinde truncated: true eklenir.

{
  "ok": true,
  "output": "Yazı kalitesi öğrenciler için çok önemlidir.",
  "model": "@cf/aisingapore/gemma-sea-lion-v4-27b-it",
  "ms": 812
}

Örnek: curl

curl -X POST https://adeptwrite.com/api/v1/run \
  -H "Content-Type: application/json" \
  -d '{"task":"grammar","lang":"tr","text":"Yarın kütüphaneye gideceğim ama herşeyi unuttum."}'

Örnek: 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: 'tr', 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

Metinden 4–8 ayırt edici ifade seçer, bunları metnin dilindeki açık kaynaklarda arar (Wikipedia, Wikisource, Internet Archive tam metin, Europe PMC, DOAJ, arXiv; web arama sağlayıcısı yalnızca yapılandırılmışsa ve istenmişse) ve örtüşmeyi puanlar. Sunucudan yalnızca bu kısa ifadeler çıkar.

İstek

FieldTypeRequiredNotes
textstring✓En az 30 sözcük, en fazla 6.000 karakter.
langstring✓Bir site yerel ayar kodu ya da auto.
optionsobject—web: true, işletici bir web arama sağlayıcısı yapılandırmışsa onu da sorgular; yanıttaki webSearched alanı sağlayıcının gerçekten yanıt verip vermediğini söyler.
POST /api/v1/plagiarism HTTP/1.1
Content-Type: application/json

{ "text": "…en az 30 sözcük…", "lang": "tr", "options": { "web": false } }

Yanıt

200 durum kodu; score (eşleşen sözcük ÷ sözcük, 0–1), kaynak başına vurgulanmış passages içeren matches (metninizdeki karakter konumları), sourcesSearched (yanıtları sonuca yansıyan kaynakların tam listesi), gerekçeli sourcesSkipped ve webSearched alanları döner.

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

Örnek: curl

curl -X POST https://adeptwrite.com/api/v1/plagiarism \
  -H "Content-Type: application/json" \
  -d '{"lang":"tr","text":"…en az 30 sözcük…"}'

GET/api/v1/health

Hangi hizmetlerin açık olduğunu bildirir. Gövde almaz ve kotaya sayılmaz.

Yanıt

200 durum kodu. Yapay zeka acil kapatma anahtarı açıkken ai false olur; plagiarism denetleyicinin sorgulayabildiği kaynakları listeler; aidetect, yapay zeka tespitinin henüz yayına alınmamış sunucu tarafı derin analizini tanımlar (POST /api/v1/aidetect 503 disabled yanıtı verir; sitedeki tespit aracı tarayıcınızda çalışır).

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

Örnek: curl

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

Task list

taskWhat it does
paraphraseParaphrase; modlar: Standar, Formal, Santai, Akademik, Kreatif, Ringkas, Panjangkan.
grammarDil bilgisi ve yazım düzeltme (Türkçe için TDK Yazım Kılavuzu esas alınır).
toneTon değiştirme; modlar: Formal (resmi), Kantor (iş yazışması), Santai (samimi).
rewriteKulağa tuhaf ya da sert gelen cümleleri düzeltme; modlar: Standar, Formal.
resizeCümleleri kısaltma ya da uzatma; modlar: Ringkas (kısalt), Panjangkan (uzat).
essayMaddelerden paragraf ya da kompozisyon oluşturma; modlar: Akademik, Kreatif, Panjangkan.
summarizeÖzet; modlar: Poin-poin (madde madde), Paragraf, Satu kalimat (tek cümle).
translateDesteklenen herhangi iki dil arasında çeviri; options.from (ya da auto) ve options.to; modlar: Alami (doğal, varsayılan), Formal (resmi), Santai (samimi).
thesisTez konusu fikirleri ve bölüm taslağı.
abstractAraştırma özetinden yapılandırılmış abstract.
captionSosyal medya açıklamaları (caption); options.platform: instagram, tiktok, linkedin.
emailE-postalar ve yazılar; modlar: Lamaran kerja (iş başvurusu), Surat resmi (resmi yazı), Follow-up (takip e-postası).
headlineMakale başlıkları; modlar: Kreatif (yaratıcı), Ringkas (kısa).
productÜrün açıklamaları; modlar: Marketplace (pazaryeri), Toko online (e-ticaret sitesi).
synonymTek bir sözcük ya da ifade için eş anlamlı liste.
humanizeSert ve kalıp metni daha doğal okunur hâle getirme; modlar: Alami (doğal), Pribadi (kişisel), Profesional.
metaÜç meta başlık ve açıklama çifti; modlar: Artikel (makale), Produk (ürün), Halaman (herhangi bir web sayfası).
hashtagTek satırlık hashtag listesi; modlar: Instagram, TikTok, LinkedIn, X.
bioÜç profil biyografisi; modlar: Instagram, LinkedIn, X, TikTok.
outlineAlt maddeli numaralı taslak; modlar: Artikel (makale), Esai (kompozisyon), Skripsi (tez), Presentasi (sunum).
sloganOn slogan fikri; modlar: Merek (marka), Kampanye (kampanya), Produk (ürün).
paragraphBir konudan tek paragraf; modlar: Pembuka (giriş), Isi (gelişme), Penutup (sonuç).
coverletterÖn yazı (cover letter) taslağı; modlar: Fresh graduate (yeni mezun), Berpengalaman (deneyimli), Magang (staj).
poemKısa şiirler; modlar: Bebas (serbest), Berima (uyaklı), Akrostik, Haiku.

Sınırlar

Metin uzunluğu
İstek başına en fazla 6.000 karakter (üstünde 413 too_long).
IP adresi başına
Dakikada 30 istek.
Genel
Tüm hizmet için dakikada 100 istek ve ayrıca yapay zeka özellikleri için günlük bir üst sınır.
İntihal
IP başına dakikada 5, tüm hizmette dakikada 60 kontrol; en az 30 sözcük.
Çıktı
Görev başına bir uzunluk bütçesi, hiçbir zaman 2.048 token'dan fazla değil; kesilen yanıt truncated: true taşır.
Model
Dile göre seçilir: İngilizce ve Endonezyaca @cf/aisingapore/gemma-sea-lion-v4-27b-it üzerinde, Türkçe dahil diğer tüm diller @cf/qwen/qwen3-30b-a3b-fp8 üzerinde çalışır. Bir model meşgulse, hız sınırına takılmışsa, yavaşsa ya da hata verirse istek zincirdeki sonraki modele geçer (Qwen3-30B, sonra @cf/google/gemma-4-26b-a4b-it, sonra @cf/meta/llama-3.3-70b-instruct-fp8-fast). model alanı her zaman yanıtı veren modeli gösterir.

Hata kodları

DurumKodNe zaman olur
400invalid_requestGeçersiz JSON, eksik zorunlu alan ya da bilinmeyen task veya lang.
413too_longtext 6.000 karakteri aşıyor.
403forbiddenİstek bir adeptwrite.com sayfasından gelmedi.
429rate_limitedIP başına ya da genel dakikalık sınır aşıldı. Retry-After içindeki saniye kadar bekleyin.
429quota_exceededYapay zeka özellikleri için günlük üst sınır doldu. Ertesi gün (UTC) yeniden deneyin.
502upstreamZincirdeki hiçbir model zamanında yanıt veremedi.
502empty_outputModeller yanıt verdi ama sonuç boş.
503disabledHizmet işletici tarafından geçici olarak kapatıldı ya da (/api/v1/aidetect için) henüz yayına alınmadı.

Hata biçimi

Her hata, uygun HTTP durum koduyla ve aynı biçimde JSON olarak döner:

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

Önce ok alanına bakın, programatik işlem için error.code alanını okuyun; error.message kullanıcılara gösterilebilir (İngilizce metindir).

Önerilen kullanım

  • Metni tek uzun belge yerine parçalar hâlinde (örneğin paragraf paragraf) gönderin; sonuçlar daha hızlı gelir ve gözden geçirmesi kolaydır.
  • 429 yanıtını anında yeniden denemeyle değil, üstel geri çekilmeyle karşılayın.
  • Göndermeniz gerekmeyen kişisel ya da gizli verileri göndermeyin; biz saklamasak da veri en azlaştırması geçerlidir.
  • Yapay zeka çıktısı yanlış olabilir; onu kesin gerçek olarak değil, gözden geçirilecek bir öneri olarak sunun.

Sık sorulan sorular

API'yi kendi uygulamamdan ya da alan adımdan çağırabilir miyim?

Henüz hayır. Worker şu anda CORS başlığı göndermez ve yalnızca adeptwrite.com sayfalarına hizmet verir. API anahtarlarıyla dış erişim Pro planla birlikte planlanıyor; erişim açıldığında bu doküman güncellenecek.

API'ye gönderilen metin saklanıyor mu?

Hayır. Metin yanıtı üretmek için modele iletilir, sonra atılır. Günlükler yalnızca üst veri içerir (durum kodu, görev, süre). Tüm ayrıntılar için gizlilik politikasına bakın.

Çıktı neden yapılandırılmış JSON değil de düz metin?

Her görev, giriş cümlesi ve Markdown çiti olmadan, doğrudan editörde gösterilebilecek tek bir hazır metin üretir. Ek yapı (örneğin değişiklik listesi), v1 değiştirilmeden ileri bir sürümde planlanıyor.

API ne kadar tutuyor?

adeptwrite.com üzerinden ücretsizdir ve IP başına dakikada 30 yapay zeka isteğiyle sınırlıdır. Dış erişimin fiyatı Pro planla birlikte duyurulacak; o zamana kadar hiçbir ücret alınmaz.

İsteğimi hangi model yanıtlıyor?

Dile bağlıdır: İngilizce ve Endonezyaca SEA-LION'a, Türkçe dahil diğer diller Qwen3-30B'ye gider. O model meşgulse ya da hata verirse yedek zincirdeki sonraki model yanıt verir ve yanıttaki model alanı bunu gösterir.