API keys, rate limits and credits

How access to the hosted WeasyPrint works. Without a key you get 10 free credits a day per IP address. A key adds monthly credits and a higher limit.

Last updated

Without a key, you get 10 free credits a day per IP address, and a render costs 1. With an API key, the per-minute limit depends on your plan. Each call first uses the day's 10 free credits, then the monthly credits.

Access Calls per minute Free credits a day Monthly credits
No key 30 per IP address (IPv6: per /64) 10 per IP address None
Free plan 60 10 100 per calendar month
Essential 600 10 See pricing
Scale 3,000 10 See pricing

The limits and credits are shared by every engine here: a WeasyPrint render and a call to another engine spend from the same balance. Without a key, the API, the MCP servers and the free tools share them too. Signed in, the free tool uses your account's free credits and monthly credits.

Get and send a key

Sign in with a link sent by email and create a key in the dashboard. Send it in the X-API-Key header, as Authorization: Bearer YOUR_KEY, or as the password of HTTP Basic (curl -u x:YOUR_KEY). A missing or invalid key does not fail a render; it runs without a key.

Credits

A render costs 1 credit, whatever its page count. Rejected and failed calls cost nothing, and calls without a key are never charged. Plans and prices are on the pricing page.

Check your budget

Successful responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. GET /v1/me returns your live limit and credit balance and costs nothing:

curl -H "X-API-Key: $PAGESPOOL_KEY" https://api.pagespool.com/v1/me

Create a free account.

FAQ

Is there a free HTML to PDF API?
Yes. Without a key, you get 10 free credits a day per IP address, and a render costs 1. The free plan adds an API key with 100 credits a month and needs no card.
What is the difference between a 429 and a 402 response?
429 means a limit is used up: rate_limited is the per-minute limit, daily_limit the 10 free credits a day without a key. Wait for the Retry-After seconds. 402 (credits_exhausted) means the month's credits and the day's free credits are spent.