docs / generate

Generation API

Generation API

base /generate/v121 endpoints
post/generate/v1/pdf_render4 credits

Render a PDF from inline HTML/CSS (Jinja2) or a built-in template_name + data (invoice/receipt/certificate/report). WeasyPrint, fonts pinned, network-off. Output: inline base64 (≤8MB) or one-time download token.

ParameterAllowed / rangeDescription
htmloptionalInline HTML/CSS document (Jinja2 syntax allowed; rendered in a SANDBOXED env — no code execution). Mutually exclusive with template_name.
template_nameoptionalinvoice · receipt · certificate · reportBuilt-in PDF template (stateless — lives in engine, not stored). Supply `data` matching its contract (see template_list).
dataoptionalTemplate variables (JSON object) — merged into the template. For built-ins see each template's data_contract.
paperoptionalA4 · A4 landscape · Letter · Letter landscape · A5 · LegalPage size override for built-in templates.
filenameoptionalSuggested download filename.
allow_hostsoptionalComma-separated https hosts whose images/CSS the PDF may fetch (default NONE = network-off, SSRF-safe). Use data: URIs to embed assets without this.
Try in playground →
post/generate/v1/pdf_from_html4 credits

Shortcut for rendering inline HTML directly to PDF — the same WeasyPrint engine as pdf_render; `html` is required.

ParameterAllowed / rangeDescription
htmlrequiredHTML/CSS document to render (Jinja2 allowed, sandboxed).
dataoptionalOptional Jinja2 variables for the HTML.
paperoptionalA4 · A4 landscape · Letter · A5 · LegalPage size (only if your CSS uses {{ paper }}).
filenameoptionalSuggested filename.
allow_hostsoptionalAllowlisted https hosts for remote assets (default none).
Try in playground →
post/generate/v1/pdf_from_url4 credits

Render a built-in or inline template to PDF, populating it with data fetched live from a JSON URL you supply. Useful when your invoice or report data lives at a public API endpoint — no manual copy-paste needed.

ParameterAllowed / rangeDescription
data_urlrequiredhttps URL returning a JSON object used as template `data`.
template_nameoptionalinvoice · receipt · certificate · reportBuilt-in template to fill.
htmloptionalInline HTML template (instead of template_name).
data_pathoptionalOptional dotted path into the fetched JSON to use as data (e.g. 'result.invoice').
paperoptionalA4 · A4 landscape · Letter · A5 · LegalPage size override.
filenameoptionalSuggested filename.
Try in playground →
post/generate/v1/og_image2 credits

Render a social / Open Graph card image (1200×630 default) from a built-in template or an inline layout spec. Supports automatic text-wrap and font scaling for long titles, colour gradients and badge overlays.

ParameterAllowed / rangeDescription
template_name = og_basicoptionalog_basic · og_article · og_quote · og_productBuilt-in card layout. See template_list for each layout's vars.
varsoptionalCard content (JSON): title/subtitle/badge/quote/author/site/name/tagline/cta + colors bg/bg2/fg/accent (hex).
layoutoptionalInline layout override (JSON) — {size:[w,h], ...} for a fully custom card without a built-in template.
width = 1200optional200–4000Canvas width px.
height = 630optional200–4000Canvas height px.
format = pngoptionalpng · jpeg · webpOutput image format.
filenameoptionalSuggested filename.
Try in playground →
post/generate/v1/image_from_template2 credits

Alias of og_image (explicit Bannerbear 'create image from template' naming). template_name + vars → PNG.

ParameterAllowed / rangeDescription
template_namerequiredog_basic · og_article · og_quote · og_productBuilt-in image template.
varsoptionalTemplate variables (see template_list).
width = 1200optional200–4000Canvas width px.
height = 630optional200–4000Canvas height px.
format = pngoptionalpng · jpeg · webpOutput format.
filenameoptionalSuggested filename.
Try in playground →
post/generate/v1/image_from_url2 credits

Render an image template with `vars` fetched from a JSON URL (proxy, SSRF-validated). Data-driven banner generation.

ParameterAllowed / rangeDescription
data_urlrequiredhttps URL returning a JSON object used as card `vars`.
template_name = og_basicoptionalog_basic · og_article · og_quote · og_productBuilt-in template.
layoutoptionalInline layout override (JSON).
data_pathoptionalDotted path into the JSON to use as vars.
width = 1200optional200–4000Canvas width px.
height = 630optional200–4000Canvas height px.
format = pngoptionalpng · jpeg · webpOutput format.
filenameoptionalSuggested filename.
Try in playground →
post/generate/v1/chart1 credit

