Developers · Beta
Ebrato API
Get a key
Create a free account, open your dashboard and create a key under "API keys". The key is shown once, so copy it then. You can have up to 5 keys and revoke any of them at any time. Keep keys on your server, never in a web page or an app you ship.
Authorization: Bearer eb_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
A key acts as you: it uses your plan and your daily allowance, the same as the website. A wrong or revoked key returns 401; it is never treated as a guest.
Limits
One daily allowance, shared by the website and the API, over a rolling 24 hours. A failed call is not counted.
| Plan | Deep scans | Rewrites | Text tools | Words per text tool call |
|---|---|---|---|---|
| Free | 10 / day | 5 / day (up to 600 words) | 25 / day | 1,500 |
| Pro (coming soon) | 200 / day | 60 / day (up to 2,500 words) | 300 / day | 5,000 |
There is also a short-burst limit per IP address and per account. Over it you get 429 with a Retry-After header (seconds). When our AI is busy you get 429 too; wait and retry. Quick scans of the detector are always returned even when the deep scan is used up.
Endpoints
/api/detectScores text for how AI-written it reads. At least 40 words, up to 20,000 characters.
curl https://ebrato.com/api/detect \
-H "Authorization: Bearer $EBRATO_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Paste at least forty words here..."}'Returns score (0 to 100, higher = more AI-like), verdict, confidence (low, medium, high), mode (deep or quick; quick means the allowance ran out or the deep scan was unavailable, see notice), sentences with a score and flags each, reasons, strongest signals, and deepScansLeft. The score is a signal, not proof.
/api/humanizeRewrites text to read less like AI. 20 words minimum.
curl https://ebrato.com/api/humanize \
-H "Authorization: Bearer $EBRATO_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "...", "tone": "casual", "strength": "standard"}'tone: standard, casual, academic, simple, persuasive. strength: light, standard, deep. Returns output, plus before and after with our AI score for each, and rewritesLeft. We do not promise any detector will pass the result.
/api/tools/{tool}The AI text tools. Send text and the tool's options (all optional, with defaults). Returns output (and changes for the grammar checker) and left.
curl https://ebrato.com/api/tools/ai-translator \
-H "Authorization: Bearer $EBRATO_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Please confirm the meeting.", "options": {"to": "Hindi"}}'paraphraser: AI Paraphraser. Options: mode (standard, fluent, formal, simple, creative, shorter, longer).grammar-checker: AI Grammar Check. Options: variant (us, uk, in).summarizer: AI Summarizer. Options: length (short, medium, long); format (paragraph, bullets).ai-translator: AI Translator. Options: to (26 languages).ai-email-helper: AI Email Helper. Options: kind (reply, followup, request, outreach, thanks, apology, decline, announcement); tone (professional, friendly, formal, direct); language (26 languages).
/api/dictionary?word=brightDefinitions, synonyms, antonyms and examples from Princeton WordNet. No key needed; limited per IP address (60 per 10 minutes).
Errors
Errors are JSON: {"error": "A plain-English message"}.
400bad input (too short, too long, unknown option).401the key is missing, wrong or revoked.429too fast, daily allowance used up, or our AI is busy. Read the message andRetry-After.502or503the AI did not finish or is temporarily unavailable. Safe to retry; the call was not counted.
Good to know
- Your text is processed to answer the request and is not stored. See the privacy policy.
- Calls can take 5 to 30 seconds (the AI is doing real work). Set a timeout of at least 120 seconds.
- This is a beta with no uptime promise. Need more volume? Tell us at connect@startuptalky.com.