Convert HTML, Markdown, and URLs to PDF. Built-in invoice & receipt templates.
All conversion and template endpoints require an API key. Pass it in the Authorization header:
Authorization: Bearer df_free_your_api_key_here
Get a free API key instantly — no credit card required:
curl -X POST https://docfast.dev/v1/signup/free \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
Convert raw HTML (with optional CSS) to a PDF document.
| Field | Type | Description |
|---|---|---|
html required | string | HTML content to convert |
css | string | Additional CSS to inject |
format | string | Page size: A4 (default), Letter, Legal, A3 |
landscape | boolean | Landscape orientation (default: false) |
margin | object | {top, right, bottom, left} in CSS units (default: 20mm each) |
curl -X POST https://docfast.dev/v1/convert/html \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>Hello World</h1><p>Generated by DocFast.</p>",
"css": "h1 { color: navy; }",
"format": "A4"
}' \
-o output.pdf
200 OK — Returns the PDF as application/pdf binary stream.
html field
401 Invalid/missing API key
429 Rate limited
Convert Markdown to a styled PDF with syntax highlighting for code blocks.
| Field | Type | Description |
|---|---|---|
markdown required | string | Markdown content |
css | string | Additional CSS to inject |
format | string | Page size (default: A4) |
landscape | boolean | Landscape orientation |
margin | object | Custom margins |
curl -X POST https://docfast.dev/v1/convert/markdown \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"markdown": "# Monthly Report\n\n## Summary\n\nRevenue increased by **15%** this quarter.\n\n| Metric | Value |\n|--------|-------|\n| Users | 1,234 |\n| MRR | $5,670 |"
}' \
-o report.pdf
200 OK — Returns application/pdf.
markdown field
401 Invalid/missing API key
Navigate to a URL and convert the rendered page to PDF. Supports JavaScript-rendered pages.
| Field | Type | Description |
|---|---|---|
url required | string | URL to convert (must start with http:// or https://) |
waitUntil | string | load (default), domcontentloaded, networkidle0, networkidle2 |
format | string | Page size (default: A4) |
landscape | boolean | Landscape orientation |
margin | object | Custom margins |
curl -X POST https://docfast.dev/v1/convert/url \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"waitUntil": "networkidle0",
"format": "Letter"
}' \
-o page.pdf
200 OK — Returns application/pdf.
List all available document templates with their field definitions.
curl https://docfast.dev/v1/templates \ -H "Authorization: Bearer YOUR_KEY"
{
"templates": [
{
"id": "invoice",
"name": "Invoice",
"description": "Professional invoice with line items, taxes, and payment details",
"fields": [
{"name": "invoiceNumber", "type": "string", "required": true},
{"name": "date", "type": "string", "required": true},
{"name": "from", "type": "object", "required": true, "description": "Sender: {name, address?, email?, phone?, vatId?}"},
{"name": "to", "type": "object", "required": true, "description": "Recipient: {name, address?, email?, vatId?}"},
{"name": "items", "type": "array", "required": true, "description": "Line items: [{description, quantity, unitPrice, taxRate?}]"},
{"name": "currency", "type": "string", "required": false},
{"name": "notes", "type": "string", "required": false},
{"name": "paymentDetails", "type": "string", "required": false}
]
},
{
"id": "receipt",
"name": "Receipt",
"description": "Simple receipt for payments received",
"fields": [ ... ]
}
]
}
Render a template with your data and get a PDF. No HTML needed — just pass structured data.
| Param | Description |
|---|---|
:id | Template ID (invoice or receipt) |
| Field | Type | Description |
|---|---|---|
data required | object | Template data (see field definitions from /v1/templates) |
curl -X POST https://docfast.dev/v1/templates/invoice/render \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": {
"invoiceNumber": "INV-2026-001",
"date": "2026-02-14",
"dueDate": "2026-03-14",
"from": {
"name": "Acme Corp",
"address": "123 Main St, Vienna",
"email": "billing@acme.com",
"vatId": "ATU12345678"
},
"to": {
"name": "Client Inc",
"address": "456 Oak Ave, Berlin",
"email": "accounts@client.com"
},
"items": [
{"description": "Web Development", "quantity": 40, "unitPrice": 95, "taxRate": 20},
{"description": "Hosting (monthly)", "quantity": 1, "unitPrice": 29}
],
"currency": "€",
"notes": "Payment due within 30 days.",
"paymentDetails": "IBAN: AT12 3456 7890 1234 5678"
}
}' \
-o invoice.pdf
200 OK — Returns application/pdf.
data field
404 Template not found
401 Invalid/missing API key
Get a free API key instantly. No authentication required.
| Field | Type | Description |
|---|---|---|
email required | string | Your email address |
curl -X POST https://docfast.dev/v1/signup/free \
-H "Content-Type: application/json" \
-d '{"email": "dev@example.com"}'
{
"message": "Welcome to DocFast! 🚀",
"apiKey": "df_free_abc123...",
"tier": "free",
"limit": "100 PDFs/month",
"docs": "https://docfast.dev/#endpoints"
}
All errors return JSON with an error field:
{
"error": "Missing 'html' field"
}
| Code | Meaning |
|---|---|
200 | Success — PDF returned as binary stream |
400 | Bad request — missing or invalid parameters |
401 | Unauthorized — missing or invalid API key |
404 | Not found — invalid endpoint or template ID |
429 | Rate limited — too many requests (100/min) |
500 | Server error — PDF generation failed |
# ❌ Missing Authorization header curl -X POST https://docfast.dev/v1/convert/html \ -d '{"html": "test"}' # → {"error": "Missing API key. Use: Authorization: Bearer <key>"} # ❌ Wrong Content-Type curl -X POST https://docfast.dev/v1/convert/html \ -H "Authorization: Bearer YOUR_KEY" \ -d '{"html": "test"}' # → Make sure to include -H "Content-Type: application/json" # ✅ Correct request curl -X POST https://docfast.dev/v1/convert/html \ -H "Authorization: Bearer YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"html": "<h1>Hello</h1>"}' \ -o output.pdf