Skip to main content

How do I get started?

For OpenClaw, run openclaw plugins install clawhub:@openmail/openclaw then openclaw channels add --channel openmail --api-key <key>. For Hermes, run hermes plugins install openmailsh/hermes-plugin --enable then hermes openmail setup. For other agents, install the CLI with npm install -g @openmail/cli and run openmail init to create your first inbox. See the Quickstart for the full walkthrough.

How does pricing work?

You get 3 inboxes, 3,000 emails/month, and 3 GB storage free forever. No credit card required. Pro is €9/month and includes 10 inboxes, 10,000 emails, and 10 GB storage — past that you pay only for what you use: €1 per extra inbox, €0.001 per extra email, €0.10 per GB. Custom domains are unlimited on Pro. Enterprise is custom pricing for dedicated IPs, SSO, and volume discounts. Cancel anytime. See full pricing.

Can I set a spending limit?

Yes, on Pro. A spending limit is enabled by default, with an email at 80% and 100% of it — just go to Billing in the Dashboard to change the amount (or turn it off). Auto-pause, which stops sending, inbox creation, and domain creation for the rest of the billing cycle once you hit your limit, stays off by default so nothing is ever blocked unless you turn it on.

How do I get an API key?

Sign up at console.openmail.sh. Complete the setup wizard and your API key is ready immediately. See Quickstart for the full setup flow.

How do I receive inbound email?

Via WebSocket or webhook. WebSocket is recommended for agents — no public URL needed, instant delivery. Connect to wss://api.openmail.sh/v1/ws with your API key. For webhooks, set your URL in the Dashboard. See WebSockets and Webhooks for full setup.

Can an agent have multiple inboxes?

Yes. Create as many inboxes as you need. Each event includes inbox_id, so you can map it to the correct user or agent in your app. See Inboxes.

Can I create many inboxes?

Yes. One account, many inboxes. No separate tenant abstraction - create inboxes and route by inbox_id.

How do webhooks work?

Configure a webhook URL in the Dashboard. When inbound email arrives, we POST a message.received event. See Overview and Setup.

What’s the Idempotency-Key for?

It makes retries safe. The header is optional — without it OpenMail generates a key and sends once — but if your code retries on timeouts, pass a unique UUID per send so a retry never creates a duplicate email. See Idempotency.

Can I control who my inboxes talk to?

Yes, in both directions. Sender rules block specific addresses or entire domains, and allowlist mode limits an inbox to approved contacts. Inbound and outbound are set independently, at the account, pod, or inbox scope. Manage rules from Allow/Block List in the Dashboard; changes are owner-only, and every change and refusal shows up under History. See Sender rules.

How do I handle attachments?

Inbound attachments include a signed URL in the payload. Fetch promptly; URLs expire. See Attachments.