Παράφραση, έλεγχος γραμματικής, περιλήψεις, μετάφραση και έλεγχος λογοκλοπής σε 56 γλώσσες, μέσω απλού REST από το edge του Cloudflare.
Same-origin
Προς το παρόν το API εξυπηρετεί μόνο αιτήματα από το ίδιο το adeptwrite.com (χωρίς κεφαλίδες CORS). Η εξωτερική πρόσβαση με κλειδιά API προγραμματίζεται μαζί με το πακέτο Pro. Η τεκμηρίωση δημοσιεύεται νωρίς, ώστε το συμβόλαιο να είναι ανοιχτό και να προετοιμαστείτε.
Περίληψη
Το API v1 του AdeptWrite έχει τρία ενεργά endpoints. Το POST /api/v1/run δέχεται JSON με task, mode, lang και text (έως 6.000 χαρακτήρες) και επιστρέφει απλό κείμενο από μοντέλο του Cloudflare Workers AI που επιλέγεται ανά γλώσσα· το POST /api/v1/plagiarism συγκρίνει ένα κείμενο με ανοιχτές πηγές και απαριθμεί κάθε πηγή που αναζήτησε· το GET /api/v1/health επιστρέφει την κατάσταση της υπηρεσίας. Το κείμενο δεν αποθηκεύεται ούτε καταγράφεται, και τα αιτήματα AI περιορίζονται σε 30 ανά λεπτό ανά IP.
Βασικά
Base URL:https://adeptwrite.com/api/v1
Μορφή: τα αιτήματα και οι απαντήσεις είναι JSON (Content-Type: application/json, UTF-8).
Ταυτοποίηση: προς το παρόν καμία· τα αιτήματα πρέπει να προέρχονται από σελίδες του adeptwrite.com (same-origin). Τα κλειδιά API έρχονται με το Pro.
Απόρρητο: το πεδίο text δεν αποθηκεύεται ούτε καταγράφεται· οι απαντήσεις φέρουν Cache-Control: no-store.
Εκδόσεις: η διαδρομή /v1/ δεν θα αλλάξει με μη συμβατό τρόπο· οι ανατρεπτικές αλλαγές θα χρησιμοποιήσουν το /v2/.
POST/api/v1/run
Εκτελεί μία εργασία AI σε ένα κείμενο και επιστρέφει το αποτέλεσμα ως απλό κείμενο (χωρίς προοίμιο, χωρίς μπλοκ Markdown).
Αίτημα
Field
Type
Required
Notes
task
string
✓
Όνομα εργασίας· δείτε τη λίστα εργασιών παρακάτω.
text
string
✓
Κείμενο εισόδου, 1–6.000 χαρακτήρες.
lang
string
✓
Γλώσσα του αποτελέσματος: ένας από τους 56 κωδικούς γλώσσας του ιστότοπου (el, en, id, pt-pt, zh-hant…· οι ετικέτες BCP 47, όπως pt-BR, αντιστοιχίζονται) ή auto για «την ίδια γλώσσα με την είσοδο».
mode
string
—
Μια λειτουργία διαθέσιμη για το εργαλείο, π.χ. Formal, Akademik, Ringkas, Poin-poin (τα ονόματα των modes είναι οι ινδονησιακές ετικέτες του μητρώου). Αγνοείται σε εργασίες χωρίς modes.
options
object
—
Επιλογές ανά εργασία: from / to για το translate (οποιαδήποτε υποστηριζόμενη γλώσσα σε οποιαδήποτε άλλη· το from μπορεί να είναι auto· το sr-Cyrl ζητά σερβικά σε κυριλλικό αλφάβητο), platform (instagram / tiktok / linkedin) για το caption, και προαιρετικά επώνυμα fields για τα bio, coverletter και meta. Τα υπόλοιπα κλειδιά αγνοούνται.
POST /api/v1/run HTTP/1.1
Content-Type: application/json
{
"task": "paraphrase",
"mode": "Formal",
"lang": "el",
"text": "Η καλή γραφή είναι πολύ σημαντική για τους φοιτητές.",
"options": {}
}
Απάντηση
Κατάσταση 200 με ok: true, το αποτέλεσμα στο output, το μοντέλο που απάντησε πραγματικά στο model (διαφέρει όταν παρεμβαίνει εφεδρικό μοντέλο) και τον χρόνο επεξεργασίας σε χιλιοστά του δευτερολέπτου. Το truncated: true προστίθεται όταν η απάντηση έφτασε στο όριο μήκους ή χρόνου και κόπηκε.
{
"ok": true,
"output": "Η ποιότητα της γραφής είναι ουσιώδης για τους φοιτητές.",
"model": "@cf/qwen/qwen3-30b-a3b-fp8",
"ms": 812
}
Παράδειγμα: curl
curl -X POST https://adeptwrite.com/api/v1/run \
-H "Content-Type: application/json" \
-d '{"task":"grammar","lang":"el","text":"Θα πάμε αύριο στην βιβλιοθήκη."}'
Παράδειγμα: 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: 'el', 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
Επιλέγει 4–8 χαρακτηριστικές φράσεις από το κείμενο, αναζητά σε ανοιχτές πηγές στη γλώσσα του κειμένου (Wikipedia, Wikisource, πλήρες κείμενο Internet Archive, Europe PMC, DOAJ, arXiv· πάροχο αναζήτησης ιστού μόνο όταν έχει ρυθμιστεί και ζητηθεί) και βαθμολογεί την επικάλυψη. Μόνο αυτές οι σύντομες φράσεις φεύγουν από τον διακομιστή.
Αίτημα
Field
Type
Required
Notes
text
string
✓
Τουλάχιστον 30 λέξεις, το πολύ 6.000 χαρακτήρες.
lang
string
✓
Ένας κωδικός γλώσσας του ιστότοπου ή auto.
options
object
—
Το web: true ρωτά επιπλέον τον πάροχο αναζήτησης ιστού όταν ο διαχειριστής έχει ρυθμίσει έναν· το webSearched στην απάντηση δείχνει αν πράγματι απάντησε.
Κατάσταση 200 με score (λέξεις που ταιριάζουν ÷ λέξεις, 0–1), matches ανά πηγή με επισημασμένα passages (θέσεις χαρακτήρων στο κείμενό σας), sourcesSearched (ακριβώς οι πηγές των οποίων οι απαντήσεις περιλαμβάνονται στο αποτέλεσμα), sourcesSkipped με αιτιολογία και webSearched.
Αναφέρει ποιες υπηρεσίες είναι ενεργές. Δεν έχει σώμα και δεν προσμετράται στην ποσόστωση.
Απάντηση
Κατάσταση 200. Το ai είναι false όσο ο διακόπτης έκτακτης ανάγκης του AI είναι ενεργός· το plagiarism απαριθμεί τις πηγές που μπορεί να ρωτήσει ο έλεγχος· το aidetect περιγράφει τη βαθύτερη ανάλυση του ανιχνευτή AI στον διακομιστή, η οποία δεν έχει ακόμη αναπτυχθεί (το POST /api/v1/aidetect απαντά 503 disabled· ο ανιχνευτής του ιστότοπου τρέχει στον browser σας).
Διόρθωση άκαμπτων ή αδέξιων προτάσεων· modes: Standar, Formal.
resize
Σύντμηση ή επέκταση προτάσεων· modes: Ringkas, Panjangkan.
essay
Δημιουργία παραγράφων ή έκθεσης από σημειώσεις· modes: Akademik, Kreatif, Panjangkan.
summarize
Περίληψη· modes: Poin-poin (κουκκίδες), Paragraf (παράγραφος), Satu kalimat (μία πρόταση).
translate
Μετάφραση μεταξύ οποιωνδήποτε δύο υποστηριζόμενων γλωσσών· options.from (ή auto) και options.to· modes: Alami (φυσικό, προεπιλογή), Formal, Santai (ανεπίσημο).
thesis
Ιδέες τίτλου διπλωματικής και διάγραμμα κεφαλαίων.
abstract
Δομημένο abstract από περίληψη έρευνας.
caption
Λεζάντες για social media· options.platform: instagram, tiktok, linkedin.
email
Email και επιστολές· modes: Lamaran kerja (αίτηση εργασίας), Surat resmi (επίσημη επιστολή), Follow-up.
Σύντομα ποιήματα· modes: Bebas (ελεύθερος στίχος), Berima (ομοιοκατάληκτο), Akrostik, Haiku.
Όρια
Μήκος κειμένου
Το πολύ 6.000 χαρακτήρες ανά αίτημα (413 too_long πάνω από αυτό).
Ανά διεύθυνση IP
30 αιτήματα ανά λεπτό.
Συνολικά
100 αιτήματα ανά λεπτό σε ολόκληρη την υπηρεσία, συν ένα ημερήσιο όριο για τις λειτουργίες AI.
Λογοκλοπή
5 έλεγχοι ανά λεπτό ανά IP και 60 ανά λεπτό σε ολόκληρη την υπηρεσία· ελάχιστο 30 λέξεις.
Έξοδος
Προϋπολογισμός μήκους ανά εργασία, ποτέ πάνω από 2.048 tokens· μια απάντηση που κόπηκε φέρει truncated: true.
Μοντέλο
Επιλέγεται ανά γλώσσα: τα αγγλικά και τα ινδονησιακά τρέχουν στο @cf/aisingapore/gemma-sea-lion-v4-27b-it, κάθε άλλη γλώσσα, μαζί με τα ελληνικά, στο @cf/qwen/qwen3-30b-a3b-fp8. Όταν ένα μοντέλο είναι κατειλημμένο, περιορισμένο, αργό ή αποτύχει, το αίτημα περνά στο επόμενο μοντέλο της αλυσίδας (Qwen3-30B, μετά @cf/google/gemma-4-26b-a4b-it, μετά @cf/meta/llama-3.3-70b-instruct-fp8-fast). Το πεδίο model δείχνει πάντα το μοντέλο που απάντησε.
Κωδικοί σφάλματος
Κατάσταση
Κωδικός
Πότε συμβαίνει
400
invalid_request
Μη έγκυρο JSON, λείπει υποχρεωτικό πεδίο ή άγνωστο task ή lang.
413
too_long
Το text υπερβαίνει τους 6.000 χαρακτήρες.
403
forbidden
Το αίτημα δεν προήλθε από σελίδα του adeptwrite.com.
429
rate_limited
Ξεπεράστηκε το όριο ανά λεπτό ανά IP ή το γενικό όριο. Περιμένετε όσα δευτερόλεπτα δείχνει το Retry-After.
429
quota_exceeded
Το ημερήσιο όριο για τις λειτουργίες AI εξαντλήθηκε. Δοκιμάστε την επόμενη ημέρα (UTC).
502
upstream
Κανένα μοντέλο της αλυσίδας δεν απάντησε εγκαίρως.
502
empty_output
Τα μοντέλα απάντησαν, αλλά με κενό αποτέλεσμα.
503
disabled
Η υπηρεσία έχει απενεργοποιηθεί προσωρινά από τον διαχειριστή ή (για το /api/v1/aidetect) δεν έχει ακόμη αναπτυχθεί.
Μορφή σφαλμάτων
Κάθε σφάλμα επιστρέφεται ως JSON με τον αντίστοιχο κωδικό κατάστασης HTTP και την ίδια δομή:
{ "ok": false, "error": { "code": "rate_limited", "message": "Too many requests. Please try again shortly." } }
Ελέγχετε πρώτα το ok και διαβάζετε το error.code για προγραμματιστική διαχείριση· το error.message είναι ασφαλές να εμφανιστεί στους χρήστες.
Συνιστώμενες πρακτικές
Στέλνετε το κείμενο τμηματικά (για παράδειγμα ανά παράγραφο) και όχι ως ένα μακρύ έγγραφο· τα αποτελέσματα επιστρέφουν πιο γρήγορα και ελέγχονται ευκολότερα.
Αντιμετωπίστε το 429 με εκθετική αναμονή (exponential back-off), όχι με άμεσες επαναλήψεις.
Μην στέλνετε προσωπικά ή εμπιστευτικά δεδομένα που δεν χρειάζεστε· ακόμη και αν δεν τα αποθηκεύουμε, ισχύει η αρχή της ελαχιστοποίησης δεδομένων.
Το αποτέλεσμα του AI μπορεί να είναι λανθασμένο· παρουσιάστε το ως πρόταση προς έλεγχο και όχι ως οριστική αλήθεια.
Συχνές ερωτήσεις
Μπορώ να καλέσω το API από τη δική μου εφαρμογή ή τον δικό μου τομέα;
Όχι ακόμη. Ο Worker δεν στέλνει προς το παρόν κεφαλίδες CORS και εξυπηρετεί μόνο σελίδες του adeptwrite.com. Η εξωτερική πρόσβαση με κλειδιά API προγραμματίζεται μαζί με το πακέτο Pro· η τεκμηρίωση θα ενημερωθεί όταν γίνει διαθέσιμη.
Αποθηκεύεται το κείμενο που στέλνεται στο API;
Όχι. Το κείμενο προωθείται στο μοντέλο για να παραχθεί η απάντηση και στη συνέχεια απορρίπτεται. Τα logs περιέχουν μόνο μεταδεδομένα (κωδικό κατάστασης, εργασία, διάρκεια). Όλες οι λεπτομέρειες βρίσκονται στην [πολιτική απορρήτου](/el/privacy/).
Γιατί η έξοδος είναι απλό κείμενο και όχι δομημένο JSON;
Κάθε εργασία παράγει ένα έτοιμο προς χρήση κείμενο, χωρίς προοίμιο ή μπλοκ Markdown, ώστε να εμφανίζεται απευθείας στον επεξεργαστή. Πρόσθετη δομή (για παράδειγμα λίστα αλλαγών) προγραμματίζεται για μεταγενέστερη έκδοση χωρίς να αλλάξει το v1.
Πόσο κοστίζει το API;
Από το adeptwrite.com είναι δωρεάν, με όριο 30 αιτήματα AI ανά λεπτό ανά IP. Οι τιμές για την εξωτερική πρόσβαση θα ανακοινωθούν με το πακέτο Pro· μέχρι τότε δεν χρεώνεται τίποτα.
Ποιο μοντέλο απαντά στο αίτημά μου;
Εξαρτάται από τη γλώσσα: τα αγγλικά και τα ινδονησιακά πηγαίνουν στο SEA-LION, οι υπόλοιπες γλώσσες, μαζί με τα ελληνικά, στο Qwen3-30B. Αν το μοντέλο είναι κατειλημμένο ή αποτύχει, απαντά το επόμενο μοντέλο της εφεδρικής αλυσίδας, και το πεδίο model της απάντησης δείχνει ποιο απάντησε.
Δημοσιεύεται από τη Συντακτική Ομάδα του AdeptWrite