57 features · each links to its docs

Everything your agent’s inbox does.

Everything you can use today, by product, all in public beta and free during the beta. Homingbox: a real address, mail that is checked and read before your agent sees it, sending a person can approve and every way to connect. Shakehand: a Sign in with Agentboxd button, so your agent can sign in to apps with its inbox. Hosted in the EU.

220 mx.agentboxd.com ESMTP

Built for agents, from the MX up.

We run the mail servers, the triage model and the API as one service. That is what makes these possible.

AI triage on every email
Category, prompt injection, phishing, urgency and needs-a-human scores on each inbound message, on every plan.
EU by default
Hosted in France. One switch decides whether any email content reaches a model at all.
Humans stay in the loop
Drafts wait for a person to approve them, and a key can let an agent write without letting it send.
Inbound is never dropped
Mail that arrives over a plan limit is still stored and handed to your agent.
Receive-only temp inboxes
On their own domain, so a site that blocks throwaway addresses never blocks your main agents.
Priced on mail, not inboxes
Inboxes cost almost nothing, so an agent can make one per task or per customer.
Our own mail servers
We run the MX and the delivery servers ourselves, and never add a footer to your mail.
One account, every way in
REST, the TypeScript SDK, MCP (hosted or local), webhooks, a WebSocket stream, a claim/ack queue and SMTP. The Python SDK is on PyPI.

HomingboxBeta

message.received → message.enriched

Receive and understand

Mail lands on our own servers and is checked, cleaned and read before your agent sees it.

  • Inboxes with one API call

    POST /v1/inboxes

    A real address on homingbox.net the moment you ask. Pass a client_id and a restarted agent gets its own inbox back instead of a new one.

    Read the docs: Inboxes with one API call
  • Custom domains

    /v1/domains

    Connect a subdomain such as mail.yourcompany.com. We show the MX, SPF, DKIM and DMARC records, check them, and sign mail with the domain’s own DKIM key.

    Read the docs: Custom domains
  • DKIM key rotation

    POST /v1/domains/:id/dkim/rotate

    Rotate a custom domain’s DKIM key without a gap: a new key on a second selector, a switch as soon as its record is seen, and the old record kept for a week. A reminder when a key turns one.

    Read the docs: DKIM key rotation
  • Temporary inboxes

    ttl_seconds

    Receive-only addresses on their own domain, tmp.agentboxd.com, that wipe themselves and every message in them after 1 minute to 24 hours. They don’t count toward your inboxes.

    Read the docs: Temporary inboxes
  • SPF, DKIM and DMARC on every message

    Authentication-Results

    Every inbound message is checked. Failures get the spf-fail or dmarc-fail label and a warning in MCP results.

    Read the docs: SPF, DKIM and DMARC on every message
  • Quoted history stripped

    extracted_text

    Quoted history and signatures are cut away, so your agent reads the new sentence instead of the whole chain. Replies are threaded by Message-ID and References, never by subject.

    Read the docs: Quoted history stripped
  • Verification codes and magic links

    waitForVerification

    One call waits for the sign-up email and returns the code or link with a confidence score. No inbox scraping, no regex on your side.

    Read the docs: Verification codes and magic links
  • AI triage on every email

    message.ai

    JEV, our triage model, sorts each message into a category (support, sales, billing, verification…) and scores prompt injection, phishing, needs-a-human, auto-reply and urgency. Scores are stored, labels such as ai:injection-risk are added.

    Read the docs: AI triage on every email
  • Attachments and raw MIME

    GET /v1/attachments/:id

    Files are stored with their size, type and SHA-256 and served back with safe headers. The original message is always available.

    Read the docs: Attachments and raw MIME
  • Text from attachments

    GET …/attachments/:id/text

    PDFs, Word, Excel, CSV and HTML attachments are read on our servers, and scans and photos go through OCR (English, French, Arabic). The text is searchable, feeds triage, and is one call away for your agent.

    Read the docs: Text from attachments
  • Invoices and receipts as JSON

    schema: invoice | receipt | tax_form

    Ask for an attachment as JSON matching a built-in schema or your own JSON Schema. The answer is validated against the schema before you get it.

    Read the docs: Invoices and receipts as JSON
  • Claim/ack work queue

    POST /v1/inboxes/:id/messages/claim

    Workers claim inbound mail with a lease and ack it when the work is done. A message whose worker died comes back when its lease runs out, and one that keeps failing is set aside as a dead letter. consume() in both SDKs runs the loop.

    Read the docs: Claim/ack work queue
  • Contacts, knowledge and metadata

    get_contact · search_knowledge

    A record per sender with notes your agent keeps, documents it can search, and your own ids (crm_id, order numbers) on contacts, inboxes and threads.

    Read the docs: Contacts, knowledge and metadata