Render a chart from a Chart.js-style spec — returns a PNG or SVG image. Supported chart types: bar, horizontal_bar, line, area, pie, doughnut, scatter and radar. Powered by a matplotlib backend.

ParameterAllowed / rangeDescription
specrequiredChart spec: {type, data:{labels:[...], datasets:[{label, data:[...], color?}]}, options:{title, x_label, y_label, width, height, legend}}.
format = pngoptionalpng · svgOutput format.
filenameoptionalSuggested filename.
Try in playground →
post/generate/v1/chart_typesfree

List all supported chart types with a description of each. No input required.

Try in playground →
post/generate/v1/batch_pdf4 credits

Render up to 20 PDFs in one call. `jobs` = array of pdf_render param objects.

ParameterAllowed / rangeDescription
jobsrequiredArray of ≤20 pdf_render param objects ({html|template_name, data, ...}).
Try in playground →
post/generate/v1/batch_image2 credits

Render up to 20 images in one call. `jobs` = array of og_image param objects.

ParameterAllowed / rangeDescription
jobsrequiredArray of ≤20 og_image param objects ({template_name|layout, vars, ...}).
Try in playground →
post/generate/v1/template_listfree

List built-in templates (PDF + image) with their data contracts. Stateless — there is NO stored-template management (create/upload/delete out of scope).

Try in playground →
post/generate/v1/validate_htmlfree

Lint HTML/CSS for the PDF path WITHOUT rendering: flags remote resources that the SSRF-safe renderer will block, size, and tag-balance hints. Deterministic.

ParameterAllowed / rangeDescription
htmlrequiredHTML document to lint.
Try in playground →
post/generate/v1/healthfree

Renderer diagnostics — which backends (WeasyPrint/Pillow/matplotlib) are loadable and their versions. No input.

Try in playground →
post/generate/v1/qr1 credit

Generate a QR code (PNG or SVG) with custom fg/bg color, error-correction, and an OPTIONAL center logo fetched from logo_url (SSRF-guarded, via proxy). Use error_correction=h when embedding a logo so it stays scannable.

ParameterAllowed / rangeDescription
datarequiredThe content to encode: a URL, text, vCard string, etc.
format = pngoptionalpng · svgOutput image format. png supports logo-embed + colors; svg is scalable (logo-embed requires png).
error_correction = moptionall · m · q · hRecovery level: l~7% · m~15% · q~25% · h~30%. Use h with a logo.
scale = 8optional1–40Module size in pixels.
border = 4optional0–20Quiet-zone width in modules (spec default 4).
coloroptionalForeground (dark) color: #rrggbb / #rgb / basic CSS name.
backgroundoptionalBackground color, or 'transparent'.
logo_urloptionalURL of a logo to embed in the center (PNG output only). Fetched through the proxy with a full SSRF guard.
logo_size = 0.22optional0.05–0.3Logo size as a fraction of the QR side (0.05–0.30; >0.25 risks unscannable codes even at EC-H).
Try in playground →
post/generate/v1/barcode1 credit

Generate a 1D barcode IMAGE (PNG or SVG) from data: EAN-13/8, UPC-A, Code-128, Code-39, ISBN-10/13, ITF, GS1-128, JAN, PZN, Codabar. Check digits are validated — a wrong EAN/UPC/ISBN check digit returns a structured error, not a silent fix.

