# MepMail Docs > MepMail is an open-source, Resend-compatible email platform — hosted at mepmail.dev (API: api.mepmail.dev) or self-hosted on your own AWS SES. Every page is available as raw markdown by appending `.md` to its URL. The full documentation in one file: https://docs.mepmail.dev/llms-full.txt The API's OpenAPI 3.1 spec (generated from code): https://docs.mepmail.dev/openapi.json Moving an account from Resend: `npx @mepmail/cli migrate --from resend` (read-only against Resend; reference at https://docs.mepmail.dev/cli.md). A complete agent prompt for that migration, from inventory to cutover: https://docs.mepmail.dev/prompts/migrate-from-resend.md ## Pages - [Billing (hosted deployments)](https://docs.mepmail.dev/billing.md): How plans, Stripe Checkout, and the webhook fit together on a hosted MepMail deployment, and how to provision a Stripe account for it. - [CLI](https://docs.mepmail.dev/cli.md): @mepmail/cli — move an email account to MepMail from your terminal: plan, apply, status, rollback. - [Errors](https://docs.mepmail.dev/errors.md): Every error MepMail returns — names, status codes, what they mean, and what is safe to retry. - [Introduction](https://docs.mepmail.dev/index.md): What MepMail is and how the pieces fit together. - [Integrations](https://docs.mepmail.dev/integrations.md): n8n, Slack, Discord, Telegram, MCP, the SMTP relay and the API — how MepMail fits the tools you already run. - [Mailboxes for people and agents](https://docs.mepmail.dev/mailboxes.md): Separate a personal or agent mailbox from application and campaign sending. - [MCP server](https://docs.mepmail.dev/mcp.md): Connect AI agents to MepMail through the Model Context Protocol. - [Migrate from Resend](https://docs.mepmail.dev/migrate-from-resend.md): One command moves your Resend account; two environment lines move your code, for the sending flows that follow the Resend API format. - [npm packages](https://docs.mepmail.dev/packages.md): The packages MepMail publishes on npm — @mepmail/mcp, @mepmail/cli and the n8n node — what each one does and how to install it. - [Quickstart](https://docs.mepmail.dev/quickstart.md): Get MepMail running and send your first email in a few minutes. - [Rate limits](https://docs.mepmail.dev/rate-limits.md): The request, creation and sending limits a MepMail deployment enforces — and how to work within them. - [Recipes](https://docs.mepmail.dev/recipes.md): Four end-to-end integrations — a support agent with human approval, triage without send, one agent over several mailboxes, and SaaS notifications — with the right credential, events, errors and diagnosis for each. - [SDKs](https://docs.mepmail.dev/sdks.md): Use the official Resend SDKs against your MepMail instance — there is no client of ours to install. - [Self-hosting](https://docs.mepmail.dev/self-hosting.md): Deploy MepMail on your own infrastructure with Docker Compose and your own AWS SES account. - [API reference](https://docs.mepmail.dev/api-reference.md): The MepMail HTTP API — Resend wire-compatible, generated from the server code. - [Broadcasts](https://docs.mepmail.dev/concepts/broadcasts.md): Compose, schedule, and send one email to many contacts. - [Contacts](https://docs.mepmail.dev/concepts/contacts.md): Team-global contacts with subscribe state and custom properties. - [Deliverability Insights](https://docs.mepmail.dev/concepts/deliverability-insights.md): Best-practice checks and a score for every email you send. - [Domains](https://docs.mepmail.dev/concepts/domains.md): Verify sending domains with guided DNS, BYODKIM, and per-domain configuration. - [Segments](https://docs.mepmail.dev/concepts/segments.md): Saved filters over your contacts, usable as broadcast targets. - [Suppressions](https://docs.mepmail.dev/concepts/suppressions.md): Automatic protection for your sender reputation. - [Templates](https://docs.mepmail.dev/concepts/templates.md): Reusable email content for broadcasts, managed in the dashboard or via the API. - [Topics](https://docs.mepmail.dev/concepts/topics.md): Granular subscription categories with per-contact opt-in state. - [Webhooks](https://docs.mepmail.dev/concepts/webhooks.md): Signed event deliveries for the email lifecycle, following the Standard Webhooks spec. - [List API keys](https://docs.mepmail.dev/api-reference/endpoints/api-keys/get.md): Lists the team's active API keys, never their tokens. - [Create an API key](https://docs.mepmail.dev/api-reference/endpoints/api-keys/post.md): Creates an API key; the token is returned only in this response. - [List broadcasts](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/get.md): Lists the team's broadcasts. - [Create a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/post.md): Creates a broadcast to a segment, and schedules it when send is true. - [List contact properties](https://docs.mepmail.dev/api-reference/endpoints/contact-properties/get.md): Lists the team's custom contact fields. - [Create a contact property](https://docs.mepmail.dev/api-reference/endpoints/contact-properties/post.md): Defines a custom field that every contact can carry. - [List contacts](https://docs.mepmail.dev/api-reference/endpoints/contacts/get.md): Lists the team's contacts one page at a time. - [Create a contact](https://docs.mepmail.dev/api-reference/endpoints/contacts/post.md): Creates a contact with its properties, topic subscriptions and segments. - [Get the deliverability score](https://docs.mepmail.dev/api-reference/endpoints/deliverability/get.md): Returns the account's deliverability score over the trailing 30 days. - [List domains](https://docs.mepmail.dev/api-reference/endpoints/domains/get.md): Lists the team's domains. - [Add a domain](https://docs.mepmail.dev/api-reference/endpoints/domains/post.md): Adds a sending domain and returns the DNS records to publish. - [List segments](https://docs.mepmail.dev/api-reference/endpoints/segments/get.md): Lists the team's segments. - [Create a segment](https://docs.mepmail.dev/api-reference/endpoints/segments/post.md): Creates a segment of contacts for broadcasts. - [List suppressions](https://docs.mepmail.dev/api-reference/endpoints/suppressions/get.md): Lists suppressed addresses, optionally by origin. - [Suppress an address](https://docs.mepmail.dev/api-reference/endpoints/suppressions/post.md): Blocks sending to one address. - [List templates](https://docs.mepmail.dev/api-reference/endpoints/templates/get.md): Lists the team's templates. - [Create a template](https://docs.mepmail.dev/api-reference/endpoints/templates/post.md): Creates a reusable email template; every save is live. - [List topics](https://docs.mepmail.dev/api-reference/endpoints/topics/get.md): Lists the team's topics. - [Create a topic](https://docs.mepmail.dev/api-reference/endpoints/topics/post.md): Creates a subscription topic with its default opt-in. - [Get plan and usage](https://docs.mepmail.dev/api-reference/endpoints/usage/get.md): Returns the team's plan, limits and usage in the current period. - [List webhooks](https://docs.mepmail.dev/api-reference/endpoints/webhooks/get.md): Lists the team's webhooks. - [Create a webhook](https://docs.mepmail.dev/api-reference/endpoints/webhooks/post.md): Registers an endpoint for the chosen events and returns its signing secret. - [List emails](https://docs.mepmail.dev/api-reference/endpoints/emails/get.md): Lists the team's sent and scheduled emails, newest first, one page at a time. - [Send an email](https://docs.mepmail.dev/api-reference/endpoints/emails/post.md): Queues one email for delivery, now or at scheduled_at, from a verified domain of the team. - [Revoke an API key](https://docs.mepmail.dev/api-reference/endpoints/api-keys/id/delete.md): Revokes an API key at once. - [Delete a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/id/delete.md): Deletes a draft broadcast. - [Retrieve a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/id/get.md): Returns one broadcast with its status and counts. - [Update a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/id/patch.md): Changes a draft broadcast before it is sent. - [Delete a contact property](https://docs.mepmail.dev/api-reference/endpoints/contact-properties/id/delete.md): Deletes a custom contact field and its values. - [Retrieve a contact property](https://docs.mepmail.dev/api-reference/endpoints/contact-properties/id/get.md): Returns one custom contact field. - [Update a contact property](https://docs.mepmail.dev/api-reference/endpoints/contact-properties/id/patch.md): Renames a custom contact field or changes its fallback value. - [Create contacts in bulk](https://docs.mepmail.dev/api-reference/endpoints/contacts/batch/post.md): MepMail extension: creates up to 1000 contacts in one request (Resend imports contacts only via CSV). - [Delete a contact](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/delete.md): Deletes the contact and its segment memberships. - [Retrieve a contact](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/get.md): Returns one contact by id or email address, with its properties. - [Update a contact](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/patch.md): Updates a contact's name, properties or unsubscribed flag. - [Delete a domain](https://docs.mepmail.dev/api-reference/endpoints/domains/id/delete.md): Removes a sending domain from the team. - [Retrieve a domain](https://docs.mepmail.dev/api-reference/endpoints/domains/id/get.md): Returns one domain with its DNS records and their status. - [Update a domain](https://docs.mepmail.dev/api-reference/endpoints/domains/id/patch.md): Changes a domain's click and open tracking or TLS policy. - [Delete a segment](https://docs.mepmail.dev/api-reference/endpoints/segments/id/delete.md): Deletes a segment; its contacts stay. - [Retrieve a segment](https://docs.mepmail.dev/api-reference/endpoints/segments/id/get.md): Returns one segment and its filter. - [Update a segment](https://docs.mepmail.dev/api-reference/endpoints/segments/id/patch.md): Renames a segment or changes its filter. - [Remove a suppression](https://docs.mepmail.dev/api-reference/endpoints/suppressions/id/delete.md): Unblocks one address so it can receive mail again. - [Retrieve a suppression](https://docs.mepmail.dev/api-reference/endpoints/suppressions/id/get.md): Returns one suppression by id or email address. - [Delete a topic](https://docs.mepmail.dev/api-reference/endpoints/topics/id/delete.md): Deletes a topic. - [Retrieve a topic](https://docs.mepmail.dev/api-reference/endpoints/topics/id/get.md): Returns one topic. - [Update a topic](https://docs.mepmail.dev/api-reference/endpoints/topics/id/patch.md): Renames a topic or changes its description or visibility. - [Delete a webhook](https://docs.mepmail.dev/api-reference/endpoints/webhooks/id/delete.md): Deletes a webhook; nothing is delivered to it afterwards. - [Retrieve a webhook](https://docs.mepmail.dev/api-reference/endpoints/webhooks/id/get.md): Returns one webhook, including its signing secret. - [Update a webhook](https://docs.mepmail.dev/api-reference/endpoints/webhooks/id/patch.md): Changes a webhook's endpoint, events or status. - [Send a batch of emails](https://docs.mepmail.dev/api-reference/endpoints/emails/batch/post.md): Queues up to 100 different emails in one request; each item is a send request. - [Delete an email](https://docs.mepmail.dev/api-reference/endpoints/emails/id/delete.md): Deletes an email and its events from the log. - [Retrieve an email](https://docs.mepmail.dev/api-reference/endpoints/emails/id/get.md): Returns one email with its recipients, content and last delivery event. - [Reschedule an email](https://docs.mepmail.dev/api-reference/endpoints/emails/id/patch.md): Moves a scheduled email to a new scheduled_at before it is sent. - [Cancel a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/id/cancel/post.md): Cancels a scheduled broadcast before it goes out. - [Send a broadcast](https://docs.mepmail.dev/api-reference/endpoints/broadcasts/id/send/post.md): Schedules a broadcast now or at a later time. - [Mint a preference-center link for a contact](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/preferences-link/post.md): MepMail extension. - [Read contacts in bulk](https://docs.mepmail.dev/api-reference/endpoints/contacts/batch/get/post.md): MepMail extension: returns up to 1000 contacts by id or by email address in one request, in request order, optionally with their properties and topic subscriptions. - [Delete contacts in bulk](https://docs.mepmail.dev/api-reference/endpoints/contacts/batch/remove/post.md): MepMail extension (Resend deletes contacts one at a time): deletes up to 1000 contacts by id or by email address in one request and lists the rows actually deleted; unknown ids or addresses are ski… - [List a contact's topics](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/topics/get.md): Lists every topic of the team with the contact's effective subscription. - [Update a contact's topics](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/topics/patch.md): Opts a contact in or out of topics. - [List a segment's contacts](https://docs.mepmail.dev/api-reference/endpoints/segments/id/contacts/get.md): Lists the contacts a segment resolves to right now. - [Remove suppressions in bulk](https://docs.mepmail.dev/api-reference/endpoints/suppressions/batch/remove/post.md): Unblocks up to 1,000 addresses or ids in one request. - [Rotate a webhook's signing secret](https://docs.mepmail.dev/api-reference/endpoints/webhooks/id/rotate/post.md): MepMail extension. - [Cancel a scheduled email](https://docs.mepmail.dev/api-reference/endpoints/emails/id/cancel/post.md): Cancels an email that is still scheduled, so it is never sent. - [Get email insights](https://docs.mepmail.dev/api-reference/endpoints/emails/id/insights/get.md): Returns the best-practice checks and the score computed when the email was sent. - [Verify a domain](https://docs.mepmail.dev/api-reference/endpoints/domains/id/verify/post.md): Checks the domain's DNS records now and returns each record's status. - [Create a contact in an audience](https://docs.mepmail.dev/api-reference/endpoints/audiences/audienceid/contacts/post.md): Resend-compatible route: creates a contact under an audience id. - [Delete a template](https://docs.mepmail.dev/api-reference/endpoints/templates/id/delete.md): Deletes a template; broadcasts keep their own copy. - [Retrieve a template](https://docs.mepmail.dev/api-reference/endpoints/templates/id/get.md): Returns one template by id or alias. - [Update a template](https://docs.mepmail.dev/api-reference/endpoints/templates/id/patch.md): Changes a template; the change is live immediately. - [Suppress addresses in bulk](https://docs.mepmail.dev/api-reference/endpoints/suppressions/batch/add/post.md): Blocks up to 1,000 addresses in one request. - [Remove a contact from a segment](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/segments/segmentid/delete.md): Removes a contact from a static segment. - [Add a contact to a segment](https://docs.mepmail.dev/api-reference/endpoints/contacts/id/segments/segmentid/post.md): Adds a contact to a static segment. - [Delete a contact in an audience](https://docs.mepmail.dev/api-reference/endpoints/audiences/audienceid/contacts/id/delete.md): Resend-compatible route: deletes a contact under an audience id. - [Retrieve a contact in an audience](https://docs.mepmail.dev/api-reference/endpoints/audiences/audienceid/contacts/id/get.md): Resend-compatible route: returns a contact under an audience id. - [Update a contact in an audience](https://docs.mepmail.dev/api-reference/endpoints/audiences/audienceid/contacts/id/patch.md): Resend-compatible route: updates a contact under an audience id. - [Duplicate a template](https://docs.mepmail.dev/api-reference/endpoints/templates/id/duplicate/post.md): Copies a template under a new id. - [Publish a template](https://docs.mepmail.dev/api-reference/endpoints/templates/id/publish/post.md): Kept for SDK compatibility: templates are always published.