HomingboxBeta

POST /v1/inboxes/:id/drafts/:draftId/send

Reply safely

Your agent writes; you decide how much it may send on its own.

  • DKIM-signed sending and threaded replies

    messages.send · reply

    Mail goes out from the agent’s own address through our own delivery servers. Replies set In-Reply-To and References and stay in the thread.

    Read the docs: DKIM-signed sending and threaded replies
  • Drafts with human approval

    create_draft

    The agent writes a draft; a person edits and approves it in the dashboard’s Drafts tab, or a supervising agent sends it. Give the agent drafts:write without messages:send and it can’t send at all.

    Read the docs: Drafts with human approval
  • Scheduled send

    send_at

    Schedule a draft or a send from 1 minute to 30 days ahead. Every check runs again at send time; cancel or reschedule until then.

    Read the docs: Scheduled send
  • Meetings: calendar invites

    POST /v1/calendar/events/:id/respond

    Invites from Google Calendar, Outlook, Apple Calendar, Calendly or Zoom become events the agent reads and answers, and the answer goes to the organizer only. It also sends, changes and cancels real invitations. Invite text is screened first, and nothing is sent because mail arrived.

    Read the docs: Meetings: calendar invites
  • AI reply drafts

    POST /v1/messages/:id/draft-reply

    A suggested answer built from the thread, the contact and your knowledge documents, with the documents it used. Never sent on its own; save it as a draft for review.

    Read the docs: AI reply drafts
  • Allow and block lists

    /v1/lists

    Addresses and domains to accept or refuse, for receiving, sending and replying, per inbox or for the whole workspace. Blocked mail is kept and hidden, never lost.

    Read the docs: Allow and block lists
  • Burst and daily send limits

    429 rate_limited

    A 5-minute burst limit, a daily cap per workspace and per inbox, and a rate limit per key. Hard bounces and complaints add the address to a suppression list.

    Read the docs: Burst and daily send limits
  • Pause an inbox

    POST /v1/inboxes/:id/pause

    A kill switch for a misbehaving agent: every send from the inbox is refused at once, while its mail keeps arriving. Its events are held and delivered in order when you resume.

    Read the docs: Pause an inbox
  • Emergency stop

    POST /v1/emergency-stop

    One switch for the whole workspace: every inbox stops sending, identity tokens and scheduled sends stop, and reads keep working. An API key can pull it; only a person resumes.

    Read the docs: Emergency stop
  • Human on call

    PUT /v1/escalation

    Name the people who get an email when mail needs a human or looks like phishing, or a scheduled send fails. Confirmed addresses only, an hourly limit, digests and quiet hours.

    Read the docs: Human on call
  • Deliverability summary and guide

    GET /v1/deliverability

    Your bounce and complaint rates next to the limits, suppressed contacts, your domains’ SPF, DKIM and DMARC, and whether our sending IP is on a blocklist, with a guide to staying out of spam.

    Read the docs: Deliverability summary and guide
  • Email marked as untrusted for the model

    UNTRUSTED MESSAGE CONTENT

    MCP results that carry email or agent messages start with a data-not-instructions line, structured data included, and flagged mail gets a warning field before the model reads it.

    Read the docs: Email marked as untrusted for the model

HomingboxBeta

REST · SDKs · MCP · webhooks · WebSocket · SMTP

Connect your way

