Skip to main content

Core Concepts

Before diving deeper into Fileloom, let’s understand the key concepts that make up the platform.

Workspaces

A workspace is your organization’s container in Fileloom. Everything belongs to a workspace:
  • Templates
  • Generated files
  • API keys
  • Team members
  • Billing and usage
When you sign up, a default workspace is created for you. You can invite team members to collaborate.

Team Roles

RolePermissions
OwnerFull access, billing, delete workspace
EditorCreate/edit templates, generate PDFs, manage API keys
ViewerView templates and files, generate PDFs

Templates

A template is a reusable HTML document with placeholders for dynamic data. Templates are the recommended way to generate PDFs because they:
  • Separate design from data - Update the design without changing code
  • Ensure consistency - Same template, same output every time
  • Enable non-developers - Designers can update templates without deployments
  • Improve performance - Templates are cached for faster generation

Template Structure

<!DOCTYPE html>
<html>
<head>
  <style>
    body { font-family: 'Inter', sans-serif; }
    .invoice-header { font-size: 24px; font-weight: bold; }
  </style>
</head>
<body>
  <div class="invoice-header">Invoice #{{invoiceNumber}}</div>
  <p>Customer: {{customerName}}</p>
  <p>Date: {{formatDate invoiceDate "MMMM DD, YYYY"}}</p>
  <p>Total: {{currency totalAmount "USD"}}</p>
</body>
</html>

Handlebars Syntax

Fileloom uses Handlebars for templating. Key syntax:
SyntaxDescriptionExample
{{variable}}Output a value{{customerName}}
{{helper arg}}Use a helper{{uppercase status}}
{{#each items}}Loop over array{{#each lineItems}}...{{/each}}
{{#if condition}}Conditional{{#if isPaid}}Paid{{/if}}

Credits System

Fileloom uses a credits system for PDF generation:

Monthly Quota

Each plan includes a monthly PDF quota that resets on your billing date:
PlanMonthly PDFs
Free100
Starter2,000
Growth10,000
Scale50,000
Scale Business500,000
Scale Enterprise1,000,000

Credit Packs

Need more PDFs? Purchase credit packs that never count against your monthly quota:
PackPDFsPricePer PDF
Starter500$6$0.012
Professional2,000$20$0.010
Business5,000$45$0.009
Enterprise10,000$80$0.008
Mega25,000$175$0.007
Credit packs expire 90 days after purchase. Unused credits are lost.

Consumption Order (FIFO)

When you generate a PDF, credits are consumed in this order:
  1. Monthly quota first - Use your plan’s included PDFs
  2. Credit packs second - Oldest expiring pack is used first (FIFO)
  3. Hard block - If no credits available, the request fails

API Keys

API keys authenticate your requests to the Fileloom API. Each key has:
  • Name - A friendly identifier (e.g., “Production”, “Staging”)
  • Prefix - First 8 characters shown for identification (e.g., fl_abc123...)
  • Permissions - What the key can do

Permissions

PermissionDescription
pdf.generateGenerate PDFs
pdf.readView generated files
pdf.deleteDelete files
template.readView templates
template.writeCreate/edit templates
API keys are shown only once when created. Store them securely in environment variables, never in code.

Files

Every generated PDF creates a file record that includes:
  • File ID - Unique identifier (e.g., file_1234567890_abc)
  • URL - Permanent public URL
  • Signed URL - Temporary URL (24 hours) for secure access
  • Metadata - Size, generation time, template used, etc.

Retention

Files are automatically deleted after your plan’s retention period:
PlanRetention
Free7 days
Starter30 days
Growth90 days
Scale180 days
Scale Business+365 days

Storage Modes

Choose where your PDFs are stored:

Fileloom

Default - We store your PDFs in our secure cloud storage. Simplest option.

External

Your Storage - PDFs go directly to your S3, Google Drive, or other provider.

Both

Redundant - Store in both Fileloom and your external storage.

Webhooks

Webhooks notify your application when events occur:
EventDescription
pdf.generatedPDF was successfully created
pdf.failedPDF generation failed
quota.warningApproaching quota limit (90%)
quota.exceededQuota exhausted
credits.purchasedCredit pack purchased
credits.expiringCredits expiring soon

Rate Limits

API requests are rate-limited per plan:
PlanRequests/Minute
Free10
Starter120
Growth200
Scale400
Scale Business1,000
Scale EnterpriseUnlimited
If you hit rate limits, implement exponential backoff in your code.

Next Steps