Sign up for an account and generate your API key from the dashboard.
Send a POST request to our API with your source content and options.
Get the signed URL from the response and download your generated PDF.
/api/v1/convertConvert URL, HTML, or Markdown to PDF
{
"source": {
"url": "https://example.com", // One of: url, html, markdown
"html": "<html>...</html>",
"markdown": "# Hello World"
},
"options": {
"format": "A4", // A4, Letter, Legal, etc.
"landscape": false,
"printBackground": true,
"scale": 1,
"margin": {
"top": "20mm",
"right": "15mm",
"bottom": "20mm",
"left": "15mm"
},
"waitUntil": "networkidle", // load, domcontentloaded, networkidle
"timeoutMs": 30000,
"headerTemplateHtml": "<div>...</div>",
"footerTemplateHtml": "<div>...</div>",
"removeSelectors": [".ads", ".cookie-banner"],
"injectStyle": "body { font-family: Arial; }",
"injectScript": "window.print = function() {}"
},
"callback": {
"webhookUrl": "https://your-app.com/webhook",
"correlationId": "your-reference-id"
},
"mode": "async" // async or sync
}/api/v1/jobs/:idGet the status and result of a conversion job
{
"jobId": "job_abc123",
"status": "succeeded",
"mode": "async",
"pdf": {
"bytes": 238945,
"pages": 7,
"signedUrl": "https://cdn.pdfforge.io/...",
"contentType": "application/pdf",
"sha256": "..."
},
"json": {
"signedUrl": "https://cdn.pdfforge.io/...",
"schemaVersion": "1.0.0"
},
"metadata": {
"sourceType": "url",
"requestedAt": "2025-09-01T08:15:30.000Z",
"completedAt": "2025-09-01T08:15:34.500Z",
"durationMs": 4500,
"title": "Example Page",
"headings": ["Introduction", "Usage"],
"links": [...]
}
}/api/v1/apikeysList all API keys for your account
/api/v1/usageGet usage statistics for the last 30 days
curl -X POST https://api.pdfforge.io/v1/convert \
-H "Authorization: Bearer pf_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"source": {
"url": "https://example.com"
},
"options": {
"format": "A4",
"printBackground": true,
"margin": {
"top": "20mm",
"right": "15mm",
"bottom": "20mm",
"left": "15mm"
}
},
"mode": "async"
}'Support for URL, HTML, and Markdown inputs with full control over PDF output
Async and sync modes with guaranteed uptime and fast response times
Get notified when conversions complete with our webhook system
Success
Request completed successfully
Accepted
Async job queued for processing
Bad Request
Invalid request parameters
Unauthorized
Invalid or missing API key
Too Many Requests
Rate limit exceeded
Internal Server Error
Server error, please try again
| Plan | Requests/Hour | Monthly Conversions | API Keys |
|---|---|---|---|
| Trial | 10 | 100 | 1 |
| Free | 10 | 300 | 2 |
| Starter | 100 | 3,000 | 5 |
| Pro | 1,000 | 30,000 | 20 |
| Enterprise | Unlimited | Unlimited | 100 |