# Drin > Transactional + agent-native email API. Send, receive, and let AI agents run email — over REST, an SDK, a CLI, and MCP. ## Docs - [MCP server](https://docs.drin.run/agents/mcp.md): Run @drin/mcp to give any MCP-compatible agent 54 email tools. - [Agents overview](https://docs.drin.run/agents/overview.md): Give an AI agent its own email address — to send, receive, read threads, and reply. - [Create an API key](https://docs.drin.run/api-reference/api-keys/create-an-api-key.md): The secret is returned ONCE. - [List API keys](https://docs.drin.run/api-reference/api-keys/list-api-keys.md) - [Revoke an API key](https://docs.drin.run/api-reference/api-keys/revoke-an-api-key.md) - [Create a contact](https://docs.drin.run/api-reference/contacts/create-a-contact.md) - [Delete a contact](https://docs.drin.run/api-reference/contacts/delete-a-contact.md) - [List contacts](https://docs.drin.run/api-reference/contacts/list-contacts.md) - [Resubscribe a contact](https://docs.drin.run/api-reference/contacts/resubscribe-a-contact.md) - [Retrieve a contact](https://docs.drin.run/api-reference/contacts/retrieve-a-contact.md) - [Unsubscribe a contact](https://docs.drin.run/api-reference/contacts/unsubscribe-a-contact.md) - [Update a contact](https://docs.drin.run/api-reference/contacts/update-a-contact.md) - [Add a domain](https://docs.drin.run/api-reference/domains/add-a-domain.md) - [Delete a domain](https://docs.drin.run/api-reference/domains/delete-a-domain.md): Refused with 409 if the domain has sending history. - [Enable or disable receiving](https://docs.drin.run/api-reference/domains/enable-or-disable-receiving.md) - [Get receiving state](https://docs.drin.run/api-reference/domains/get-receiving-state.md) - [List domains](https://docs.drin.run/api-reference/domains/list-domains.md) - [Retrieve a domain](https://docs.drin.run/api-reference/domains/retrieve-a-domain.md) - [List attachments](https://docs.drin.run/api-reference/emails/list-attachments.md) - [List messages](https://docs.drin.run/api-reference/emails/list-messages.md) - [Reply in-thread](https://docs.drin.run/api-reference/emails/reply-in-thread.md): Threads automatically: From defaults to the parent's inbox, To to the parent's sender, subject gets a `Re:` prefix, and In-Reply-To/References are set. - [Retrieve a message](https://docs.drin.run/api-reference/emails/retrieve-a-message.md) - [Retrieve the rendered body](https://docs.drin.run/api-reference/emails/retrieve-the-rendered-body.md) - [Send a batch (up to 100)](https://docs.drin.run/api-reference/emails/send-a-batch-up-to-100.md) - [Send an email](https://docs.drin.run/api-reference/emails/send-an-email.md) - [Simulate an inbound email](https://docs.drin.run/api-reference/inbound/simulate-an-inbound-email.md): Runs the full ingest pipeline and fires your webhook. The row is flagged test_mode and excluded from metrics, quotas, and billing. - [Create an inbox](https://docs.drin.run/api-reference/inboxes/create-an-inbox.md) - [Delete an inbox](https://docs.drin.run/api-reference/inboxes/delete-an-inbox.md): Refused with 409 if the inbox has messages. - [List inboxes](https://docs.drin.run/api-reference/inboxes/list-inboxes.md) - [Retrieve an inbox](https://docs.drin.run/api-reference/inboxes/retrieve-an-inbox.md) - [API reference](https://docs.drin.run/api-reference/introduction.md): Base URL, versioning, pagination, and conventions for the Drin REST API. - [Get metrics](https://docs.drin.run/api-reference/metrics/get-metrics.md) - [Add a suppression](https://docs.drin.run/api-reference/suppressions/add-a-suppression.md) - [List suppressions](https://docs.drin.run/api-reference/suppressions/list-suppressions.md) - [Remove a suppression](https://docs.drin.run/api-reference/suppressions/remove-a-suppression.md) - [Create a template](https://docs.drin.run/api-reference/templates/create-a-template.md) - [Delete a template](https://docs.drin.run/api-reference/templates/delete-a-template.md) - [List starter templates](https://docs.drin.run/api-reference/templates/list-starter-templates.md) - [List templates](https://docs.drin.run/api-reference/templates/list-templates.md) - [Preview an unsaved template](https://docs.drin.run/api-reference/templates/preview-an-unsaved-template.md) - [Render a saved template](https://docs.drin.run/api-reference/templates/render-a-saved-template.md) - [Retrieve a template](https://docs.drin.run/api-reference/templates/retrieve-a-template.md): Accepts an id or a slug. - [Update a template](https://docs.drin.run/api-reference/templates/update-a-template.md) - [List threads](https://docs.drin.run/api-reference/threads/list-threads.md) - [Retrieve a thread](https://docs.drin.run/api-reference/threads/retrieve-a-thread.md): The full conversation, oldest to newest, both directions. - [Create a webhook](https://docs.drin.run/api-reference/webhooks/create-a-webhook.md): The signing secret is returned ONCE. - [Delete a webhook](https://docs.drin.run/api-reference/webhooks/delete-a-webhook.md) - [List webhooks](https://docs.drin.run/api-reference/webhooks/list-webhooks.md) - [Retrieve a webhook](https://docs.drin.run/api-reference/webhooks/retrieve-a-webhook.md) - [Update a webhook](https://docs.drin.run/api-reference/webhooks/update-a-webhook.md) - [Authentication](https://docs.drin.run/authentication.md): Bearer API keys, project scoping, and idempotent requests. - [Errors](https://docs.drin.run/errors.md): The error envelope, status codes, request IDs, and rate limits. - [Drin](https://docs.drin.run/introduction.md): Transactional + agent-native email. One API for sending, receiving, and letting AI agents run email — over REST, an SDK, a CLI, and MCP. - [Quickstart](https://docs.drin.run/quickstart.md): Send your first email in under a minute — get a key, copy a snippet, watch it land. - [TypeScript SDK](https://docs.drin.run/sdk/typescript.md): The official drin client — typed, with retries, pagination, and webhook verification. ## OpenAPI Specs - [openapi](https://docs.drin.run/api-reference/openapi.json)