Developers

Build on Bookery.

A read-only public API, dynamic OG images, RSS feeds, oEmbed, and an embeddable book card. Everything you need to link Bookery into your own apps and pages.

Quick start

Three minutes to your first call

Step 1·

Get a PAT

Open /writer/api-keys and generate a Personal Access Token. You'll see the raw value once — store it like a password.

Step 2·

Hit /v1/me

Test the token with a curl command. If it 200s, you're set.

Step 3·

Build

Catalog endpoints (books, authors, chapters) are open without a PAT. /v1/me needs one.

curl -H "Authorization: Bearer bky_<your_token>" \
     https://bookery-inc.vercel.app/api/v1/me

Sandbox

Try a real call

Pick an endpoint, fill in params, hit Send. Open-read endpoints work without a token; /v1/me needs one from your signed-in account. Sandbox calls are unbilled and tightly rate-limited; copied curl commands and requests from your app use API credits.

Try it

Read-only · rate-limited · sandbox calls are unbilled
Open read

Paginated list of published books. No token needed.

GET/api/v1/books

API reference

Endpoints

GET/api/v1/books

List published books, paginated.

open
GET/api/v1/books/:id

A single published book with full metadata.

open
GET/api/v1/books/:id/chapters

Chapter list (catalog only — no body text).

open
GET/api/v1/authors

List authors with at least one published book.

open
GET/api/v1/authors/:id

A single author and their published books.

open
GET/api/v1/me

The signed-in user (PAT required).

PAT

All responses are JSON with the envelope { data, nextCursor? }. Pass the previous nextCursor as ?cursor=… to page.

Rate limits

Be polite. Get more.

Unauthenticated

60 req / minute

Per IP. Use this for static fan sites or aggregators that hit the catalog endpoints.

PAT (read scope)

600 req / minute

Per token. Generate one at /writer/api-keys.

When you hit a limit, the response is 429 with a Retry-After header. Don't retry in a tight loop — back off.

Subscribe to new chapters

RSS / Atom feeds

Every published book exposes an Atom feed at /books/:id/feed.xml. Paste the URL into NetNewsWire, Feedly, Inoreader, or any RSS reader — new chapters appear as they go live.

https://bookery-inc.vercel.app/books/<book_id>/feed.xml

Drop into any site

Embed widget + oEmbed

Paste a Bookery book URL into Discord, Slack, WordPress, or Notion — they call our oEmbed endpoint and render a card automatically. For your own blog or Linktree, drop in the embed snippet below.

<script async src="https://bookery-inc.vercel.app/embed.js" data-book="<book_id>"></script>

Optional attributes: data-width, data-height. You can also write <div data-bookery-book="<id>"></div> placeholders and the script will fill them in.

Show you're on Bookery

Linkback badges

Read on Bookery — light

Read on Bookery — light
/badges/read-on-bookery-light.svgDownload

Read on Bookery — dark

Read on Bookery — dark
/badges/read-on-bookery-dark.svgDownload

Publishes on Bookery — light

Publishes on Bookery — light
/badges/publishes-on-bookery-light.svgDownload

Publishes on Bookery — dark

Publishes on Bookery — dark
/badges/publishes-on-bookery-dark.svgDownload

Ready?

Generate your first token.

Tokens are scoped, hashed, and revocable. Read access today; write scopes ship next.

Open API keys