Why I Built an Open-Source Email API That Extracts OTPs Automatically

Programmable Inbox is an open-source email API that turns incoming email into structured data – instead of handing you the raw message and leaving you to parse out the one-time password, verification link, or other value buried inside it, it extracts that for you automatically. Here’s the problem that led me to build it, and why I made sure this version could run entirely on your own infrastructure.

The problem: email APIs give you the message, not the answer

About a year ago, at my current job, I was automating a signup flow for a test. The app emailed a one-time password, and the test needed to read that password and submit it. It sounds like a small step — until you try to make it run reliably without a person watching an inbox.

I looked at the existing tools for receiving email through an API. They could hand me the message, but I still had to write code to find the OTP inside it. The same problem showed up with verification links. I didn’t want the raw email — I wanted to ask for the code or the link and get back the thing the test actually needed.

That gap is where Programmable Inbox started.

What Programmable Inbox does

Programmable Inbox gives you an email address that software can use, with an API on top of it:

  • A dedicated inbox for your app or test — receive mail at an address that isn’t tied to a person watching it.
  • Automatic extraction of OTPs, links, and structured data — call the API and get the value you need back, not the raw email body.
  • Rules for what happens next — forward a message, fire a webhook, or route it elsewhere the moment it arrives.

I built it for testing because that was the problem in front of me, but the same setup works anywhere email is how another system talks to yours — including AI agents that need an email address and a way to understand what lands in it.

Built open source and self-hostable from day one

A few years ago, I shut down my last startup, ShopAgain. Before we closed it, I wanted to open source what we had built. I liked the idea that some part of the work might be useful to someone else.

I couldn’t do it in any practical way. Running the app required several microservices, and the pieces were tied so closely to ShopAgain that getting someone else started would have meant a lot more work. We had built what we needed at the time, but not something another person could pick up and run. That bothered me, and I kept thinking about it long after the startup ended.

This time, I made a different choice from the start: Programmable Inbox is open source, and you can run the whole thing yourself with `docker compose up`. If someone finds it useful, I don’t want them to depend on my hosted version just to try it. There’s a hosted option too, including a free plan, for people who’d rather skip the setup.

Try Programmable Inbox

I worked on this during nights and weekends. For a while it was easier to keep adding things than to say it was ready for someone else to see. There are probably bugs I haven’t found, and I’m still not completely sold on the logo — but it’s live, and I’d rather hear where it helps or falls short than keep polishing it alone.


Leave a Reply

Your email address will not be published. Required fields are marked *