ParameterAllowed / rangeDescription
datarequiredThe value to encode. For EAN/UPC supply the digits; the check digit is computed (or validated if you include it).
typerequiredean13 · ean8 · ean14 · upca · code128 · code39 · isbn13 · isbn10 · issn · itf · gs1_128 · jan · pzn · codabarBarcode symbology.
format = pngoptionalpng · svgOutput image format.
show_text = trueoptionalPrint the human-readable value under the bars.
module_height = 15optional2–100Bar height in mm.
coloroptionalBar color (#rrggbb / name).
backgroundoptionalBackground color (#rrggbb / name).
Try in playground →
post/generate/v1/code_image2 credits

Render a syntax-highlighted code snippet as a PNG with a carbon/ray.so-style window frame. 500+ languages (Pygments), 40+ themes, optional line numbers.

ParameterAllowed / rangeDescription
coderequiredThe source code to render.
languageoptionalLanguage for highlighting (python, javascript, go, rust, sql…). Omit to auto-detect.
theme = monokaioptionalabap · algol · algol_nu · arduino · autumn · borland · bw · coffee · colorful · default · dracula · emacs · friendly · friendly_grayscale · fruity · github-dark · gruvbox-dark · gruvbox-light · igor · inkpot · lightbulb · lilypond · lovelace · manni · material · monokai · murphy · native · nord · nord-darker · one-dark · paraiso-dark · paraiso-light · pastie · perldoc · rainbow_dash · rrt · sas · solarized-dark · solarized-light · staroffice · stata-dark · stata-light · tango · trac · vim · vs · xcode · zenburnColor theme (Pygments style).
window_style = darkoptionaldark · darker · light · noneFrame: dark/darker/light window chrome with traffic-light dots, or 'none' for a bare image.
line_numbers = falseoptionalShow line numbers in the gutter.
font_size = 20optional10–48Font size in px.
Try in playground →
post/generate/v1/favicon2 credits

Turn one source image into a complete favicon bundle: multi-resolution favicon.ico, a named PNG set (16→512 incl. apple-touch-icon + android-chrome), site.webmanifest, and the ready-to-paste <head> <link> snippet. Source from image_url (SSRF-guarded) or a base64 upload.

ParameterAllowed / rangeDescription
image_urloptionalURL of the source image (PNG/JPG/etc). Fetched through the proxy with a full SSRF guard. Provide this OR image_base64.
image_base64optionalBase64-encoded source image (data-URI prefix accepted). Use instead of image_url for direct uploads.
Try in playground →
post/generate/v1/vcard1 credit

Build a vCard (.vcf) contact file from contact fields (vCard 3.0 or 4.0). Returns the raw.vcf text + a base64 data-URI you can download or encode into a QR.

ParameterAllowed / rangeDescription
full_nameoptionalFull display name (or supply first_name/last_name).
first_nameoptionalGiven name.
last_nameoptionalFamily name.
organizationoptionalCompany/organization.
titleoptionalJob title.
phoneoptionalPhone number(s) — string or array.
emailoptionalEmail address(es) — string or array.
urloptionalWebsite URL(s) — string or array.
addressoptionalPostal address (single line).
noteoptionalFree-text note.
birthdayoptionalBirthday (YYYY-MM-DD).
version = 3.0optional3.0 · 4.0vCard spec version (3.0 = widest compatibility, 4.0 = modern).
as_qr = falseoptionalAlso return a scannable PNG QR of the vCard (add-to-contacts).
Try in playground →
post/generate/v1/ical1 credit

Build an iCalendar (.ics) event file from event fields (RFC 5545). Supports timed or all-day events, end-time or duration, location, description, organizer. Returns the raw.ics + a base64 data-URI.

ParameterAllowed / rangeDescription
summaryrequiredEvent title.
startrequiredStart: ISO-8601 (2026-07-01T15:00:00+00:00) or YYYY-MM-DD (all-day).
endoptionalEnd time (ISO-8601 or YYYY-MM-DD). Omit to use duration_minutes.
duration_minutes = 0optional0–100000Event length in minutes (used when `end` is absent).
locationoptionalEvent location.
descriptionoptionalEvent details.
urloptionalEvent URL.
organizer_emailoptionalOrganizer email.
uidoptionalStable UID (auto-generated if omitted).
as_qr = falseoptionalAlso return a scannable PNG QR of the event.
Try in playground →
post/generate/v1/wifi1 credit

Generate a WiFi-join QR code (PNG/SVG) from network credentials — scan to connect, no typing. Encodes the standard WIFI: payload (WPA/WEP/open, hidden networks).

ParameterAllowed / rangeDescription
ssidrequiredNetwork name (SSID).
passwordoptionalNetwork password (required unless encryption=nopass).
encryption = WPAoptionalWPA · WEP · nopassSecurity type: WPA (incl. WPA2/WPA3), WEP, or nopass (open network).
hidden = falseoptionalMark the network as hidden (non-broadcast SSID).
format = pngoptionalpng · svgOutput image format.
scale = 8optional1–40Module size in pixels.
error_correction = moptionall · m · q · hQR recovery level.
Try in playground →
post/generate/v1/batch1 credit

Generate up to 50 small assets in one request. Items run independently — a bad item yields its own error entry, never fails the batch. NOTE: items that fetch a remote logo_url/image_url ARE supported and SSRF-guarded.

ParameterAllowed / rangeDescription
itemsrequiredUp to 50 items, each {action, params} where action is qr|barcode|code_image|favicon|vcard|ical|wifi.
Try in playground →