I Need To Send a Fax .com

Screenshot-20260923-023024

I Need to Send a fax. A phrase that still make grown technicians flinch. I ran into the problem myself a few weeks ago when I needed to get one page sent out. I ended up on a website that looked like it was designed in 2006, guarded by a captcha from roughly the same year, and it wanted to hand me off to PayPal at the end. I closed the tab, opened a terminal, and thought, I can build this better.

So I did. That is how INeedToSendAFax.com started.

The idea was simple. Let anyone send a fax from a browser. Free for a few pages, paid if you need more, and a proper API for people who want to automate the whole thing. No account, no dance. You type the number, you attach your document, you confirm, and it goes.

The part I underestimated is that fax is not email. It is a phone call. An actual modem handshake happens on the other end, over copper for at least part of the journey, and everything either syncs up perfectly or it does not. I built the service on Asterisk doing T.38 over a SIP trunk, which means the syntax of the document is negotiated in real time with whatever ancient machine answers the call. That was the fun part. I wrote a small Go worker that talks to Asterisk over the manager interface and listens for a result event when a fax finishes, then records the page count, the speed, and the mode.

Then there is the document side, which is its own little zoo. People upload PDFs, Word files, photos of paper, and the occasional thing from 1998. I normalize all of it to a fax ready image using Ghostscript, headless LibreOffice, and ImageMagick. You can attach up to ten files and they get stitched into one fax, with a cover page if you are on the free tier.

The free tier matters to me. I wanted people to be able to just try it without pulling out a card. Free faxes are capped at three pages, twice a day, and they carry my tiny bit of branding on the cover. If you need more, or you want no cover at all, it is $1.99. Payments run through Stripe, and if a paid fax cannot be delivered, I refund it automatically. Sending an unsolicited ad by fax is illegal in the United States, so I also put real abuse controls in front of the free lane, including my own little image captcha and an email confirmation link.

For the developers I built a public API. You buy credit, you get a key that starts with ifx_live, and you post a document to an endpoint. No account, the key is the account. It supports idempotent retries so a flaky network does not send your fax twice, and it signs the delivery callbacks so you can trust them.

The best bug I hit was a twenty page fax. My worker had a safety net that would assume any fax still sending after five minutes had died, and it would put the job back in the queue. Twenty pages takes longer than five minutes. So the system quietly failed the job while the call was still screaming happily down the line, then dialed the number again and started a second copy. The recipient was my own test line, thankfully. The fix was to stop guessing based on a clock and actually ask Asterisk whether the channel is still up. Live calls are never reaped now, and I cap any single call at thirty minutes just so nothing runs forever. That one taught me a lot about trusting state over timers.

The whole thing runs on one small box with one virtual core and two gigs of memory. That constraint shapes everything. Watching my memory budget while LibreOffice wakes up is a lifestyle choice. I do not expect to save the world with a fax site. But insurance offices, pharmacies, and hospitals still live in this world, and the software surrounding it deserves to be less painful than it is. If I can make one small corner of it pleasant, I will take that win.

You can try it at ineedtosendafax.com. The API lives at api.ineedtosendafax.com. Bring a document, not a fax machine.