rules for every document, set theme and the server resolves it to a fixed bundle — then merges your own settings on top. Blink PDF ships 15 themes across five categories, and the default (report-clean) is the plain engine output, so you only opt into a look when you name one.
Picking a theme never lets the server read your Markdown — the bundle is deterministic and applied blindly. Theme fonts are bundled and hosted, so themes are identical on every plan; the only plan differences are volume, rate, and the free-tier watermark, never typographic quality.
The theme Field
string
default:"report-clean"
The slug of a curated design preset (see the catalog below). Resolved server-side to a fixed bundle of typography, page, furniture, numbering, and rules, then merged under your own
typography / page / furniture / rules — your values win per field. Omitting the field, or passing an unknown slug, applies report-clean.Theme Catalog
The 15 themes, in slug order.report-clean is the default. Discover the same catalog programmatically at GET /v1/themes or through the MCP list_themes tool.
report-clean has an empty delta — requesting it, or sending no theme at all, leaves the rendered output byte-for-byte identical to the engine defaults. It exists so you can name the default explicitly.What a Theme Controls
Each theme contributes up to six dimensions. Most of the visual identity lives in therules array (colors, sizes, per-depth headings, code blocks, tables, blockquotes); a handful of themes also set fonts, page geometry, furniture, numbering, or a PDF outline.
Precedence: Your Settings Always Win
A theme layers under your request body — it never overrides anything you set explicitly:typography,page, andfurnitureare deep-merged with you winning per field.numberingandoutlineare taken from your body whenever you set them at all.- The theme’s
rulesare prepended before yours, so on any conflicting cascade leaf your later rule wins.
Unknown or Omitted Themes
Theme resolution never fails a render. If you omittheme or pass an unknown slug, the base report-clean theme is applied instead:
- Omitted →
report-cleanis applied silently. - Unknown slug →
report-cleanis applied and the response carries anX-Render-Theme-Fallbackheader (for exampleapplied=report-clean; requested=report-dat; didYouMean=report-data), plus a nearest-matchdidYouMeansuggestion when one is within edit distance. A theme fallback also flipsX-Render-Rendered-As-Requestedtofalse.
resolvedTheme object (slug / requested / fellBack / didYouMean) instead of a header.
Discovering Themes
GET /v1/themes returns the full catalog as JSON so tools and agents can list themes without hard-coding the slugs:
ETag. AI agents connected through the MCP server can call the equivalent list_themes tool, which returns the same { version, default, themes[] } shape.