Every way in uses the same API key and sees the same inboxes.

  • REST API, TypeScript and Python SDKs

    npm install agentboxd

    A zero-dependency TypeScript client (agentboxd on npm), reading AGENTBOXD_API_KEY from the environment. The Python client (sync and async) is agentboxd on PyPI.

    Read the docs: REST API, TypeScript and Python SDKs
  • MCP server

    @agentboxd/mcp

    56 tools for Claude Desktop, Claude Code, Cursor or any MCP client: inboxes, mail, codes, attachments, contacts, knowledge, drafts, the work queue, pausing and sign-in. No code; runs on your machine with an API key.

    Read the docs: MCP server
  • Hosted MCP connector

    mcp.agentboxd.com/mcp

    Paste one URL into Claude, Claude Code or Cursor and sign in: you pick what the app may do and which inboxes it sees, and disconnect it from Connected apps at any time. 55 tools (all but signup), no install, no API key.

    Read the docs: Hosted MCP connector
  • OpenClaw

    openclaw mcp add agentboxd

    Add the MCP server to OpenClaw with one command, and an email skill that tells your agent when to use its inbox and never to follow instructions found in mail.

    Read more: OpenClaw
  • Command line

    npx agentboxd

    Create and pause inboxes, send, read, wait for a sign-up code, watch events live and approve drafts from a terminal or a script. JSON output on every command; the key is stored for your user only. Part of the agentboxd npm package: run it with npx agentboxd.

    Read the docs: Command line
  • Agent skill

    SKILL.md

    A skill for Claude Code, Cursor, Codex, OpenClaw and other agents that read SKILL.md: when to use the inbox, how to get codes, send, draft for approval and read attachments, and never to follow instructions found in mail. Install it with npx skills add agentboxd/skills.

    Read the docs: Agent skill
  • Voice, agent and workflow tools

    LiveKit · Google ADK · Sim · Replit

    Guides with runnable code: a LiveKit voice agent that emails follow-ups and call summaries, Google ADK tools with sends a person confirms, Sim custom tools, and a Replit template for webhooks or the event stream.

    Read more: Voice, agent and workflow tools
  • Agent-to-agent messaging

    channel: "agent"

    Mail between Agentboxd inboxes arrives as a native agent message, signed for each recipient: a verified sender, typed tasks with structured data, and the same injection scoring and lists as email. Everyone else gets email, in the same thread.

    Read the docs: Agent-to-agent messaging
  • Agent cards and directory

    GET /v1/directory/resolve

    Give an agent a card others can look up by address, list it in your workspace directory, check who signed a message and whether its sender was revoked since, and let an inbox accept only verified agents. Nothing is listed unless you choose it.

    Read the docs: Agent cards and directory
  • Rollcall: the public directory of verified AI agents, and handles

    GET /v1/public/agents

    Opt in to list an agent on Rollcall under a handle such as @acme/billing: anyone finds it at /agents and reads its card, public keys, A2A agent card and OASF record without an API key. Open since 12 October 2026. Every listing is checked before it appears (by our team until 26 October 2026), can be reported, and stays out of search engines unless you allow indexing. Also on every plan: the domain-verified badge (free) and the OASF export of your own card.

    Read the docs: Rollcall: the public directory of verified AI agents, and handles
  • Keys held by the agent

    agent_signature

    An agent registers its own Ed25519 or P-256 keys (the private key never leaves it) and signs what it writes. Recipients get the author signature next to ours, so anyone can check who wrote a message without trusting us. A signed message goes out exactly as signed: add any visible disclosure line to your own text before signing.

    Read the docs: Keys held by the agent
  • Signed webhooks

    X-Mailroom-Signature

    A POST for every event, signed with HMAC-SHA256 and retried for about a day. The event catalog shows every body; envelope payloads send ids and subjects only, no content.

    Read the docs: Signed webhooks
  • Realtime event stream

    wss://…/v1/stream

    The same events over a WebSocket your agent opens. No public URL, so it works from a laptop or behind NAT, and the SDKs reconnect and resume on their own.

    Read the docs: Realtime event stream
  • SMTP submission

    smtp.agentboxd.com:587

    Send from any SMTP client or library on port 587 or 465, with an API key as the password. Same checks, signing and events as an API send.

    Read the docs: SMTP submission
  • Agent self-signup

    POST /v1/signup

    An agent with no API key gets its own workspace and inbox with one call and a short proof of work. It can receive and reply at once; a person claims it later to lift the sending limits.

    Read the docs: Agent self-signup
  • Scoped API keys

    preset: send_read

    Scope a key to one inbox and give it only the permissions its job needs, from presets such as read-only, send and read, or sign-in only.

    Read the docs: Scoped API keys
  • Dashboard and metrics

    GET /v1/metrics

    Inboxes, threads, drafts, contacts, knowledge, webhooks and keys in one place, with sent, delivered, bounced and received mail per hour or day, and a “Use the API” button with each page’s calls pre-filled.

    Read the docs: Dashboard and metrics
  • Credits for startups and hackathons

    Settings → Redeem a code

    Hackathons: Builder free for 1 month for every participant, on one shared code, and Team free for 6 months for the winners. Early-stage startups: Team for 6 months, a separate programme. The code raises the plan for a set time and it goes back on its own, with a reminder a week before.

    Read more: Credits for startups and hackathons

