Developer APINonprofits & Advocacy

Fax Campaign Infrastructure for Nonprofits

When your members click “Contact My Rep,” FaxSeal delivers their letter to the right congressional office — reliably, instantly, and with a certified receipt. One API. One credit pool. Any volume.

Faxes are queued and sent in order received. High-volume campaigns may take additional time depending on platform load.

Why advocacy organizations still use fax

Emails are filtered, calls go to voicemail. Faxes land on paper — in the office, on the desk, on the record.

📠

Every congressional office has a fax machine

Fax is still the official, accepted channel for constituent communication with US Senate and House offices. It cannot be spam-filtered.

📋

Faxes create a paper record

A fax generates a verifiable delivery timestamp and receipt — useful for lobbying disclosure, audit trails, and demonstrating constituent engagement.

📣

Higher impact per contact

Congressional staff track fax volume by issue. A coordinated fax campaign from 500 constituents registers differently than 500 emails on the same day.

How it works

Three steps from constituent action to delivered fax.

1

Constituent fills out your action form

Your platform collects the constituent's name, address (to look up their representative), and optional personalization. You match them to the right congressional fax number using the FaxSeal congress directory or your own data.

// Look up the rep's fax number in your database
const faxNumber = getRepFaxNumber(constituent.state, constituent.district);
2

Your server calls the FaxSeal API

Generate a personalized letter in HTML and POST it to /api/fax-from-selection, or upload a PDF template to /api/fax-from-file. FaxSeal queues and delivers it.

const res = await fetch('https://faxseal.com/api/fax-from-selection', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer fsx_your_org_token',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    html: generateLetter(constituent, legislator, issueTemplate),
    toNumber: faxNumber,
  }),
});
const { jobId, creditsRemaining } = await res.json();
3

Delivery confirmed — constituent notified

Poll /api/status or use the trackUrl to confirm delivery. Show your constituent a confirmation with timestamp. Credits are automatically restored if a fax fails to deliver after 3 attempts.

// Poll every 30 seconds
const status = await fetch(`https://faxseal.com/api/status?jobId=${jobId}`);
// { status: "delivered", pages: 1, toNumber: "+12025551234" }

Built for campaign scale

💳

Shared team credit pool

Buy credits once into your org's shared pool. Every API token in your workspace draws from it — no per-seat fees, no per-user billing.

📦

Buy credits in bulk

Purchase the Office Pack (100 credits for $59.99) in any quantity. 500 credits, 1,000 credits, 5,000 — buy exactly what you need.

🔄

Auto-refund on failure

If a fax fails to deliver after 3 attempts — busy signal, line disconnected, no answer — credits are automatically restored. You never pay for an undelivered fax.

Three input formats

Fax from a URL (for hosted templates), from a PDF upload (for static letters), or from raw HTML (for dynamically generated, personalized content).

🌍

US, Canada, and international

Reach federal, state, and international offices. US & Canada faxes are 1–3 credits. Europe, Australia, and 50+ other countries supported.

📊

Delivery receipts

Every delivered fax has a timestamp and job ID. Poll the status API or show your constituent the track URL for real-time confirmation.

Simple, transparent pricing

No monthly fee. No per-seat charge. Pay only for faxes sent. Credits never expire.

Fax destination1–5 pages615 pages1630 pages
US & Canada (congressional offices)1 credit2 credits3 credits
Europe, AU, JP & major markets2 credits4 credits6 credits
Rest of world3 credits6 credits9 credits

Starter Pack

10 faxes — credits never expire

$12.99

$1.30 per fax (1–5 pg, US)

Buy 10 Credits →

Pro Pack

30 faxes — no monthly commitment

$24.99

$0.83 per fax (1–5 pg, US)

Buy 30 Credits →

Office Pack

100 faxes — best value for teams

$59.99

$0.60 per fax (1–5 pg, US)

Buy 100 Credits →

Need more? Buy any pack in multiples — e.g. 5× Office Pack = 500 credits for $299.95.Buy credits →

Frequently asked questions

Can FaxSeal handle sending to hundreds of congressional offices at once?

Yes. The FaxSeal API has no per-campaign limit — you can queue faxes to as many recipients as your credit balance allows. Each call is a single fax to a single recipient; your server loops over your list and calls the API for each one. Credits can be purchased in bulk and shared across your team.

How does billing work for a constituent campaign?

Credits are pre-purchased and never expire. A 1–5 page letter to a US congressional office costs 1 credit ($0.60 on the Office Pack). You control how many credits you buy — there is no monthly fee and no per-seat charge. Your entire engineering and campaign team shares one credit pool.

Can we personalize each fax with the constituent's name and their specific issue?

Yes. The /api/fax-from-selection endpoint accepts raw HTML, so you generate the letter on your server — substituting the constituent's name, their representative's name, their district, and any issue-specific language — and pass the result directly. Each API call is one uniquely addressed, personalized fax.

Does FaxSeal provide congressional fax numbers?

Yes. FaxSeal maintains a directory of current US Senate and House fax numbers at faxseal.com/fax/congress, updated regularly from official sources. You can also use any fax number your organization already has on file.

What happens if a fax fails to deliver — do we lose the credit?

No. FaxSeal retries failed faxes up to 3 times. If delivery is not confirmed after all attempts, the credit is automatically restored to your account. You only pay for successfully delivered faxes.

Can we track whether each constituent's fax was delivered?

Yes. Every fax returns a jobId and a trackUrl. Poll the status API to get real-time delivery status — queued, sending, delivered, or failed. You can show each constituent a personalized confirmation page with the delivery timestamp.

Is there a Zapier integration for no-code campaigns?

Yes. If your team does not want to write code, the FaxSeal Zapier integration connects to Google Sheets, Airtable, HubSpot, Typeform, and 6,000+ other apps. Constituent submits a form → Zapier triggers a fax. No engineering required.

Start your first campaign

Create a free account, generate an API token, and send a test fax in under 5 minutes. No contract, no monthly commitment — pay only for faxes you send.