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.