How Billing Works: Render Units
Usage is metered in units, not raw request count. Fill and render draw from the same allowance — not a second meter.- A successful fill (
POST /v1/fillor MCPfill_form) costs 1 unit. - A text-only Markdown render costs 1 unit.
- Image-heavy renders cost more, up to a hard ceiling of 16 units per render:
- Images with the same content hash within a render are counted once.
402 spend_cap_reached names units, not renders. A maxed key 402s on fill the same way it 402s on render.
A single image larger than 24 megapixels, or more than 48 megapixels of images in one render, is rejected with 422 image_too_large before decoding.
Plans at a Glance
Body is plan
bodyBytes: the cap on a Markdown render and on fill-by-bytes (JSON or multipart pdf). Stored-template size is a different cap — see Stored templates.
Annual billing is 10 months prepaid — roughly 17% off (about two months free) compared to paying month-to-month.
Plan Details
Free
$0 / month
- 250 units per month (fill and render share this)
- “Made with Blink PDF” watermark on every PDF
- Full theme catalog and typography
- Community support
- 10 requests / min, 1 concurrent
- 128 KiB render / fill-by-bytes body
- 10 stored templates · 5 MiB upload
- Fill a real form by storing it, then fill by id
Pro
**90 / year (~17% off)
- 30,000 units per month (fill and render share this)
- $0.004 per extra unit
- No watermark
- Per-key usage attribution
- 120 requests / min, 10 concurrent
- 2 MiB render / fill-by-bytes body · configurable spend cap
- 50 stored templates · 10 MiB upload
Business
**790 / year (~17% off)
- 1,000,000 units per month (fill and render share this)
- $0.001 per extra unit
- No watermark
- Slack support channel
- 600 requests / min, 40 concurrent
- 5 MiB render / fill-by-bytes body · configurable spend cap
- 250 stored templates · 20 MiB upload
Enterprise
Custom pricing
- Dedicated capacity, no per-render metering
- Custom rate limits and uptime commitments
- Custom templates and branding
- Can raise the stored-template byte cap
- On-premise / VPC deployment
- Contact us
Included in Every Plan
No matter which plan you choose, every Blink PDF render includes:- Markdown rendering — clean, spec-compliant conversion from Markdown to PDF
- PDF/UA-1 accessibility — documents pass screen-reader and assistive-technology checks out of the box
- 15 curated themes — the full theme catalog is identical on every plan
- Bundled fonts + Google Fonts — six hosted font families plus any Google Fonts family by URL
- Color emoji (COLR/CPAL) — full-color emoji rendered crisply at any size
- ToUnicode mapping — text in your PDFs is always copy-pasteable and searchable
- Font subsetting — only the glyphs you actually use are embedded, keeping file sizes small
- Input never stored — your Markdown is processed in memory and discarded. REST returns the PDF on the response. MCP download files default to 24 hours; you can opt in to keep them (caps below). See Zero Retention.
How Usage Counting Works
Only successful fills and renders consume units. Failed requests, validation calls, and retries that end in an error do not consume units. The authoritative per-response signal is the
X-BlinkPDF-Billing header.POST /v1/fill, POST /v1/render, or POST /v1/templates/*/render reports its billing outcome in X-BlinkPDF-Billing:
counted— the call was billed against your period’s units. A fill is always 1 unit. Sandwich template routes always bill 1 unit when counted.deduped-cache— an identical render was replayed from cache and not billed (POST /v1/renderonly; fill and sandwich templates do not use the process-local PDF LRU).deduped-idempotent— a reusedx-idempotency-keysuppressed the charge (POST /v1/renderandPOST /v1/fill; sandwich templates do not accept client idempotency keys).
POST /v1/render. Fill is 1 unit on that ledger — not a second meter.
The following calls are always free and never consume units:
GET /healthand other health checksPOST /v1/render/validate(dry-run validation — though it has its own rate limit)POST /v1/inspectandPOST /v1/validate-fill- Storing, listing, getting, updating, or deleting a blank template (
POST /v1/templatesand the rest of that library) - Font, theme, and style-target catalog listings
- MCP
persist_pdf,list_pdfs,delete_pdf,store_template,list_templates,get_template,update_template, anddelete_template(keeping a file or a blank is not a fill or a render)
Stored PDFs (MCP)
The MCP server can keep a rendered or filled PDF after the 24-hour default.persist: true on render_pdf or fill_form, or persist_pdf while the 24-hour file is still live. Object count only — there is no byte cap. Hitting the cap returns persistent_pdf_limit and does not store the file as 24-hour.
Signed download links still expire in 24 hours on every durability. Call
list_pdfs for a fresh URL. delete_pdf frees a slot. Stored blank templates do not use these slots — they have their own object cap.
Stored templates
A stored template is a blank AcroForm you keep on the account (POST /v1/templates or MCP store_template), then fill by id. It is not a filled output and it is not a Markdown render body.
Object count is independent of kept MCP PDFs. Hitting one cap does not block the other. A full object cap returns
409 template_limit.
Oversize store or replace is 413 payload_too_large and names maxTemplateBytes. A 20 MiB form is that Business upload cap — a named limit, not a mystery 413. A form over 20 MiB is 413 on every self-service tier.
Fill-by-bytes (JSON or multipart pdf on POST /v1/fill) still uses render bodyBytes: 128 KiB / 2 MiB / 5 MiB. That 413 names bodyBytes. Fill-by-id does not re-check the stored PDF against bodyBytes.
On Free, a real form does not fit in the 128 KiB fill-by-bytes body. Store the blank (up to 5 MiB), then send
{ templateId, values }. The same bytes as a Free fill-by-bytes body are 413.bodyBytes to live pdf bytes. Store and replace do not spend a unit.
Overage & Spending Caps
Once you pass your plan’s included units, additional units are billed at the per-unit overage rate through Stripe metered billing. Overage is soft — you are never abruptly cut off, and you are never surprise-charged. Each paid tier also has a hard cap at 2× its included volume (60,000 units for Pro, 2,000,000 for Business). Reaching the hard cap returns402 spend_cap_reached and pauses billing until the next period.
Annual Billing
Choosing annual billing prepays 10 months for a full year of allowance — roughly 17% savings (~2 months free) versus monthly. The annual base is charged upfront as a single payment; your monthly unit allowance rolls each period. Any overage beyond your included units is still invoiced monthly as you use it.Ready to Get Started?
Create your free account
Sign up in seconds — no credit card required for the Free plan.
Talk to Enterprise sales
Need dedicated capacity, higher limits, or on-premise deployment? We’d love to hear from you.