One engine (Chromium). Flat per-page pricing. Dashboard ledger instead of credit packs.
Api2Pdf sells credit bundles that get consumed at different rates by different engines (Chromium vs. LibreOffice vs. wkhtmltopdf). HTML2DocHub does one thing — HTML to PDF on real Chromium — for a flat ₹0.08 per rendered page. No credits, no minimum monthly spend, no engine-selection cliff.
curl -X POST https://v2.api2pdf.com/chrome/html \
-H "Authorization: YOUR_API2PDF_KEY" \
-H "Content-Type: application/json" \
-d '{
"html": "<h1>Hello</h1>",
"inlinePdf": true,
"fileName": "out.pdf",
"options": { "marginTop": "1in" }
}'curl -X POST https://api.html2dochub.com/v1/render \
-H "X-API-Key: sk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "pdf",
"html": "<h1>Hello</h1>",
"options": { "format": "A4", "margin_top": "25mm" }
}'
# Response: { "download_url": "https://...", "output_pages": 1, "final_cost": 0.10, ... }// --- Before: api2pdf-node-client
const Api2Pdf = require("api2pdf");
const a2p = new Api2Pdf("YOUR_API2PDF_KEY");
const result = await a2p.chromeHtmlToPdf({ html, inlinePdf: true });
const pdfUrl = result.FileUrl;
// --- After: plain fetch (no SDK needed)
const res = await fetch("https://api.html2dochub.com/v1/render", {
method: "POST",
headers: {
"X-API-Key": process.env.HTML2DOCHUB_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "pdf",
html,
options: { format: "A4" },
}),
});
const { download_url } = await res.json();Pay only for pages rendered. No subscriptions. No minimum monthly fee.
Free account. No credit card required. API ready in minutes.
Get your free API key