API
The same JSON API the site runs on, usable from scripts. Create a key on your account page and send it as a bearer token — the key acts as your account: same credits, same free-tier limits, same books showing up on your dashboard.
Let your AI do it
The fastest way to use the API is to not read it at all: paste this into Claude, ChatGPT, or any AI agent that can make HTTP requests, fill in the placeholders, and it will walk the whole flow for you. The machine-readable instructions live at ebookdone.com/llms.txt.
Create a book for me on ebookdone. Read https://ebookdone.com/llms.txt and follow it exactly — it documents the full API flow (create → outline → generate → covers → export). My ebookdone API key: ebk_PASTE_YOUR_KEY_HERE My author name: PASTE_YOUR_NAME The book I want: DESCRIBE YOUR IDEA, AUDIENCE, AND TONE HERE Show me the outline for approval before writing the full book, and ask me before spending a credit.
Authentication
Authorization: Bearer ebk_your_key_here
All endpoints are under https://ebookdone.com/api. Requests and responses are JSON.
Keys can be revoked any time on your account page.
The flow
A book goes idea → outline → generation → cover → export. Each step is one call:
1. Create a book
POST /api/books
{"topic": "A beginner guide to backyard beekeeping…",
"audience": "first-time beekeepers", // optional
"tone": "practical, friendly", // optional
"language": "English", // optional, default auto-detect
"authorName": "Your Name"}
→ {"id": "…"} Free accounts can hold two draft books; each unlocked (generated) book needs a credit. Topic is the idea in your own words — the outline step turns it into a title, subtitle, and chapter plan.
2. Generate the outline
POST /api/books/{id}/outline → {"outline": {…}} 3. Edit and save the outline
PUT /api/books/{id}/outline
{"outline": {…}, // the outline from step 2, edited as you like
"title": "Exact Title", // optional overrides
"subtitle": "…",
"authorName": "…"} 4. Write the full book
POST /api/books/{id}/generate
{"unlock": true} // spends 1 credit the first time
→ {"jobId": "…", "mode": "full"} Without unlock (or credits) this writes chapter 1 and a watermarked preview only.
Generation runs in the background — poll status below, or watch the book page.
5. Generate cover options
POST /api/books/{id}/covers → {"jobId": "…"}
GET /api/books/{id}/covers → {"covers": [{"id", "selected", "imageUrl"}, …]}
POST /api/books/{id}/covers/{cid}/select Pick your favorite — on the book page or by API — before exporting; exports use the selected cover.
6. Check progress
GET /api/books/{id}/status
→ {"status": "generating", "chapters": […], "job": {"pct": 42, …}} 7. Build and download the files
POST /api/books/{id}/export
{"kinds": ["pdf_print", "pdf_cover_wrap", "pdf_ebook", "epub", "docx"]}
GET /api/books/{id}/download/{kind} // streams the file once built Everything else
GET /api/books lists your books. The KDP metadata pack (description, keywords,
categories, pricing suggestions) regenerates automatically with every full export and is on the
book page, ready for the KDP Filler extension.
Endpoints are rate-limited per account (book creation, outlines, exports). Please keep it to a few books at a time — generation is heavyweight.