Home
public-api

Pangobooks Public API

A thin JSON API for titles, ISBN pricing, and listings — built so people (and LLMs) can research PangoBooks without scraping HTML. No API key required; sign in for a higher rate limit.

No API key
CORS open
Free: 10 req/min
Registered: 30 req/min
JSON only

Try it

Live requests hit the public API. Free: 10 req/min per IP. Signed-in Pangobooks accounts get 30 req/min.

Find titles (preferred) or live listings.

GET /api/public/search?q=project+hail+mary&type=titles&limit=5
// Click “Run request” to see a live JSON response

Rate limits

Limits are enforced per client. Anonymous traffic is capped by IP; authenticated traffic is capped per Pangobooks account.

TierLimitHow
Free10 req/minNo auth. Per IP.
Registered30 req/minSigned-in Pangobooks account with an email (not anonymous) + Authorization: Bearer <auth_token>. Anonymous sessions stay free.

Over limit returns 429 with Retry-After, tier, limit_per_minute, and a message explaining how to upgrade from free → registered.

Endpoints

MethodPathPurpose
GET/api/public/search?q=project+hail+mary&type=titles&limit=5Search titles or live listings
GET/api/public/pricing?isbn=9780593135204ISBN market comps / sold prices
GET/api/public/books/{id}/api/public/books/{bookId}One marketplace listing

Quick start

Preferred flow: search → pricing by ISBN and/or a specific book id → link humans to the HTML URLs in urls.

# Free (10 req/min)
curl "https://pangobooks.com/api/public/search?q=project+hail+mary&type=titles&limit=5"
curl "https://pangobooks.com/api/public/pricing?isbn=9780593135204"
curl "https://pangobooks.com/api/public/books/{bookId}"

# Registered (30 req/min) — AUTH Token from a signed-in account with an email (not anonymous)
curl -H "Authorization: Bearer $AUTH_TOKEN" \
  "https://pangobooks.com/api/public/pricing?isbn=9780593135204"

Response shape: { "success": true, "data": { ... } }. On limit exceeded: 429 + Retry-After and a JSON message describing the tier and upgrade path.

For agents

Machine-readable discovery lives at /llms.txt and the OpenAPI spec at /openapi.json. Prefer /api/public/* over HTML /search or /pricing scrapes.

Questions? Help center.