# MillionSend Docs

> MillionSend is an open-source, Resend-compatible email platform — hosted at millionsend.com (API: api.millionsend.com) 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.millionsend.com/llms-full.txt
The API's OpenAPI 3.1 spec (generated from code): https://docs.millionsend.com/openapi.json
Moving an account from Resend: `npx @millionsend/cli migrate --from resend` (read-only against Resend; reference at https://docs.millionsend.com/cli.md).
A complete agent prompt for that migration, from inventory to cutover: https://docs.millionsend.com/prompts/migrate-from-resend.md

## Pages

- [Billing (hosted deployments)](https://docs.millionsend.com/billing.md): How plans, Stripe Checkout, and the webhook fit together on a hosted MillionSend deployment, and how to provision a Stripe account for it.
- [CLI](https://docs.millionsend.com/cli.md): @millionsend/cli — move an email account to MillionSend from your terminal: plan, apply, status, rollback.
- [Introduction](https://docs.millionsend.com/index.md): What MillionSend is and how the pieces fit together.
- [MCP server](https://docs.millionsend.com/mcp.md): Connect AI agents to MillionSend through the Model Context Protocol.
- [Migrate from Resend](https://docs.millionsend.com/migrate-from-resend.md): One command moves your Resend account; two environment lines move your code — the wire format is identical.
- [Quickstart](https://docs.millionsend.com/quickstart.md): Get MillionSend and send your first email in a few minutes.
- [SDKs](https://docs.millionsend.com/sdks.md): Official MillionSend SDKs for nine languages, published under MIT.
- [Self-hosting](https://docs.millionsend.com/self-hosting.md): Deploy MillionSend on your own infrastructure with Docker Compose and your own AWS SES account.
- [API reference](https://docs.millionsend.com/api-reference.md): The MillionSend HTTP API — Resend wire-compatible, generated from the server code.
- [Broadcasts](https://docs.millionsend.com/concepts/broadcasts.md): Compose, schedule, and send one email to many contacts.
- [Contacts](https://docs.millionsend.com/concepts/contacts.md): Team-global contacts with subscribe state and custom properties.
- [Deliverability Insights](https://docs.millionsend.com/concepts/deliverability-insights.md): Best-practice checks and a score for every email you send.
- [Domains](https://docs.millionsend.com/concepts/domains.md): Verify sending domains with guided DNS, BYODKIM, and per-domain configuration.
- [Segments](https://docs.millionsend.com/concepts/segments.md): Saved filters over your contacts, usable as broadcast targets.
- [Suppressions](https://docs.millionsend.com/concepts/suppressions.md): Automatic protection for your sender reputation.
- [Templates](https://docs.millionsend.com/concepts/templates.md): Reusable email content for broadcasts, managed in the dashboard or via the API.
- [Topics](https://docs.millionsend.com/concepts/topics.md): Granular subscription categories with per-contact opt-in state.
- [Webhooks](https://docs.millionsend.com/concepts/webhooks.md): Signed event deliveries for the email lifecycle, following the Standard Webhooks spec.
- [/api-keys](https://docs.millionsend.com/api-reference/endpoints/api-keys/get.md)
- [/api-keys](https://docs.millionsend.com/api-reference/endpoints/api-keys/post.md)
- [/broadcasts](https://docs.millionsend.com/api-reference/endpoints/broadcasts/get.md)
- [/broadcasts](https://docs.millionsend.com/api-reference/endpoints/broadcasts/post.md)
- [/contact-properties](https://docs.millionsend.com/api-reference/endpoints/contact-properties/get.md)
- [/contact-properties](https://docs.millionsend.com/api-reference/endpoints/contact-properties/post.md)
- [/contacts](https://docs.millionsend.com/api-reference/endpoints/contacts/get.md)
- [/contacts](https://docs.millionsend.com/api-reference/endpoints/contacts/post.md)
- [/deliverability](https://docs.millionsend.com/api-reference/endpoints/deliverability/get.md)
- [/domains](https://docs.millionsend.com/api-reference/endpoints/domains/get.md)
- [/domains](https://docs.millionsend.com/api-reference/endpoints/domains/post.md)
- [/segments](https://docs.millionsend.com/api-reference/endpoints/segments/get.md)
- [/segments](https://docs.millionsend.com/api-reference/endpoints/segments/post.md)
- [/emails](https://docs.millionsend.com/api-reference/endpoints/emails/get.md)
- [/emails](https://docs.millionsend.com/api-reference/endpoints/emails/post.md)
- [/templates](https://docs.millionsend.com/api-reference/endpoints/templates/get.md)
- [/templates](https://docs.millionsend.com/api-reference/endpoints/templates/post.md)
- [/suppressions](https://docs.millionsend.com/api-reference/endpoints/suppressions/get.md)
- [/suppressions](https://docs.millionsend.com/api-reference/endpoints/suppressions/post.md)
- [/usage](https://docs.millionsend.com/api-reference/endpoints/usage/get.md)
- [/topics](https://docs.millionsend.com/api-reference/endpoints/topics/get.md)
- [/topics](https://docs.millionsend.com/api-reference/endpoints/topics/post.md)
- [/webhooks](https://docs.millionsend.com/api-reference/endpoints/webhooks/get.md)
- [/webhooks](https://docs.millionsend.com/api-reference/endpoints/webhooks/post.md)
- [/api-keys/{id}](https://docs.millionsend.com/api-reference/endpoints/api-keys/id/delete.md)
- [/contact-properties/{id}](https://docs.millionsend.com/api-reference/endpoints/contact-properties/id/delete.md)
- [/contact-properties/{id}](https://docs.millionsend.com/api-reference/endpoints/contact-properties/id/get.md)
- [/contact-properties/{id}](https://docs.millionsend.com/api-reference/endpoints/contact-properties/id/patch.md)
- [/broadcasts/{id}](https://docs.millionsend.com/api-reference/endpoints/broadcasts/id/delete.md)
- [/broadcasts/{id}](https://docs.millionsend.com/api-reference/endpoints/broadcasts/id/get.md)
- [/broadcasts/{id}](https://docs.millionsend.com/api-reference/endpoints/broadcasts/id/patch.md)
- [Create contacts in bulk](https://docs.millionsend.com/api-reference/endpoints/contacts/batch/post.md)
- [/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/contacts/id/delete.md)
- [/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/contacts/id/get.md)
- [/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/contacts/id/patch.md)
- [/domains/{id}](https://docs.millionsend.com/api-reference/endpoints/domains/id/delete.md)
- [/domains/{id}](https://docs.millionsend.com/api-reference/endpoints/domains/id/get.md)
- [/domains/{id}](https://docs.millionsend.com/api-reference/endpoints/domains/id/patch.md)
- [/segments/{id}](https://docs.millionsend.com/api-reference/endpoints/segments/id/delete.md)
- [/segments/{id}](https://docs.millionsend.com/api-reference/endpoints/segments/id/get.md)
- [/segments/{id}](https://docs.millionsend.com/api-reference/endpoints/segments/id/patch.md)
- [/emails/batch](https://docs.millionsend.com/api-reference/endpoints/emails/batch/post.md)
- [/emails/{id}](https://docs.millionsend.com/api-reference/endpoints/emails/id/delete.md)
- [/emails/{id}](https://docs.millionsend.com/api-reference/endpoints/emails/id/get.md)
- [/emails/{id}](https://docs.millionsend.com/api-reference/endpoints/emails/id/patch.md)
- [/templates/{id}](https://docs.millionsend.com/api-reference/endpoints/templates/id/delete.md)
- [/templates/{id}](https://docs.millionsend.com/api-reference/endpoints/templates/id/get.md)
- [/templates/{id}](https://docs.millionsend.com/api-reference/endpoints/templates/id/patch.md)
- [/suppressions/{id}](https://docs.millionsend.com/api-reference/endpoints/suppressions/id/delete.md)
- [/suppressions/{id}](https://docs.millionsend.com/api-reference/endpoints/suppressions/id/get.md)
- [/topics/{id}](https://docs.millionsend.com/api-reference/endpoints/topics/id/delete.md)
- [/topics/{id}](https://docs.millionsend.com/api-reference/endpoints/topics/id/get.md)
- [/topics/{id}](https://docs.millionsend.com/api-reference/endpoints/topics/id/patch.md)
- [/webhooks/{id}](https://docs.millionsend.com/api-reference/endpoints/webhooks/id/delete.md)
- [/webhooks/{id}](https://docs.millionsend.com/api-reference/endpoints/webhooks/id/get.md)
- [/webhooks/{id}](https://docs.millionsend.com/api-reference/endpoints/webhooks/id/patch.md)
- [/audiences/{audienceId}/contacts](https://docs.millionsend.com/api-reference/endpoints/audiences/audienceid/contacts/post.md)
- [/broadcasts/{id}/cancel](https://docs.millionsend.com/api-reference/endpoints/broadcasts/id/cancel/post.md)
- [/broadcasts/{id}/send](https://docs.millionsend.com/api-reference/endpoints/broadcasts/id/send/post.md)
- [Read contacts in bulk](https://docs.millionsend.com/api-reference/endpoints/contacts/batch/get/post.md)
- [Mint a preference-center link for a contact](https://docs.millionsend.com/api-reference/endpoints/contacts/id/preferences-link/post.md)
- [Delete contacts in bulk](https://docs.millionsend.com/api-reference/endpoints/contacts/batch/remove/post.md)
- [/contacts/{id}/topics](https://docs.millionsend.com/api-reference/endpoints/contacts/id/topics/get.md)
- [/contacts/{id}/topics](https://docs.millionsend.com/api-reference/endpoints/contacts/id/topics/patch.md)
- [/domains/{id}/verify](https://docs.millionsend.com/api-reference/endpoints/domains/id/verify/post.md)
- [/segments/{id}/contacts](https://docs.millionsend.com/api-reference/endpoints/segments/id/contacts/get.md)
- [/emails/{id}/cancel](https://docs.millionsend.com/api-reference/endpoints/emails/id/cancel/post.md)
- [/emails/{id}/insights](https://docs.millionsend.com/api-reference/endpoints/emails/id/insights/get.md)
- [/templates/{id}/duplicate](https://docs.millionsend.com/api-reference/endpoints/templates/id/duplicate/post.md)
- [/suppressions/batch/remove](https://docs.millionsend.com/api-reference/endpoints/suppressions/batch/remove/post.md)
- [/suppressions/batch/add](https://docs.millionsend.com/api-reference/endpoints/suppressions/batch/add/post.md)
- [Rotate a webhook's signing secret](https://docs.millionsend.com/api-reference/endpoints/webhooks/id/rotate/post.md)
- [/audiences/{audienceId}/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/audiences/audienceid/contacts/id/delete.md)
- [/audiences/{audienceId}/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/audiences/audienceid/contacts/id/get.md)
- [/audiences/{audienceId}/contacts/{id}](https://docs.millionsend.com/api-reference/endpoints/audiences/audienceid/contacts/id/patch.md)
- [/templates/{id}/publish](https://docs.millionsend.com/api-reference/endpoints/templates/id/publish/post.md)
- [/contacts/{id}/segments/{segmentId}](https://docs.millionsend.com/api-reference/endpoints/contacts/id/segments/segmentid/delete.md)
- [/contacts/{id}/segments/{segmentId}](https://docs.millionsend.com/api-reference/endpoints/contacts/id/segments/segmentid/post.md)
