Skip to main content

Generate PDF

POST https://api.getdocuforge.dev/v1/generate Generate a pixel-perfect PDF from HTML or a saved template.

Request Body

ParameterTypeRequiredDescription
htmlstringEither html or templateRaw HTML to convert to PDF
templatestringEither html or templateTemplate ID (tmpl_xxx)
dataobjectNoData to merge into template variables
optionsobjectNoPDF rendering options (see below)
outputstringNo"url" (default) or "base64"
webhookstringNoURL to POST when generation completes

Options

ParameterTypeDefaultDescription
formatstring or object"A4""A4", "Letter", "Legal", or { width, height }
marginstring or object"0.5in"Uniform margin string or { top, right, bottom, left }
orientationstring"portrait""portrait" or "landscape"
headerstringHTML for page header. Supports {{pageNumber}} and {{totalPages}}
footerstringHTML for page footer. Supports {{pageNumber}} and {{totalPages}}
printBackgroundbooleantrueInclude background colors/images

Example — HTML Mode

curl -X POST https://api.getdocuforge.dev/v1/generate \
  -H "Authorization: Bearer df_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "html": "<h1>Invoice #1234</h1><p>Amount: $500</p>",
    "options": {
      "format": "A4",
      "margin": "1in",
      "footer": "<div style=\"text-align:center;font-size:10px\">Page {{pageNumber}} of {{totalPages}}</div>"
    }
  }'

Example — Template Mode

curl -X POST https://api.getdocuforge.dev/v1/generate \
  -H "Authorization: Bearer df_live_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "template": "tmpl_abc123",
    "data": {
      "company": "Acme Corp",
      "items": [{"description": "Consulting", "qty": 10, "rate": 150}],
      "total": 1500
    }
  }'

Response

{
  "id": "gen_abc123",
  "status": "completed",
  "url": "https://cdn.getdocuforge.dev/gen_abc123.pdf",
  "pages": 2,
  "file_size": 45230,
  "generation_time_ms": 1840
}

Errors

StatusCodeDescription
400VALIDATION_ERRORInvalid request body
401UNAUTHORIZEDInvalid or missing API key
403USAGE_LIMIT_EXCEEDEDMonthly PDF limit reached
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORServer error during rendering