{ name: value } → filled PDF). Your Markdown and your fill values are processed entirely in memory and discarded when the response closes — they are never written to a database, logged to disk, or retained beyond a single API request. Templates persist only if you store them. Rendered and filled outputs default to a 24-hour window. On the MCP server you can opt in to keep a PDF until you delete it; signed download links still expire in 24 hours.
What zero-retention means
“Your Markdown input and fill values are processed in memory and never stored. Templates persist only if you store them. Default outputs live 24 hours. MCP can keep a PDF until you delete it. Nothing from render or fill is ever used to train models.”The input side is a hard architectural guarantee, not a configurable policy. Both pipelines are stateless with respect to the content you send:
- Your request arrives and is held in memory for the duration of the render or fill.
- The PDF is generated and streamed back to you (REST) or staged behind a signed download link (MCP).
- The request payload — Markdown, fill
values, metadata, and intermediate document state — is immediately purged from memory.
“Purged immediately” applies to your input: Blink PDF does not use write-ahead logs, render queues, or persistent buffers that retain the Markdown or fill values you send after the response. Rendered and filled output bytes, stored blank templates, and staged assets are a separate store described below.
What happens to a filled medical form
This is the fill path for a medical form. You send a blank AcroForm (PDF bytes on the request, or a stored template id) plus avalues map. A synthetic intake fill looks like this — field names and values are generic, not a clinic or client record:
Inspect and validate-fill use the same input rules and do not write a PDF. Account erasure deletes stored templates and any persistent filled PDFs.
What is NOT stored
Your submitted document content is never written to a persistent store:- Markdown content — the document text you send on render
- Fill values — the
{ name: value }map you send on fill (or validate-fill) - PDF metadata — titles, authors, and custom fields you pass in the
metadatafield - Document structure — headings, tables, and the intermediate parse tree
- Live template bytes — an AcroForm you send as
pdfon inspect, validate-fill, or fill, unless you separately store it - Remote images — images fetched from
http(s)://URLs during rendering are held in memory only and discarded after use, unless you opt intopinRemoteImages(see the note below)
What IS stored
To serve delivery, caching, and reusable assets, Blink PDF keeps a small set of data. Most of it is time-boxed to 24 hours. Persistent MCP PDFs and stored blank templates are the exception and only exist when you ask for them.
Usage counters record that a render or fill happened and how large it was — not what was in it. Your document content never touches the billing subsystem. Staged assets are scoped per credential and addressed by their content hash; the stored asset lives up to 24 hours. Persistent MCP files count against a per-plan object cap (Free 10 / Pro 100 / Business 1,000) — see Pricing. Stored templates have a separate object cap (Free 10 / Pro 50 / Business 250) and do not use those persistent-PDF slots. Templates belong to the account, not the API key: rotating a key does not orphan or leak the library.
Opt-in image pinning.
pinRemoteImages is false by default — remote images are discarded after use. When you set it to true, only the referenced remote image bytes are retained, for up to 24 hours, scoped per credential and addressed by content hash. Your Markdown, fill values, metadata, and document structure are still never persisted, and the validate path never pins.The MCP download flow. Because an AI agent can’t receive raw PDF bytes, the Blink PDF MCP server returns a signed download link (
GET /d/:token) for render_pdf and fill_form. Default files follow the 24-hour window. persist: true or persist_pdf keeps the object; the link still expires in 24 hours. Your Markdown and fill values are never persisted on either the REST or MCP path.Zero model training
Nothing from render or fill is ever used to train, fine-tune, or evaluate any machine learning model — Blink PDF’s own or any third party’s. That includes Markdown, fill values, blank templates, and the PDFs those verbs produce. Both engines are deterministic software, not learned models, and they have no feedback loop that ingests document content.Why this matters for regulated industries
Industries with strict data-handling requirements — legal, medical, financial services, government — often cannot send document content to third-party services that log or store it, even temporarily. Zero-retention removes that blocker:- Legal — draft contracts, briefs, and privileged correspondence can be rendered without leaving your control boundary.
- Medical — patient-facing documents and filled intake forms containing sensitive personal information can be generated without those inputs being written to disk or logged. See What happens to a filled medical form.
- Finance — trade confirmations, account statements, and KYC documents can be formatted as PDFs without exposing sensitive figures to a third-party data store.
Formal certifications — SOC 2 Type II and a signed DPA — are on the Blink PDF roadmap, not yet available. If either is a hard requirement for your procurement process, contact the team for the current status and timeline. For workloads that need a stricter boundary today, Enterprise offers dedicated infrastructure and on-premise / VPC deployment.
Markdown Rendering
See how the stateless in-memory rendering pipeline works end to end.
Accessibility
Learn about PDF/UA-1 compliance, Unicode support, and color emoji.