# SadaSend > SadaSend is a transactional email API with a Model Context Protocol (MCP) server and per-key agent guardrails, built for developers who let AI agents send email on their behalf. Scoped keys, recipient allowlists, and approval mode. The email API built for agents you don't fully trust yet. ## Pages - [Home](https://sadasend.com/index.md): Product overview, guardrails, MCP tools, pricing and FAQ - [Documentation](https://sadasend.com/docs): API reference, SDKs and guides - [MCP server](https://sadasend.com/#mcp): Hosted Model Context Protocol server and its tool catalogue - [Pricing](https://sadasend.com/#pricing): Free, Pro and Scale tiers - [Free tools](https://sadasend.com/#tools): SPF, DKIM, DMARC, MX and blocklist checkers ## Writing - [What actually happens when you give an AI agent your email API key](https://sadasend.com/blog/giving-an-ai-agent-your-email-api-key.md): An autonomous agent with a sending credential can email anyone, at any volume, forever. Here is the threat model, and the four key-level controls that contain it: scoped keys, recipient allowlists, approval mode and dry run. - [SPF, DKIM and DMARC: what each one actually does](https://sadasend.com/blog/spf-dkim-dmarc-explained.md): SPF authorises servers, DKIM signs messages, DMARC decides what happens when they disagree. A practical guide to configuring all three correctly, including the ten-lookup limit and why alignment is the part that breaks. - [Gmail, Yahoo and Microsoft now reject non-compliant mail. The 2026 checklist](https://sadasend.com/blog/gmail-yahoo-sender-requirements-2026.md): Since November 2025 the major mailbox providers reject non-compliant bulk mail outright rather than filtering it to spam. The requirements, the 5,000/day threshold, the 0.30% complaint ceiling, and how to check whether you are already affected. - [Nodemailer in production: what breaks, and what to do about it](https://sadasend.com/blog/nodemailer-in-production.md): Nodemailer is the right library and the wrong architecture for production sending. The failures that show up at scale — synchronous sends, no idempotency, lost retries, missing suppression — and how to fix each one. - [Why your transactional email goes to spam](https://sadasend.com/blog/why-transactional-email-goes-to-spam.md): Password resets and receipts land in spam for different reasons than marketing mail. Reputation is shared across your domain, warm-up cannot be skipped, and the fixes are mostly not about content. - [Building a transactional email queue on Bun and BullMQ without losing messages](https://sadasend.com/blog/transactional-email-queue-bun-bullmq-outbox.md): BullMQ cannot enlist in a Postgres transaction, so "row written, job never enqueued" is a real failure mode — a silently dropped email. The outbox pattern, jobId deduplication, and the Redis setting that quietly deletes your jobs. ## Company - [Careers](https://sadasend.com/careers.md): Hiring now — 3 open roles - [Security](https://sadasend.com/security.md): Encryption, credentials, abuse prevention, vulnerability disclosure - [Privacy](https://sadasend.com/privacy.md): What we collect, retention periods, subprocessors - [Terms](https://sadasend.com/terms.md): Acceptable use, deliverability thresholds, billing - [Contact](https://sadasend.com/contact.md): Support, security, abuse, sales, privacy and press ## What makes SadaSend different - **Scoped keys** — A key does one job. Every key carries an explicit scope set, its own rate limit, and a mode. An agent gets a key that can send and read — never one that can mint more keys or delete a domain. - **Recipient allowlist** — Staging can never reach production. Restrict a key to specific addresses or domains. Your development key reaches your own team and nobody else — which prevents the single most expensive mistake in email. - **Approval mode** — A human clears the send. Flag a key and its sends land in pending_approval instead of the queue. Clear them from the dashboard or a webhook. Off by default, on for anything an agent holds. - **Dry run** — Compose without sending. Validate, render and check suppression, then return exactly what would have been sent. Agents self-correct without touching a real mailbox — which makes them markedly better at the job. ## Deliberately absent from the MCP server There is no create_api_key, no delete_domain, and no remove_suppression tool. An agent that can mint its own credentials or un-suppress a complainer has no ceiling. Those operations live in the dashboard, where a human is present. ## Optional - [Full text](https://sadasend.com/llms-full.txt): Every claim on the site in one file