Skip to main content
ChatGPT connects to external APIs through Actions: you hand a custom GPT an OpenAPI description and an API key, and it calls the endpoints itself. Agent Mailbox publishes a ready-made spec for exactly that.

Set it up

1

Create a GPT

In ChatGPT, open Explore GPTs → Create, then switch to the Configure tab.
2

Add the Action

Scroll to Actions → Create new action, then Import from URL and paste:
Twelve operations appear — inboxes, messages, threads, search and drafts.
3

Set authentication

Click the gear beside Authentication and choose:Your existing Waterr developer key works here — see Authentication.
4

Tell it which inbox is its own

Every path takes an inbox_id, and the GPT has no way to guess yours. Put it in the instructions:
Then just talk to it:
Check my agent inbox and summarise anything that needs an answer.

What the spec covers

Twelve operations, chosen rather than exhaustive — an Action behaves better with a small, well-described set than with all 57 endpoints. Deliberately excluded: pods, domains, API-key management, raw MIME and webhook configuration. Those are administrative, and an assistant driving them by conversation is a worse idea than it sounds.
Webhooks are not part of the Action, so a GPT cannot be woken by incoming mail — it only sees mail when you ask it to look. For an agent that reacts on its own, use events from your own backend, or the Claude Code skill.

Worth knowing before you trust it

A GPT that reads email and can send email is a prompt-injection target. The message bodies it summarises are written by whoever emailed you, and instructions hidden in them can be followed. Two controls that actually help: keep the GPT on createDraft rather than sendMessage, and set a send allow-list on the inbox so the API refuses anything outside it regardless of what the model was persuaded to do.
Also true here, from Limits: a first-ever email to a stranger may be dropped silently while the API reports success, and attachment bodies are not stored — the GPT can see that a file was attached and what it was called, but not read it.

Plain OpenAI API, no GPT

If you are calling the API rather than building a GPT, the same spec loads as tool definitions:
Fill parameters from each operation’s own parameters and requestBody — the spec carries both, including which fields are required.