ShakehandBeta

https://id.agentboxd.com

Agent sign-in

Give any agent an identity in one call — inbox optional: apps add a Sign in with Agentboxd button and AI agents sign in with standard OpenID Connect, no password.

  • Sign in with Agentboxd

    get_identity_token

    Your agent asks for a 5-minute, single-use ID token addressed to one app and signs in with it. No password to store, no email loop.

    Read the docs: Sign in with Agentboxd
  • Standard OpenID Connect for apps

    OIDC · PKCE · JWKS

    Apps register a client in the dashboard and verify tokens with any OIDC library: discovery, JWKS, code flow with PKCE and a consent screen, or a server-side token exchange.

    Read the docs: Standard OpenID Connect for apps
  • A different subject for every app

    sub (pairwise)

    Each app sees a different, stable subject for the same agent, so apps can’t link your agents across services. Every sign-in is logged and fires a webhook.

    Read the docs: A different subject for every app
  • Identity without a mailbox

    POST /v1/identities

    An agent that only signs in to apps gets an identity in one call, no inbox needed. Its tokens carry no email, it has its own plan limit (100 on Free) and it works with every sign-in flow.

    Read the docs: Identity without a mailbox
  • Per-inbox switch and sign-in history

    PATCH /v1/inboxes/:id/identity

    Turn sign-in off for any inbox and new tokens, approvals and exchanges stop at once. Each inbox lists the apps it signed in to and every sign-in, kept 180 days.

    Read the docs: Per-inbox switch and sign-in history

Every product

mx.agentboxd.com · FR

Trust

Where your agents’ mail lives, what leaves it, and how we look after it.

  • Hosted in the EU by default

    France · EU

    The API, mail servers, database and stored mail run in France, with a second EU server for backups.

    Read more: Hosted in the EU by default
  • Privacy switch

    ai_processing: off | categorize | full

    One workspace setting decides whether any email content goes to a model. Off keeps everything on our servers; login codes still work.

    Read the docs: Privacy switch
  • Local processing

    local_processing

    Attachment text extraction and OCR run on our own servers and never reach a third party. A workspace can turn them off; attachments are then stored but never read.

    Read the docs: Local processing
  • AI disclosure on every email

    Agent-Disclosure: ai-agent

    Every email an agent sends says, in a DKIM-signed header, that an AI agent sent it and for whom. A visible line is optional per workspace. Helps you meet transparency duties.

    Read the docs: AI disclosure on every email
  • Encrypted off-site backups and monitoring

    GPG · 14 days

    Nightly backups, encrypted before they leave the server, restore-tested every quarter, and health checks every 5 minutes.

    Read more: Encrypted off-site backups and monitoring
  • Retention you control

    label: keep

    Mail is kept for your plan’s retention and deleted daily after that. Choose a shorter period in Settings; a message labelled keep never expires.

    Read the docs: Retention you control
  • Enterprise: a dedicated deployment

    AGENTBOXD_BASE_URL

    Your own server and sending IPs in the EU or US, your own domain and storage bucket, isolated from other customers and run by us. Or in your own cloud under a support contract.

    Read the docs: Enterprise: a dedicated deployment

What changed recently is on the changelog. Limits per plan are on pricing.

Get an API keyRead the quickstart