# PDFMonkey Documentation > Generate PDF documents from HTML templates via API ## Getting Started - [From Zero to First Document](https://pdfmonkey.io/docs/getting-started/from-zero-to-first-document.md): Create your first PDF document with PDFMonkey step by step, from signing up and building a template to generating output via the dashboard or API. - [Dashboard UI Tour](https://pdfmonkey.io/docs/getting-started/dashboard-ui-tour.md): A visual walkthrough of the PDFMonkey dashboard covering the Templates list, the template Editor, the Documents panel, and workspace Settings. - [The 30-Day Trial](https://pdfmonkey.io/docs/getting-started/the-30-day-trial.md): Every new PDFMonkey account includes a 30-day Pro trial with 300 documents, external resources, and a 2-minute generation limit. Learn what it includes and what changes when it ends. - [External Resources](https://pdfmonkey.io/docs/getting-started/external-resources.md): Understand what counts as an external resource in PDFMonkey templates -- remote images, CSS, JavaScript, and web fonts -- which plans support them, and what alternatives work on every plan. - [Builder vs Code Templates](https://pdfmonkey.io/docs/getting-started/builder-vs-code-templates.md): PDFMonkey offers two template types: a visual Builder and HTML/CSS Code Templates. Compare them side by side and decide which fits your project. ## Code Templates - [The Liquid Syntax](https://pdfmonkey.io/docs/code-templates/the-liquid-syntax.md): Introduction to Liquid, the templating language used in PDFMonkey code templates. Learn output tags, logic tags, objects, and filters for dynamic PDF content. - [Defining Dynamic Data](https://pdfmonkey.io/docs/code-templates/defining-dynamic-data.md): Define JSON test data in your PDFMonkey template to preview output in real time, access nested values with dot notation in Liquid, and create variables using assign and capture tags. - [Filters](https://pdfmonkey.io/docs/code-templates/filters.md): Complete reference for Liquid filters in PDFMonkey: built-in filters for string manipulation, number formatting, array operations, and date formatting, plus PDFMonkey-specific filters for barcodes, Base64 encoding, currency formatting, and more. - [How to Do Maths](https://pdfmonkey.io/docs/code-templates/how-to-do-maths.md): Perform arithmetic in Liquid templates using PDFMonkey's math filters: plus, minus, times, divided_by, modulo, round, ceil, and floor with working examples. - [Conditions and Loops](https://pdfmonkey.io/docs/code-templates/conditions-and-loops.md): Use Liquid conditionals like if, else, unless, and case alongside for loops and tablerow tags to control what appears in your PDFMonkey template output. - [Images](https://pdfmonkey.io/docs/code-templates/images.md): Add images and clickable links to your PDFMonkey PDFs using external URLs, embedded images, inline SVG, or dynamic sources from your document data. - [Image Weight and Resolution](https://pdfmonkey.io/docs/code-templates/image-weight-and-resolution.md): Why image-heavy PDFs are larger than expected and how to size images correctly for optimal file weight and print quality in PDFMonkey templates. - [Page Layout](https://pdfmonkey.io/docs/code-templates/page-layout.md): Control page sizing, margins, single-page layouts, full-page backgrounds, and page breaks in PDFMonkey code templates. - [Web Fonts](https://pdfmonkey.io/docs/code-templates/web-fonts.md): Use Google Fonts, icon fonts like Font Awesome, custom typefaces, and emojis in PDFMonkey templates. Includes header and footer font inlining for reliable rendering. - [Custom JavaScript](https://pdfmonkey.io/docs/code-templates/custom-javascript.md): Add JavaScript to PDFMonkey code templates for dynamic calculations, Chart.js graphs, date formatting with Day.js, and DOM manipulation before rendering. - [Custom CSS](https://pdfmonkey.io/docs/code-templates/custom-css.md): Style PDFMonkey code templates with CSS, import external frameworks like Tailwind, and add per-document styles. - [QR Codes](https://pdfmonkey.io/docs/code-templates/qr-codes.md): Generate QR codes in your PDF templates with PDFMonkey. Three JavaScript libraries compared — from fully customizable to quick and simple. - [Header and Footer](https://pdfmonkey.io/docs/code-templates/header-and-footer.md): Three approaches to adding headers and footers to your PDFs — from the built-in settings fields to in-content placement and the full-power Paged.js solution. - [Reusing Code](https://pdfmonkey.io/docs/code-templates/reusing-code.md): Avoid code duplication in PDFMonkey templates with Snippets and Partials. Share code across multiple templates with Snippets, or define reusable blocks within a single template using Partials. - [PDF Forms](https://pdfmonkey.io/docs/code-templates/pdf-forms.md): Generate fillable PDF forms with PDFMonkey by adding marker syntax to your templates. Create text fields, checkboxes, dropdowns, radio buttons, date pickers, and more. - [CLI](https://pdfmonkey.io/docs/code-templates/cli.md): Edit PDFMonkey templates locally with the official CLI tool. Use your preferred code editor, sync changes to the cloud, and streamline your template workflow. - [Our Engines](https://pdfmonkey.io/docs/code-templates/our-engines.md): PDFMonkey engine versions v2 through v5: Chrome versions, key capabilities, and what each engine supports for PDF rendering. - [Template Authoring Offer](https://pdfmonkey.io/docs/code-templates/template-authoring-offer.md): Let PDFMonkey's team design and code your PDF templates. Starting at 1,000 EUR — includes pixel-perfect HTML/CSS implementation, dynamic data wiring, and iterative review. ## Builder Templates - [Your First Template](https://pdfmonkey.io/docs/builder-templates/your-first-template.md): Step-by-step guide to creating your first PDF template in the PDFMonkey visual builder, from opening the editor to previewing and generating a document. - [Available Blocks](https://pdfmonkey.io/docs/builder-templates/available-blocks.md): Reference guide to every block type in the PDFMonkey visual builder: text, image, table, columns, divider, QR code, and more, organized by category. - [Images](https://pdfmonkey.io/docs/builder-templates/images.md): Add images to PDFMonkey builder templates using static URLs, direct file uploads, or dynamic data bindings that pull image sources from your document payload. - [Tables](https://pdfmonkey.io/docs/builder-templates/tables.md): Create and style data tables in PDFMonkey builder templates, with auto-generated structure, cell styling, dynamic rows, and zebra-striping. - [Conditions and Loops](https://pdfmonkey.io/docs/builder-templates/conditions-and-loops.md): Control element visibility and repeat items dynamically using the PDFMonkey builder's Logic panel with visibility conditions and repetition bindings. - [Situational Styling](https://pdfmonkey.io/docs/builder-templates/situational-styling.md): Apply different styles to builder elements based on their position among siblings: odd/even children, first/last items, and empty collection fallback content. - [QR Codes](https://pdfmonkey.io/docs/builder-templates/qr-codes.md): Add and customize QR code blocks in the PDFMonkey visual builder with options for size, foreground and background colors, dot styles, and error correction. - [Custom CSS](https://pdfmonkey.io/docs/builder-templates/custom-css.md): Add custom CSS to builder templates using the global stylesheet editor, per-element custom properties, custom webfonts, and external stylesheets for full control. - [Custom JS](https://pdfmonkey.io/docs/builder-templates/custom-js.md): Add custom JavaScript to PDFMonkey builder templates for calculations, number formatting, date manipulation, and third-party library integration in PDFs. - [Test Data](https://pdfmonkey.io/docs/builder-templates/test-data.md): Define test data in the PDFMonkey builder's payload editor to preview how your template renders with realistic content before generating actual documents. ## Generating Documents - [Using the Dashboard](https://pdfmonkey.io/docs/generating-documents/using-the-dashboard.md): Generate PDF documents manually through the PDFMonkey dashboard. Create a document from a template, fill in the dynamic data payload, and download the result. - [API PDF Generation](https://pdfmonkey.io/docs/generating-documents/api-pdf-generation.md): Generate PDF documents programmatically using the PDFMonkey REST API with code examples in curl, Ruby, Node.js, Python, and PHP. - [Convert Your Own HTML to PDF](https://pdfmonkey.io/docs/generating-documents/html-to-pdf.md): Use PDFMonkey as an HTML-to-PDF API: send your pre-built HTML in the document payload, render it with a minimal Code Template, and get a file back — no templating required. - [Using an Integration](https://pdfmonkey.io/docs/generating-documents/using-an-integration.md): Generate PDF documents without writing code using Zapier, Make, n8n, and other automation platforms. Connect PDFMonkey to your existing tools in minutes. - [Document Statuses](https://pdfmonkey.io/docs/generating-documents/document-statuses.md): Every PDFMonkey document moves through five statuses — draft, pending, generating, success, and failure. Learn what each status means, how transitions work, and how to handle errors. - [Download URL](https://pdfmonkey.io/docs/generating-documents/download-url.md): PDFMonkey download URLs are temporary signed links valid for 1 hour. Learn how they work, how to refresh expired URLs, and best practices for storing your generated PDFs and images. - [Custom Filename](https://pdfmonkey.io/docs/generating-documents/custom-filename.md): Control the filename of PDFs and images generated by PDFMonkey. Pass the _filename key in document metadata via the API or Dashboard. - [PDF Password Protection](https://pdfmonkey.io/docs/generating-documents/pdf-password-protection.md): Generate password-protected PDFs with PDFMonkey. Pass the _password key in document metadata via the API or Dashboard to encrypt files with AES-256. - [Output Format](https://pdfmonkey.io/docs/generating-documents/output-format.md): PDFMonkey can generate WebP, PNG, and JPG images alongside PDFs. Create an image template, configure dimensions and transparency, and use meta options to control the output. - [Share Links](https://pdfmonkey.io/docs/generating-documents/share-links.md): Share generated PDFs and images with a permanent public URL that never expires. No authentication needed. Available on Pro+ and Premium plans. - [Retention and Deletion](https://pdfmonkey.io/docs/generating-documents/retention-and-deletion.md): Control how long PDFMonkey stores your generated documents. Configure per-template TTL settings, understand plan-based retention limits, and learn what data gets deleted. - [Webhooks](https://pdfmonkey.io/docs/generating-documents/webhooks.md): Set up webhook endpoints to get notified when PDFMonkey documents finish generating. Covers payload format, event types, channel routing, and signature verification. ## API - [Authentication](https://pdfmonkey.io/docs/api/authentication.md): Authenticate with the PDFMonkey API using a Bearer token in the Authorization header. Find your secret API key in the Dashboard and make your first API call. - [Documents](https://pdfmonkey.io/docs/api/documents.md): PDFMonkey Documents API reference. Create, list, retrieve, update, and delete documents with code examples in curl, Ruby, Node.js, Python, and PHP. - [Templates](https://pdfmonkey.io/docs/api/templates.md): PDFMonkey Templates API reference. List, retrieve, create, update, and delete templates programmatically with curl examples and full attribute documentation. ## Integrations - [Zapier](https://pdfmonkey.io/docs/integrations/zapier.md): Automate document generation with PDFMonkey and Zapier. Set up triggers, actions, line items, custom JSON payloads, and troubleshoot common issues step by step. - [Make](https://pdfmonkey.io/docs/integrations/make.md): Automate document generation with PDFMonkey and Make. Build scenarios that generate, download, and deliver documents without writing code. - [n8n](https://pdfmonkey.io/docs/integrations/n8n.md): Automate document generation with PDFMonkey and n8n. Build workflows that generate, retrieve, and manage documents using the PDFMonkey node in your n8n automations. - [Workato](https://pdfmonkey.io/docs/integrations/workato.md): Automate document generation with PDFMonkey and Workato. Build recipes that generate, deliver, and manage documents using the PDFMonkey connector. - [Bubble](https://pdfmonkey.io/docs/integrations/bubble.md): Generate documents from your Bubble app with PDFMonkey. Install the official plugin for a no-code setup with automatic polling, or use the API Connector for full control. - [Glide](https://pdfmonkey.io/docs/integrations/glide.md): Generate documents from your Glide app with PDFMonkey. Set up the native integration, map dynamic data, and handle line items with practical workarounds. - [Invoiceberry](https://pdfmonkey.io/docs/integrations/invoiceberry.md): Generate polished PDF invoices from InvoiceBerry data using PDFMonkey and Zapier as the automation bridge. Customize invoice templates beyond InvoiceBerry defaults. - [Ruby SDK](https://pdfmonkey.io/docs/integrations/ruby-sdk.md): Install and use the official PDFMonkey Ruby gem to generate, fetch, list, and manage PDF documents, templates, snippets, webhooks, and more from Ruby applications. ## Account & Security - [Account Deletion](https://pdfmonkey.io/docs/account-and-security/account-deletion.md): Delete your PDFMonkey account permanently from the Dashboard. Learn about workspace ownership transfer, pending invoice requirements, and what data gets removed. - [Changing Password](https://pdfmonkey.io/docs/account-and-security/changing-password.md): Reset your PDFMonkey password from the Sign in page. Follow the step-by-step process to request a reset link, set a new password, and regain access to your account. - [Security Measures](https://pdfmonkey.io/docs/account-and-security/security-measures.md): How PDFMonkey secures your data with encryption at rest and in transit, European hosting, strict access controls, and automatic data deletion. - [Data Storage and Retention](https://pdfmonkey.io/docs/account-and-security/data-storage-and-retention.md): What data PDFMonkey stores, where it is hosted, how long documents are retained, and when automatic or manual deletion occurs. - [Compliance and DPA](https://pdfmonkey.io/docs/account-and-security/compliance-and-dpa.md): PDFMonkey is GDPR-aligned and hosted in the EU. Download the Data Processing Agreement and Data SubProcessing Agreement for your organization. ## Pricing & Billing - [Our Plans](https://pdfmonkey.io/docs/pricing-and-billing/our-plans.md): Compare all PDFMonkey plan tiers side by side. See monthly document quotas, retention limits, generation timeouts, team seats, and feature availability for each plan. - [Boost Packs](https://pdfmonkey.io/docs/pricing-and-billing/boost-packs.md): Buy one-time Boost Packs to add extra document generation credits when you exceed your monthly PDFMonkey quota. Pricing, purchase flow, and expiry rules. - [Pay as You Go](https://pdfmonkey.io/docs/pricing-and-billing/pay-as-you-go.md): Pay-as-you-go billing charges you per document generated beyond your monthly PDFMonkey quota. Available on all paid plans with no minimum purchase. - [Changing My Plan](https://pdfmonkey.io/docs/pricing-and-billing/changing-my-plan.md): How to upgrade, downgrade, or switch billing cycles on PDFMonkey. Understand proration, quota changes, feature impact, and when plan modifications take effect. ## Troubleshooting - [Document Is Blank](https://pdfmonkey.io/docs/troubleshooting/document-is-blank.md): Fix blank PDFMonkey documents: publish your template, check conditional logic, verify your payload, and inspect CSS visibility. Step-by-step solutions for every cause. - [Download URL Is Empty](https://pdfmonkey.io/docs/troubleshooting/download-url-is-empty.md): Fix an empty or null download_url in PDFMonkey. Check your document status, set it to pending to trigger generation, then poll or use a webhook to get the URL. - [Download URL Gives 403](https://pdfmonkey.io/docs/troubleshooting/download-url-gives-403.md): Fix 403 Forbidden errors on PDFMonkey download URLs. Links expire after one hour; fetch the document again via the API or an integration to get a fresh download URL. - [Data Not Showing](https://pdfmonkey.io/docs/troubleshooting/data-not-showing.md): Fix missing or blank dynamic data in PDFMonkey documents. Check variable names, JSON payload structure, case sensitivity, and nested data access for both Code and Builder templates.