Resources
Rate limits and cache
120 req/min and the 24h point-lookup cache.
Rate limit
120 requests / 60 seconds / key (kid). Over the limit:
{ "error": { "code": "rate_limited", "message": "…" } }
Status 429. MCP calls count against the same budget (they hit the API over a service binding).
/health and /openapi.json are not rate-limited.
Point-lookup cache
These GETs are cached at the Worker after auth. The cache key is the URL only (24h).
GET /v1/isbn/:isbnGET /v1/books/:idGET /v1/works/:idGET /v1/authors/:id
Response header: X-Cache: HIT or MISS.
Hot ISBN lookups should land well under 200ms on a hit. Misses pay Hyperdrive + join.
Search, match, recommend, author search, and changes are short-TTL and hit Postgres.
Metering
Authenticated /v1 calls are written to usage_events asynchronously. Do not expect a usage field on the response.