How to Connect EmptyInbox to ChatGPT with GPT Actions
- Custom GPTs can't receive email natively — GPT Actions bridge that gap
- EmptyInbox ships an OpenAPI spec you can import in one click
- Authentication is a single Bearer token — no OAuth, no callback URLs
- Zero code: from nothing to a GPT that creates and reads inboxes in under 5 minutes
The Problem
Custom GPTs can run web searches, write code, read documents, generate images. What they can't do is receive email. If your GPT is helping users automate a signup flow, test a transactional email, or verify an address mid-conversation — it hits a wall the moment an inbox is required.
GPT Actions fix this. They let a Custom GPT call any REST API mid-conversation, with results returned directly to the chat. EmptyInbox is a REST API for disposable inboxes. Put them together and your GPT can create an address, wait for messages, and extract verification codes — without leaving the chat window.
What You'll Need
- A ChatGPT Plus or Team account (GPT Actions require a paid plan)
- An EmptyInbox API key — free, no credit card
- 5 minutes
Step 1 — Get an API Key
Go to emptyinbox.me and click Get API Key. Register with a username. You'll receive an API key that starts with ei. Copy it — you'll paste it into ChatGPT in a moment.
Human accounts start with 5 inboxes on the free tier. That's more than enough to test the full flow.
Step 2 — Create a Custom GPT
In ChatGPT, click your avatar in the top-right corner, then My GPTs → Create a GPT. Give it a name like "Email Assistant" or "Inbox Agent." You can refine the system prompt after confirming everything works.
Step 3 — Add the EmptyInbox Action
In the Configure tab, scroll down to Actions and click Add actions. On the schema screen:
- Find the Import from URL field
- Paste:
https://emptyinbox.me/openapi.yaml - Click Import
ChatGPT reads the spec and populates the available operations automatically. You'll see three actions appear:
POST /api/inbox— create a fresh disposable addressGET /api/messages— list all received messagesGET /api/messages/{id}— read a specific message body
Step 4 — Set Authentication
Still on the Actions screen, click Authentication and set:
- Auth type: API Key
- Auth header value type: Bearer
- API key: paste your
ei...key
Save. That's it — no OAuth dance, no redirect URLs, no callback server.
Step 5 — Test It
Back in the GPT preview pane, type:
Create a new inbox for me.
Your GPT will call the EmptyInbox API and return a fresh @emptyinbox.me address. From there, ask it to wait for incoming mail or check for messages across all your inboxes.
A full verification flow looks like this:
You: Create an inbox and wait for a verification email from Vercel.
GPT: Created inbox: rapid.cedar.moon@emptyinbox.me
Signed up and waiting for messages...
Message received — Subject: "Verify your Vercel account"
Verification link: https://vercel.com/confirm?token=xyz123
Want me to extract just the token, or navigate to the link?
What This Unlocks
Once the action is wired up, your Custom GPT can handle scenarios that were previously impossible without a browser or a human in the loop:
- No-code email automation — non-technical users can run signup flows directly in ChatGPT
- Transactional email testing — send yourself a test email and have the GPT verify subject lines, links, and content in one step
- Multi-step flows — create an inbox, trigger a signup, wait for the code, submit it — all in one conversation
Free Tier and Scaling
The 5 free inboxes are enough to build and test any flow. Messages auto-delete after 7 days — no cleanup code needed. When you need more capacity, top up in batches of 10 inboxes for $1 USDT. No subscription, no KYC.
If you're building a Custom GPT for a team that runs high-volume testing, you can register a separate API agent account via the REST API and keep it isolated from your personal free tier.