Introducing
Fileloom
The developer-first API that turns HTML and templates into pixel-perfect PDFs in under two seconds. 200 free every month, no credit card.
Everything the PDF pipeline needs, in one API.
- HTML to PDF
- Templates
- 70+ Helpers
- Webhooks
- Storage
- REST API
Built to integrate
Your stack. Your storage. Your rules.
Fileloom drops into any architecture. Send HTML or a template, get a polished PDF back, and route the file wherever it belongs.
Features
Everything you need to ship PDFs.
A focused toolkit for generating, templating, and delivering documents at scale.
A lightning-fast PDF engine
A full headless browser renders complete CSS3 and JavaScript, custom fonts, any page size, headers and footers, then streams a print-perfect PDF in under two seconds.
- Full CSS3 & JavaScript
- Custom fonts & Unicode
- Any page size & orientation
Reusable templates
Author once in Handlebars with live preview and version control.
Realtime webhooks
Signed events with automatic retries and full delivery logs.
Multi-cloud storage
Signed URLs, delivered to your own cloud.
70+ built-in helpers
Dates, currency, math, conditionals, loops, and more.
One REST endpoint, any language
Call Fileloom from anywhere that speaks HTTP.
How it works
From request to PDF in three steps.
Get your first document in minutes, with no infrastructure to manage.
-
Grab your API key
Sign up free and copy your key from the dashboard. No card required.
X-API-Key: fl_live_••• -
Send HTML or a template
POST your HTML or a saved templateId with JSON data. We render the rest.
POST /v1/pdf/generate -
Get your PDF
Receive a signed download URL instantly, or push it to your own storage.
Ready in 1.2s
Developer Experience
A few lines to your first PDF.
One REST endpoint. Use it from any language.
// Generate a PDF with fetch
const res = await fetch("https://api.fileloom.io/v1/pdf/generate", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "fl_your_api_key",
},
body: JSON.stringify({
templateId: "tpl_invoice_pro",
templateData: {
invoiceNumber: "INV-2025-001",
customer: "Acme Corporation",
total: 2499.00,
},
}),
});
const data = await res.json();
console.log(data.url); // signed PDF URLimport requests
res = requests.post(
"https://api.fileloom.io/v1/pdf/generate",
headers={"X-API-Key": "fl_your_api_key"},
json={
"templateId": "tpl_invoice_pro",
"templateData": {
"invoiceNumber": "INV-2025-001",
"customer": "Acme Corporation",
"total": 2499.00,
},
},
)
print(res.json()["url"]) # signed PDF URL<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => "https://api.fileloom.io/v1/pdf/generate",
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: fl_your_api_key",
],
CURLOPT_POSTFIELDS => json_encode([
"templateId" => "tpl_invoice_pro",
"templateData" => ["invoiceNumber" => "INV-2025-001"],
]),
]);
$data = json_decode(curl_exec($ch), true);
echo $data["url"]; // signed PDF URLrequire "net/http"
require "json"
uri = URI("https://api.fileloom.io/v1/pdf/generate")
req = Net::HTTP::Post.new(uri)
req["X-API-Key"] = "fl_your_api_key"
req["Content-Type"] = "application/json"
req.body = {
templateId: "tpl_invoice_pro",
templateData: { invoiceNumber: "INV-2025-001" },
}.to_json
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)["url"]package main
import (
"bytes"
"net/http"
)
func main() {
body := []byte(`{"templateId":"tpl_invoice_pro",
"templateData":{"invoiceNumber":"INV-2025-001"}}`)
req, _ := http.NewRequest("POST",
"https://api.fileloom.io/v1/pdf/generate", bytes.NewReader(body))
req.Header.Set("X-API-Key", "fl_your_api_key")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
}curl -X POST https://api.fileloom.io/v1/pdf/generate \
-H "Content-Type: application/json" \
-H "X-API-Key: fl_your_api_key" \
-d '{
"templateId": "tpl_invoice_pro",
"templateData": {
"invoiceNumber": "INV-2025-001",
"customer": "Acme Corporation",
"total": 2499.00
}
}' Pixel-perfect control
Your design. Down to the millimetre.
Control every detail of the output, sizing, margins, fonts, headers, and watermarks, so every PDF matches your brand.
Integrations
Plays well with your workflow.
Native storage targets and a REST API that works with every no-code and code platform.
Storage integrations
Write generated PDFs straight to your own cloud.
- AWS S3
Works with any platform
Automate Fileloom from your favorite tools.
- Bubble
- FlutterFlow
Pricing
Simple, transparent pricing.
Start free, then pay only for the volume you ship. Switch or cancel anytime.
Starter
For side-projects and small teams shipping their first documents.
billed yearly
Get started- 2,000 PDFs / month
- 50 templates
- 3 team members · 2 API keys
- 30-day file retention
- 5 MB HTML / 25 MB output
- 120 requests / min
- Webhooks & storage integrations
Growth
For production apps that generate documents at real volume.
billed yearly
Get started- 10,000 PDFs / month
- Unlimited templates
- 5 team members · 5 API keys
- 90-day file retention
- 10 MB HTML / 50 MB output
- 200 requests / min
- Webhooks & storage integrations
Scale
For high-throughput workloads that need analytics and SLAs.
billed yearly
Get started- 50,000 PDFs / month
- Unlimited templates
- 10 team members · 10 API keys
- 180-day file retention
- Advanced analytics
- Priority support (12h)
- 99.5% uptime SLA
Scale Business
Half a million documents a month with tighter support.
billed yearly
Get started- 500,000 PDFs / month
- 365-day file retention
- 100 MB HTML / 100 MB output
- 1,000 requests / min
- Priority support (4h)
- 99.9% uptime SLA
Scale Enterprise
Millions of documents with dedicated, around-the-clock support.
billed yearly
Contact sales- 1,000,000 PDFs / month
- 365-day file retention
- 250 MB HTML / 250 MB output
- Unlimited requests
- 24/7 dedicated support
- Up to 99.99% uptime SLA
FAQ
Frequently asked questions.
How fast are PDFs generated?
Most PDFs render in under 2 seconds, with an average of about 1.25s. Large multi-page documents may take a little longer.
Can I use my own HTML & CSS?
Yes. Send raw HTML in the request and we support custom fonts, images, full CSS3 and JavaScript.
How do template variables work?
Handlebars syntax with 70+ built-in helpers: variables, conditionals, loops, math, currency and date formatting, and more.
Where are my PDFs stored?
Firebase Storage by default with signed URLs. You can also connect your own AWS S3 or Supabase bucket.
What happens if I exceed my plan?
Buy a credit pack for extra PDFs, or upgrade your plan at any time from the dashboard.
Is there an uptime SLA?
99.5% on paid plans, 99.9% on Scale Business, and up to 99.99% on Scale Enterprise with dedicated support.
Can I cancel anytime?
Yes. Cancel or downgrade whenever you like. Access continues to the end of the billing period, with no cancellation fees.
Do you offer enterprise plans?
Scale Business and Scale Enterprise add higher limits, SSO, and custom SLAs. Reach out and we'll tailor a plan.
Get started
Start building today.
Ship your first PDF in minutes. 200 free every month, no credit card.