# MailBlastr > MailBlastr is an email platform for developers: send transactional and marketing email at scale through a simple REST API or SMTP relay, with webhooks, audiences, segments, templates, automations, and deliverability tooling. Free tier available; paid plans from $14/month. Key facts: - REST API base URL: `https://api.mailblastr.com` — authenticate with an API key (`mb_` prefix) as a Bearer token. - Official SDKs: Node.js, Python, Ruby, PHP, Go, Rust, Java, .NET, plus a CLI. - SMTP relay: `smtp.mailblastr.com:587` for drop-in sending from any framework. - Sending requires a verified custom domain (DKIM/SPF/DMARC guided setup). - Webhooks cover delivery, open, click, bounce, complaint, and unsubscribe events. - Sign up at [www.mailblastr.com](https://www.mailblastr.com/) — no credit card required. ## Documentation - [Introduction](https://www.mailblastr.com/docs/index.md): MailBlastr is a developer email platform: send transactional and marketing email from your own verified domain over a clean REST API, with delivery tracking, webhooks, audiences, and campaigns. - [Create an API key](https://www.mailblastr.com/docs/create-an-api-key.md): Get started sending email by creating an API key to authenticate your MailBlastr requests. - [Add a domain](https://www.mailblastr.com/docs/add-a-domain.md): Get started sending email by adding and verifying a domain you own. - [Explore sending features](https://www.mailblastr.com/docs/explore-sending-features.md): MailBlastr has a wide range of features for sending both transactional and marketing email. - [Next.js](https://www.mailblastr.com/docs/send-with/nextjs.md): Send your first email from a Next.js Route Handler with the official mailblastr SDK. - [Node.js](https://www.mailblastr.com/docs/send-with/nodejs.md): Send your first email from Node.js using the global fetch and the MailBlastr API. - [PHP](https://www.mailblastr.com/docs/send-with/php.md): Send your first email from PHP using cURL against the MailBlastr API. - [Python](https://www.mailblastr.com/docs/send-with/python.md): Send your first email from Python using requests against the MailBlastr API. - [Ruby](https://www.mailblastr.com/docs/send-with/ruby.md): Send your first email from Ruby using Net::HTTP against the MailBlastr API. - [Go](https://www.mailblastr.com/docs/send-with/go.md): Send your first email from Go using net/http against the MailBlastr API. - [Rust](https://www.mailblastr.com/docs/send-with/rust.md): Send your first email from Rust using reqwest against the MailBlastr API. - [Elixir](https://www.mailblastr.com/docs/send-with/elixir.md): Send your first email from Elixir using Req against the MailBlastr API. - [Java](https://www.mailblastr.com/docs/send-with/java.md): Send your first email from Java using the built-in HttpClient against the MailBlastr API. - [.NET](https://www.mailblastr.com/docs/send-with/dotnet.md): Send your first email from .NET using HttpClient against the MailBlastr API. - [SMTP](https://www.mailblastr.com/docs/send-with/smtp.md): Send email through MailBlastr over SMTP using your API key as the password. - [Astro](https://www.mailblastr.com/docs/send-with/astro.md): Send your first email from an Astro Action using the mailblastr SDK. - [Nuxt](https://www.mailblastr.com/docs/send-with/nuxt.md): Send your first email from a Nuxt server route using the mailblastr SDK. - [Remix](https://www.mailblastr.com/docs/send-with/remix.md): Send your first email from a Remix resource route using the mailblastr SDK. - [SvelteKit](https://www.mailblastr.com/docs/send-with/sveltekit.md): Send your first email from a SvelteKit endpoint using the mailblastr SDK. - [RedwoodJS](https://www.mailblastr.com/docs/send-with/redwoodjs.md): Send your first email from a RedwoodJS serverless function using the mailblastr SDK. - [Express](https://www.mailblastr.com/docs/send-with/express.md): Send your first email from an Express route using the mailblastr SDK. - [Hono](https://www.mailblastr.com/docs/send-with/hono.md): Send your first email from a Hono route using the mailblastr SDK. - [Bun](https://www.mailblastr.com/docs/send-with/bun.md): Send your first email from a Bun server using the mailblastr SDK. - [Django](https://www.mailblastr.com/docs/send-with/django.md): Send your first email from a Django view by calling the MailBlastr API with requests. - [FastAPI](https://www.mailblastr.com/docs/send-with/fastapi.md): Send your first email from a FastAPI endpoint by calling the MailBlastr API with httpx. - [Flask](https://www.mailblastr.com/docs/send-with/flask.md): Send your first email from a Flask route by calling the MailBlastr API with requests. - [Laravel](https://www.mailblastr.com/docs/send-with/laravel.md): Send your first email from a Laravel controller by calling the MailBlastr API with the Http facade. - [Ruby on Rails](https://www.mailblastr.com/docs/send-with/rails.md): Send your first email from a Rails controller by calling the MailBlastr API with Net::HTTP. - [Phoenix](https://www.mailblastr.com/docs/send-with/phoenix.md): Send your first email from a Phoenix app by calling the MailBlastr API with an Elixir HTTP client. - [Sinatra](https://www.mailblastr.com/docs/send-with/sinatra.md): Send your first email from a Sinatra app using Net::HTTP against the MailBlastr API. - [Symfony](https://www.mailblastr.com/docs/send-with/symfony.md): Send your first email from a Symfony controller using the Symfony HttpClient against the MailBlastr API. - [Axum](https://www.mailblastr.com/docs/send-with/axum.md): Send your first email from an Axum handler using reqwest against the MailBlastr API. - [Encore.ts](https://www.mailblastr.com/docs/send-with/encore-ts.md): Send your first email from an Encore.ts API endpoint using the mailblastr SDK. - [Encore.go](https://www.mailblastr.com/docs/send-with/encore-go.md): Send your first email from an Encore Go API endpoint using net/http against the MailBlastr API. - [AWS Lambda](https://www.mailblastr.com/docs/send-with/aws-lambda.md): Send your first email from an AWS Lambda function using the mailblastr SDK. - [Cloudflare Workers](https://www.mailblastr.com/docs/send-with/cloudflare-workers.md): Send your first email from a Cloudflare Worker using the mailblastr SDK. - [Vercel Functions](https://www.mailblastr.com/docs/send-with/vercel-functions.md): Send your first email from a Vercel Function using the mailblastr SDK. - [Deno Deploy](https://www.mailblastr.com/docs/send-with/deno-deploy.md): Send your first email from Deno Deploy by calling the MailBlastr API with fetch. - [Supabase Edge Functions](https://www.mailblastr.com/docs/send-with/supabase-edge-functions.md): Send your first email from a Supabase Edge Function by calling the MailBlastr API with fetch. - [Railway](https://www.mailblastr.com/docs/send-with/railway.md): Deploy an app to Railway that sends your first email using the mailblastr SDK. - [Auth0](https://www.mailblastr.com/docs/send-with/auth0.md): Send Auth0 transactional emails — verification codes, password resets, and more — through MailBlastr. - [Nodemailer (SMTP)](https://www.mailblastr.com/docs/send-with/nodemailer-smtp.md): Send your first email from Node.js with Nodemailer over the MailBlastr SMTP relay. - [PHPMailer (SMTP)](https://www.mailblastr.com/docs/send-with/phpmailer-smtp.md): Send your first email from PHP with PHPMailer over the MailBlastr SMTP relay. - [WordPress (SMTP)](https://www.mailblastr.com/docs/send-with/wordpress-smtp.md): Route WordPress email through MailBlastr over SMTP with the WP Mail SMTP plugin. - [NextAuth (SMTP)](https://www.mailblastr.com/docs/send-with/nextauth-smtp.md): Send NextAuth magic-link and verification emails through MailBlastr over SMTP. - [Django (SMTP)](https://www.mailblastr.com/docs/send-with/django-smtp.md): Send email from Django through MailBlastr using the built-in SMTP email backend. - [Laravel (SMTP)](https://www.mailblastr.com/docs/send-with/laravel-smtp.md): Send email from Laravel through MailBlastr using the built-in SMTP mailer. - [Rails (SMTP)](https://www.mailblastr.com/docs/send-with/rails-smtp.md): Send email from Rails through MailBlastr using Action Mailer over SMTP. - [Supabase (SMTP)](https://www.mailblastr.com/docs/send-with/supabase-smtp.md): Send Supabase Auth emails through MailBlastr by configuring custom SMTP. - [Customer.io (SMTP)](https://www.mailblastr.com/docs/send-with/customer-io-smtp.md): Send Customer.io campaigns and transactional email through MailBlastr over SMTP. - [Retool (SMTP)](https://www.mailblastr.com/docs/send-with/retool-smtp.md): Send email from a Retool app through MailBlastr using an SMTP resource. - [Metabase (SMTP)](https://www.mailblastr.com/docs/send-with/metabase-smtp.md): Send Metabase dashboard subscriptions and alerts through MailBlastr over SMTP. - [Liferay (SMTP)](https://www.mailblastr.com/docs/send-with/liferay-smtp.md): Send email from your Liferay instance through MailBlastr over SMTP. - [Managing emails](https://www.mailblastr.com/docs/emails/managing.md): The email lifecycle, every delivery status, previewing HTML/text, and reading the per-email event log. - [Schedule email](https://www.mailblastr.com/docs/emails/schedule.md): Send an email at a future time with scheduled_at, then reschedule or cancel it before it goes out. - [Attachments](https://www.mailblastr.com/docs/emails/attachments.md): Attach files to an email as base64 content or a hosted URL, with per-file and total size limits. - [Batch sending](https://www.mailblastr.com/docs/emails/batch.md): Send up to 100 emails in a single request with POST /emails/batch. - [Custom headers](https://www.mailblastr.com/docs/emails/headers.md): Attach custom MIME headers to an email with the headers object. - [Idempotency keys](https://www.mailblastr.com/docs/emails/idempotency.md): Safely retry a send without sending twice using the Idempotency-Key header. - [Email bounces](https://www.mailblastr.com/docs/emails/bounces.md): How MailBlastr records hard and soft bounces, and auto-suppresses recipients on hard bounces. - [Email suppressions](https://www.mailblastr.com/docs/emails/suppressions.md): The account-wide suppression list: how recipients are added and how suppressed sends are skipped. - [Unsubscribe links](https://www.mailblastr.com/docs/emails/unsubscribe.md): Transactional sending is sender-driven; campaigns inject a per-contact unsubscribe link and List-Unsubscribe header automatically. - [Tags](https://www.mailblastr.com/docs/emails/tags.md): Attach name/value tags to an email for categorization and reporting. - [Embed inline images](https://www.mailblastr.com/docs/emails/embed-images.md): Reference an attachment from your HTML with a cid: source so an image renders inline in the body of the email. - [Send test emails](https://www.mailblastr.com/docs/emails/send-test.md): Simulate delivered, bounced, complained, and suppressed events with MailBlastr test addresses — without harming your domain reputation. - [Deliverability insights](https://www.mailblastr.com/docs/emails/deliverability-insights.md): Best-practice checks MailBlastr runs against a sent email, split into Attention items and Improvements, to help your mail reach the inbox. - [Receiving emails](https://www.mailblastr.com/docs/receiving/introduction.md): Receive inbound email on a MailBlastr domain: every message is parsed and delivered to your webhook as an email.received event. - [Custom receiving domains](https://www.mailblastr.com/docs/receiving/custom-domains.md): Receive inbound email on your own domain by adding an MX record and subscribing a webhook to email.received. - [Get email content](https://www.mailblastr.com/docs/receiving/get-email-content.md): Fetch the HTML body, plain text, and headers of a received email with the Receiving API. - [Process receiving attachments](https://www.mailblastr.com/docs/receiving/attachments.md): List a received email’s attachments and download each one with a short-lived download_url. - [Forward received emails](https://www.mailblastr.com/docs/receiving/forward-emails.md): Forward an inbound email to another address — either with the built-in forward endpoint, or by downloading the raw message, parsing it, and re-sending via POST /emails. - [Reply to received emails](https://www.mailblastr.com/docs/receiving/reply-to-emails.md): Reply in-thread by setting In-Reply-To (and References) to the received message_id when sending via POST /emails. - [Managing campaigns](https://www.mailblastr.com/docs/campaigns/managing.md): Compose a marketing email against a sending domain, preview merge tags, then send it now or schedule it for later — with a per-contact unsubscribe and budget-capped async delivery. - [Performance tracking](https://www.mailblastr.com/docs/campaigns/tracking.md): Every campaign recipient is sent as an individual tracked email, so opens, clicks, bounces, and complaints surface per-contact in the dashboard and via webhooks. - [Automations](https://www.mailblastr.com/docs/automations/overview.md): Automate emails with custom events. - [Steps](https://www.mailblastr.com/docs/automations/steps.md): Steps and their properties in automation workflows. - [Trigger](https://www.mailblastr.com/docs/automations/trigger.md): The first step of every automation — the event that starts a run for a contact. - [Condition](https://www.mailblastr.com/docs/automations/condition.md): Branch a contact down one of two paths based on event or contact data. - [Delay](https://www.mailblastr.com/docs/automations/delay.md): Pause an automation for a fixed duration before continuing to the next step. - [Wait for Event](https://www.mailblastr.com/docs/automations/wait-for-event.md): Hold an automation until a specific event arrives, with an optional timeout and filter rule. - [Send Email](https://www.mailblastr.com/docs/automations/send-email.md): Send a templated email to the contact as a step in your automation. - [Add to Segment](https://www.mailblastr.com/docs/automations/add-to-segment.md): Add the current contact to a segment as a step in your automation. - [Contact Update](https://www.mailblastr.com/docs/automations/contact-update.md): Update a contact's name, subscription status, or custom properties during an automation. - [Contact Delete](https://www.mailblastr.com/docs/automations/contact-delete.md): Remove the contact that triggered the automation from its audience. - [Custom Events](https://www.mailblastr.com/docs/automations/custom-events.md): Define custom events to trigger automations. - [Connections](https://www.mailblastr.com/docs/automations/connections.md): Connections between steps in automation workflows. - [Runs](https://www.mailblastr.com/docs/automations/runs.md): Monitor and debug your automation executions. - [Templates](https://www.mailblastr.com/docs/templates/overview.md): Save reusable email content and render it with variables at send time. - [Send with a template](https://www.mailblastr.com/docs/templates/sending.md): Reference a saved template from POST /emails and fill its variables. - [Working with variables](https://www.mailblastr.com/docs/templates/variables.md): Define custom variables with types and fallback values on a template, then supply their values when you send. - [Version history](https://www.mailblastr.com/docs/templates/version-history.md): Templates have a draft vs published lifecycle and a full version history, so you can iterate safely without disrupting live sends. - [Your audience](https://www.mailblastr.com/docs/audiences/overview.md): An audience is a named contact list. Build one, fill it with contacts, and send a campaign to everyone on it. - [Managing contacts](https://www.mailblastr.com/docs/audiences/contacts.md): Add contacts to an audience with an email and optional name, track their subscribe state, and address them by id or email. - [Managing unsubscribed contacts](https://www.mailblastr.com/docs/audiences/unsubscribed.md): How a contact becomes unsubscribed and why campaigns skip them. - [Segments](https://www.mailblastr.com/docs/segments/overview.md): Save reusable filters over a sending domain’s contacts and target campaigns at a subset of them. - [Topics](https://www.mailblastr.com/docs/topics/overview.md): Subscription categories within a sending domain. Contacts choose which topics they receive; a campaign can target a single topic. - [Contact properties](https://www.mailblastr.com/docs/audiences/properties.md): Store extra data on contacts with default and custom properties, then use them to personalize campaigns. - [Migrating from Audiences to Segments](https://www.mailblastr.com/docs/segments/migrating.md): How MailBlastr moved from per-audience Contacts to a global Contacts model with Segments and Topics — what changed, how unsubscribes work now, and what to do. - [Managing domains](https://www.mailblastr.com/docs/domains/managing.md): Add a sending domain, work through DNS verification, re-verify, and delete domains. - [DNS records (SPF, DKIM, DMARC)](https://www.mailblastr.com/docs/domains/dns.md): The SPF, DKIM, and DMARC records MailBlastr generates for a domain, what each one does, and how to publish them. - [Open and click tracking](https://www.mailblastr.com/docs/domains/tracking.md): Per-domain open and click tracking: how the open pixel and link rewriting work, and how events surface. - [Choosing a region](https://www.mailblastr.com/docs/domains/region.md): MailBlastr sends from a single configured region, which the MAIL FROM / SPF records reference. - [Implementing DMARC](https://www.mailblastr.com/docs/domains/dmarc.md): Publish a DMARC TXT record to protect your domain from spoofing, then graduate the policy from none to quarantine to reject. - [Implementing BIMI](https://www.mailblastr.com/docs/domains/bimi.md): Display your brand logo as the sender avatar in supporting inboxes by publishing a BIMI record backed by a DMARC policy and a mark certificate. - [Claiming a domain](https://www.mailblastr.com/docs/domains/claim.md): Take over a domain that another account has already verified by proving DNS control through the claim flow. - [Logs](https://www.mailblastr.com/docs/logs/overview.md): Every email has a per-email event timeline — sent, delivered, bounced, complained, opened, clicked, delivery_delayed — in the dashboard, via GET /emails/:id, and forwarded to webhooks. - [API keys](https://www.mailblastr.com/docs/api-keys/overview.md): Create, scope, and revoke API keys. Keys start with mb_, carry a full_access or sending_access permission, and are shown in full exactly once. - [Managing webhooks](https://www.mailblastr.com/docs/webhooks/overview.md): Subscribe an HTTPS endpoint to delivery and engagement events. MailBlastr POSTs a signed JSON payload to your URL and retries with backoff on failure. - [Event types](https://www.mailblastr.com/docs/webhooks/events.md): The full set of webhook events MailBlastr emits, the JSON payload shape, and a sample request body. - [Verify webhook requests](https://www.mailblastr.com/docs/webhooks/verify.md): Every webhook request is signed with HMAC-SHA256. Recompute the signature from the raw body and your signing secret, and compare it against the X-Mailblastr-Signature header. - [email.sent](https://www.mailblastr.com/docs/webhooks/emails/sent.md): Fires when an email is accepted by MailBlastr and handed off for delivery to the recipient's mail server. - [email.delivered](https://www.mailblastr.com/docs/webhooks/emails/delivered.md): Fires when the recipient's mail server accepts the message for delivery. - [email.delivery_delayed](https://www.mailblastr.com/docs/webhooks/emails/delivery-delayed.md): Fires when an email could not be delivered due to a temporary issue and will be retried. - [email.complained](https://www.mailblastr.com/docs/webhooks/emails/complained.md): Fires when an email was delivered but the recipient marked it as spam. - [email.bounced](https://www.mailblastr.com/docs/webhooks/emails/bounced.md): Fires when the recipient's mail server permanently rejected the email. The address is added to your suppression list. - [email.opened](https://www.mailblastr.com/docs/webhooks/emails/opened.md): Fires when the recipient opens the email. Requires open tracking on the sending domain. - [email.clicked](https://www.mailblastr.com/docs/webhooks/emails/clicked.md): Fires when the recipient clicks a tracked link in the email. Requires click tracking on the sending domain. - [email.failed](https://www.mailblastr.com/docs/webhooks/emails/failed.md): Fires when an email fails to send due to an error such as an invalid recipient, domain issue, or a reached quota. - [email.scheduled](https://www.mailblastr.com/docs/webhooks/emails/scheduled.md): Fires when an email is accepted for sending at a future time. - [email.received](https://www.mailblastr.com/docs/webhooks/emails/received.md): Fires when an inbound email arrives at one of your verified receiving domains. Carries metadata only. - [email.suppressed](https://www.mailblastr.com/docs/webhooks/emails/suppressed.md): Fires when MailBlastr suppresses a send because the address is on your account suppression list. - [contact.created](https://www.mailblastr.com/docs/webhooks/contacts/created.md): Fires when a contact is successfully created in one of your audiences. - [contact.updated](https://www.mailblastr.com/docs/webhooks/contacts/updated.md): Fires when a contact is successfully updated. - [contact.deleted](https://www.mailblastr.com/docs/webhooks/contacts/deleted.md): Fires when a contact is successfully deleted. - [domain.created](https://www.mailblastr.com/docs/webhooks/domains/created.md): Fires when a domain is successfully created, before its DNS records are verified. - [domain.updated](https://www.mailblastr.com/docs/webhooks/domains/updated.md): Fires when a domain changes — most commonly as its verification status advances. - [domain.deleted](https://www.mailblastr.com/docs/webhooks/domains/deleted.md): Fires when a domain is successfully deleted from your account. - [Retries and replays](https://www.mailblastr.com/docs/webhooks/retries-and-replays.md): How MailBlastr retries failed webhook deliveries on an exponential-backoff schedule, and how to manually replay a webhook message that failed or already succeeded. - [Webhook ingester](https://www.mailblastr.com/docs/webhooks/ingester.md): A self-hosted, open-source service that receives, verifies, and stores every MailBlastr webhook event in your own database — with signature verification, idempotent storage, and connectors for Postgres, MySQL, MongoDB, and data warehouses. - [How to store webhooks data](https://www.mailblastr.com/docs/webhooks/store-data.md): Why you should persist your MailBlastr webhook events, what to store, and a complete native-HTTP handler that verifies the signature and inserts each event into your own database. - [Managing teams](https://www.mailblastr.com/docs/settings/teams.md): Share a MailBlastr account with teammates and switch between the teams you belong to. - [Custom unsubscribe page](https://www.mailblastr.com/docs/settings/custom-unsubscribe.md): Customize the unsubscribe footer and behavior applied to your mail. - [Billing & plans](https://www.mailblastr.com/docs/settings/billing.md): How plans and usage work, and where to manage billing. - [AI Onboarding](https://www.mailblastr.com/docs/ai/onboarding.md): Everything you need to onboard your AI agent to MailBlastr — the MCP server, docs for agents, the Chat SDK, and production best practices. - [MCP Server](https://www.mailblastr.com/docs/ai/mcp-server.md): Use the MailBlastr MCP server to give your AI agent native access to the full MailBlastr platform over natural language. - [DMARC Analyzer](https://www.mailblastr.com/docs/ai/dmarc-analyzer.md): Analyze DMARC XML reports with a free, open-source tool — view it in your browser or self-host it for automated email digests. - [MailBlastr Skill](https://www.mailblastr.com/docs/ai/skill-mailblastr.md): Teach an AI agent to send single and batch emails through the MailBlastr API with built-in retries and idempotency. - [React Email Skill](https://www.mailblastr.com/docs/ai/skill-react-email.md): Teach an AI agent to build responsive, cross-client HTML emails using React components, then send the rendered HTML via MailBlastr. - [Email Best Practices Skill](https://www.mailblastr.com/docs/ai/skill-email-best-practices.md): Give an AI agent the operational knowledge to build production-ready email: authentication, compliance, deliverability, webhooks, and suppression. - [Agent Email Inbox Skill](https://www.mailblastr.com/docs/ai/skill-agent-inbox.md): Give an AI agent a secure inbox to receive and act on inbound email, with five security levels that defend against prompt injection and spoofing. - [Chat SDK](https://www.mailblastr.com/docs/ai/chat-sdk.md): A pattern for building conversational, two-way email on MailBlastr — send with the SDK, receive via webhooks, thread with email headers. - [Chat SDK Attachments](https://www.mailblastr.com/docs/ai/chat-sdk-attachments.md): Handle inbound email attachments in a conversational-email integration built on MailBlastr webhooks and the SDK. - [Chat SDK Card Emails](https://www.mailblastr.com/docs/ai/chat-sdk-cards.md): Send rich, structured HTML card emails by rendering a card object to HTML with React Email and sending it via MailBlastr. - [Chat SDK Proactive Outreach](https://www.mailblastr.com/docs/ai/chat-sdk-outreach.md): Start new email conversations proactively by sending a fresh email with the MailBlastr SDK — replies flow back through your inbound webhook. - [v0](https://www.mailblastr.com/docs/ai/v0.md): Add email sending with MailBlastr to a v0 project by asking the chat to wire it up with your API key. - [Lovable](https://www.mailblastr.com/docs/ai/lovable.md): Add email sending with MailBlastr to a Lovable project, storing your API key securely via Supabase. - [Bolt.new](https://www.mailblastr.com/docs/ai/bolt.md): Add email sending with MailBlastr to a Bolt.new project using a .env-stored API key. - [Base44](https://www.mailblastr.com/docs/ai/base44.md): Add email sending with MailBlastr to a Base44 app using backend functions and a stored API key. - [Replit](https://www.mailblastr.com/docs/ai/replit.md): Add email sending with MailBlastr to a Replit project with an API key and verified from address. - [Leap.new](https://www.mailblastr.com/docs/ai/leap.md): Add email sending with MailBlastr to a Leap.new project using an Infrastructure secret. - [Anything](https://www.mailblastr.com/docs/ai/anything.md): Add email sending with MailBlastr to an Anything project by adding the API key as a project secret. - [Devin](https://www.mailblastr.com/docs/ai/devin.md): Connect Devin to MailBlastr over MCP so the agent can send emails, manage contacts, and run campaigns. - [Paper](https://www.mailblastr.com/docs/ai/paper.md): Combine the Paper and MailBlastr MCP servers so your agent can turn a Paper design into a MailBlastr template or campaign. - [OpenClaw](https://www.mailblastr.com/docs/ai/openclaw.md): Give your OpenClaw AI agent an inbox with MailBlastr — send reports, parse newsletters and receipts, and receive replies via signed webhooks, with a leveled security model. - [Examples](https://www.mailblastr.com/docs/resources/examples.md): Copy-paste recipes for the most common MailBlastr tasks — sending, batching, scheduling, attachments, contacts, and webhooks — using nothing but an HTTP client. - [SDKs](https://www.mailblastr.com/docs/resources/sdks.md): MailBlastr ships an official Node.js SDK (`mailblastr`), and its clean REST API can be called from any HTTP client. - [CLI Quickstart](https://www.mailblastr.com/docs/resources/cli-quickstart.md): Send your first email from the terminal. MailBlastr has no dedicated CLI binary — curl plus jq covers the full API. - [CLI for AI agents](https://www.mailblastr.com/docs/resources/cli-agents.md): Use MailBlastr from AI agent workflows and CI/CD pipelines — non-interactive sends, stdin piping, batch, idempotent retries, scheduling, and webhook feedback loops, all over plain HTTP. - [CLI](https://www.mailblastr.com/docs/resources/cli.md): Drive MailBlastr from the terminal — there is no dedicated CLI, but the API is curl-friendly. - [Security](https://www.mailblastr.com/docs/resources/security.md): An overview of how MailBlastr protects your data and your account — encryption, access controls, key management, and responsible disclosure. - [Integrations](https://www.mailblastr.com/docs/resources/integrations.md): Connect MailBlastr to the tools you already use — AI builders, no-code automation, notification platforms, CMSs, and developer tools — over its clean REST API. ## API Reference - [API Reference](https://www.mailblastr.com/docs/api/introduction.md): The MailBlastr REST API: base URL, authentication, content type, idempotency, rate limits, and error format. - [Errors](https://www.mailblastr.com/docs/api/errors.md): Every error returns a JSON body with statusCode, name, and message. - [Usage limits](https://www.mailblastr.com/docs/api/limits.md): Recipient counts, batch size, attachment size, and the daily sending quota. - [Create Contact Property](https://www.mailblastr.com/docs/api/contact-properties-create.md): POST /contact-properties — define a custom property for your contacts. - [Retrieve Contact Property](https://www.mailblastr.com/docs/api/contact-properties-get.md): GET /contact-properties/:id — retrieve a contact property by its ID. - [List Contact Properties](https://www.mailblastr.com/docs/api/contact-properties-list.md): GET /contact-properties — retrieve a list of contact properties. - [Update Contact Property](https://www.mailblastr.com/docs/api/contact-properties-update.md): PATCH /contact-properties/:id — update an existing contact property. - [Delete Contact Property](https://www.mailblastr.com/docs/api/contact-properties-delete.md): DELETE /contact-properties/:id — remove an existing contact property. - [Add Contact to Segment](https://www.mailblastr.com/docs/api/contacts-add-to-segment.md): POST /contacts/:id/segments/:segment_id — add an existing contact to a segment. - [Remove Contact from Segment](https://www.mailblastr.com/docs/api/contacts-remove-from-segment.md): DELETE /contacts/:id/segments/:segment_id — remove an existing contact from a segment. - [List Contact Segments](https://www.mailblastr.com/docs/api/contacts-list-segments.md): GET /contacts/:id/segments — retrieve the segments a contact is part of. - [Retrieve Contact Topics](https://www.mailblastr.com/docs/api/contacts-get-topics.md): GET /contacts/:id/topics — retrieve a list of topic subscriptions for a contact. - [Update Contact Topics](https://www.mailblastr.com/docs/api/contacts-update-topics.md): PATCH /contacts/:id/topics — update topic subscriptions for a contact. - [List Polls](https://www.mailblastr.com/docs/api/polls-list.md): GET /polls — list emails that have in-email poll responses. - [Retrieve Poll Results](https://www.mailblastr.com/docs/api/polls-get.md): GET /polls/:emailId — the aggregated answer breakdown for one email. - [Campaign Follow-ups & Controls](https://www.mailblastr.com/docs/api/campaigns-followups.md): Engagement follow-ups, mailing-list To, and the unsubscribe policy on POST /campaigns. - [Import from Google Sheet](https://www.mailblastr.com/docs/api/audiences-import-sheet.md): POST /audiences/:id/contacts/import-sheet — import a link-shared sheet; headers become merge tags. - [Reply to Received Email](https://www.mailblastr.com/docs/api/receiving-reply.md): POST /emails/receiving/:id/reply — threaded reply to the sender; plus AI reply intent. - [List Sent Emails](https://www.mailblastr.com/docs/api/emails-list.md): GET /emails — list the emails your account has sent, newest first. - [List Attachments](https://www.mailblastr.com/docs/api/emails-list-attachments.md): GET /emails/:id/attachments — list the attachments on a sent email. - [Retrieve Attachment](https://www.mailblastr.com/docs/api/emails-get-attachment.md): GET /emails/:id/attachments/:attachment_id — fetch a single attachment from a sent email. - [List Received Emails](https://www.mailblastr.com/docs/api/emails-received-list.md): GET /emails/receiving — list the emails received by your domains. - [Retrieve Received Email](https://www.mailblastr.com/docs/api/emails-received-get.md): GET /emails/receiving/:id — fetch a single received email, its body, headers, and attachments. - [List Received Attachments](https://www.mailblastr.com/docs/api/emails-received-list-attachments.md): GET /emails/receiving/:id/attachments — list the attachments on a received email. - [Retrieve Received Attachment](https://www.mailblastr.com/docs/api/emails-received-get-attachment.md): GET /emails/receiving/:id/attachments/:attachment_id — fetch a single attachment from a received email. - [Delete Received Email](https://www.mailblastr.com/docs/api/emails-received-delete.md): DELETE /emails/receiving/:id — permanently delete a received email and its stored objects. - [Download Raw Received Email](https://www.mailblastr.com/docs/api/emails-received-raw.md): GET /emails/receiving/:id/raw — download the original RFC 822 .eml bytes for a received email. - [List Logs](https://www.mailblastr.com/docs/api/logs-list.md): GET /logs — list the API request logs for your account. - [Retrieve Log](https://www.mailblastr.com/docs/api/logs-get.md): GET /logs/:id — fetch a single API request log with its request and response bodies. - [Pagination](https://www.mailblastr.com/docs/api/pagination.md): How cursor-based pagination works across MailBlastr list endpoints: limit, after, before, and has_more. - [Claim Domain](https://www.mailblastr.com/docs/api/domains-claim.md): POST /domains/claim — claim a domain that is already verified by another account. - [Get Domain Claim](https://www.mailblastr.com/docs/api/domains-get-claim.md): GET /domains/:domain_id/claim — retrieve the latest claim for a domain. - [Verify Domain Claim](https://www.mailblastr.com/docs/api/domains-verify-claim.md): POST /domains/:domain_id/claim/verify — trigger DNS verification for a domain claim. - [Duplicate Template](https://www.mailblastr.com/docs/api/templates-duplicate.md): POST /templates/:id/duplicate — create a copy of an existing template. - [Publish Template](https://www.mailblastr.com/docs/api/templates-publish.md): POST /templates/:id/publish — publish a template so it can be used in sends. - [Create Webhook](https://www.mailblastr.com/docs/api/webhooks-create.md): POST /webhooks — create a webhook to receive real-time notifications about email events. - [Rotate Webhook Secret](https://www.mailblastr.com/docs/api/webhooks-rotate.md): POST /webhooks/:id/rotate — replace the signing secret for a webhook. - [Test Webhook](https://www.mailblastr.com/docs/api/webhooks-test.md): POST /webhooks/:id/test — send a test event to a webhook endpoint. - [Retrieve Webhook](https://www.mailblastr.com/docs/api/webhooks-get.md): GET /webhooks/:id — retrieve a single webhook. - [List Webhooks](https://www.mailblastr.com/docs/api/webhooks-list.md): GET /webhooks — list every webhook on your account. - [Update Webhook](https://www.mailblastr.com/docs/api/webhooks-update.md): PATCH /webhooks/:id — update a webhook’s endpoint, events, or status. - [Delete Webhook](https://www.mailblastr.com/docs/api/webhooks-delete.md): DELETE /webhooks/:id — remove a webhook. - [Send Event](https://www.mailblastr.com/docs/api/events-send.md): POST /events/send — send a custom event to trigger automations for a contact. - [Create Event](https://www.mailblastr.com/docs/api/events-create.md): POST /events — create a custom event definition, optionally with a payload schema. - [List Events](https://www.mailblastr.com/docs/api/events-list.md): GET /events — list your custom event definitions. - [Delete Event](https://www.mailblastr.com/docs/api/events-delete.md): DELETE /events/:id — delete a custom event definition. - [Send an email](https://www.mailblastr.com/docs/api/emails-send.md): POST /emails — send a single transactional email. - [Send a batch](https://www.mailblastr.com/docs/api/emails-batch.md): POST /emails/batch — send up to 100 emails in one request. - [Retrieve an email](https://www.mailblastr.com/docs/api/emails-get.md): GET /emails/:id — fetch an email object and its event log. - [Update an email](https://www.mailblastr.com/docs/api/emails-update.md): PATCH /emails/:id — reschedule a scheduled email. - [Cancel an email](https://www.mailblastr.com/docs/api/emails-cancel.md): POST /emails/:id/cancel — cancel a scheduled email. - [Create a domain](https://www.mailblastr.com/docs/api/domains-create.md): POST /domains — add a sending domain and get its SPF, DKIM, and DMARC records. - [Retrieve a domain](https://www.mailblastr.com/docs/api/domains-get.md): GET /domains/:id — fetch a single domain and its current DNS record statuses. - [List domains](https://www.mailblastr.com/docs/api/domains-list.md): GET /domains — list every domain on your account. - [Update a domain](https://www.mailblastr.com/docs/api/domains-update.md): PATCH /domains/:id — toggle open and click tracking. - [Verify a domain](https://www.mailblastr.com/docs/api/domains-verify.md): POST /domains/:id/verify — re-check DNS and update the domain status. - [Set up DNS automatically](https://www.mailblastr.com/docs/api/domains-dns.md): Detect a domain's DNS provider and apply records automatically via Cloudflare, GoDaddy, or Namecheap. - [Delete a domain](https://www.mailblastr.com/docs/api/domains-delete.md): DELETE /domains/:id — remove a domain and its sending identity. - [Create audience](https://www.mailblastr.com/docs/api/audiences-create.md): POST /audiences — create a new contact list. - [Retrieve audience](https://www.mailblastr.com/docs/api/audiences-get.md): GET /audiences/:id — fetch a single audience by id. - [List audiences](https://www.mailblastr.com/docs/api/audiences-list.md): GET /audiences — list every audience you own. - [Delete audience](https://www.mailblastr.com/docs/api/audiences-delete.md): DELETE /audiences/:id — delete an audience and its contacts. - [Create contact](https://www.mailblastr.com/docs/api/contacts-create.md): POST /contacts — add a contact to a sending domain (upsert by email). - [Retrieve contact](https://www.mailblastr.com/docs/api/contacts-get.md): GET /contacts/:id — fetch a contact by id or email. - [Update contact](https://www.mailblastr.com/docs/api/contacts-update.md): PATCH /contacts/:id — partially update a contact. - [Delete contact](https://www.mailblastr.com/docs/api/contacts-delete.md): DELETE /contacts/:id — remove a contact by id or email. - [List contacts](https://www.mailblastr.com/docs/api/contacts-list.md): GET /contacts — list every contact on a sending domain. - [Update audience](https://www.mailblastr.com/docs/api/audiences-update.md): PATCH /audiences/:id — rename an audience. - [Import contacts (array)](https://www.mailblastr.com/docs/api/contacts-batch.md): POST /audiences/:audience_id/contacts/batch — bulk-import contacts from a JSON array. - [Import contacts (CSV)](https://www.mailblastr.com/docs/api/contacts-import.md): POST /audiences/:audience_id/contacts/import — bulk-import contacts from a CSV. - [Create campaign](https://www.mailblastr.com/docs/api/campaigns-create.md): POST /campaigns — create a draft campaign against a sending domain. - [Retrieve campaign](https://www.mailblastr.com/docs/api/campaigns-get.md): GET /campaigns/:id — fetch a single campaign. - [List campaigns](https://www.mailblastr.com/docs/api/campaigns-list.md): GET /campaigns — list your campaigns, newest first. - [Update campaign](https://www.mailblastr.com/docs/api/campaigns-update.md): PATCH /campaigns/:id — edit a draft campaign. - [Send campaign](https://www.mailblastr.com/docs/api/campaigns-send.md): POST /campaigns/:id/send — send a draft now or schedule it. - [Cancel campaign](https://www.mailblastr.com/docs/api/campaigns-cancel.md): POST /campaigns/:id/cancel — cancel a scheduled campaign and return it to draft. - [Delete campaign](https://www.mailblastr.com/docs/api/campaigns-delete.md): DELETE /campaigns/:id — permanently delete a campaign. - [Get Campaign A/B Result](https://www.mailblastr.com/docs/api/campaigns-ab.md): GET /campaigns/:id/ab — retrieve the A/B winner evaluation for a campaign. - [Create API key](https://www.mailblastr.com/docs/api/api-keys-create.md): POST /api-keys — create a new API key. The token is returned once. - [List API keys](https://www.mailblastr.com/docs/api/api-keys-list.md): GET /api-keys — list your API keys (metadata only). - [Delete API key](https://www.mailblastr.com/docs/api/api-keys-delete.md): DELETE /api-keys/:id — revoke an API key. - [Create segment](https://www.mailblastr.com/docs/api/segments-create.md): POST /segments — save a reusable filter over a sending domain’s contacts. - [List segments](https://www.mailblastr.com/docs/api/segments-list.md): GET /segments — list a sending domain’s segments. - [Retrieve segment](https://www.mailblastr.com/docs/api/segments-get.md): GET /segments/:id — fetch a single segment. - [List segment contacts](https://www.mailblastr.com/docs/api/segments-contacts.md): GET /segments/:id/contacts — the contacts that match a segment. - [Update segment](https://www.mailblastr.com/docs/api/segments-update.md): PATCH /segments/:id — edit a segment’s name or filter. - [Delete segment](https://www.mailblastr.com/docs/api/segments-delete.md): DELETE /segments/:id — remove a segment. - [Create topic](https://www.mailblastr.com/docs/api/topics-create.md): POST /topics — create a subscription topic within a sending domain. - [List topics](https://www.mailblastr.com/docs/api/topics-list.md): GET /topics — list the topics on a sending domain. - [Retrieve topic](https://www.mailblastr.com/docs/api/topics-get.md): GET /topics/:id — retrieve a single topic. - [Update topic](https://www.mailblastr.com/docs/api/topics-update.md): PATCH /topics/:id — rename a topic or change its description. - [Delete topic](https://www.mailblastr.com/docs/api/topics-delete.md): DELETE /topics/:id — delete a topic and all per-contact subscription state for it. - [Create Automation](https://www.mailblastr.com/docs/api/automations-create.md): POST /automations — create an entire automation flow in a single request. - [Add Automation Step](https://www.mailblastr.com/docs/api/automations-add-step.md): POST /automations/:id/steps — append a step to a disabled automation. - [Update Automation](https://www.mailblastr.com/docs/api/automations-update.md): PATCH /automations/:id — rename, enable or disable, re-point the domain or trigger, or replace the connection graph. - [List Automations](https://www.mailblastr.com/docs/api/automations-list.md): GET /automations — list your automations, newest first. - [Retrieve Automation](https://www.mailblastr.com/docs/api/automations-get.md): GET /automations/:id — retrieve one automation with its steps, connections, and enrollment counts. - [Stop Automation](https://www.mailblastr.com/docs/api/automations-stop.md): POST /automations/:id/stop — stop an automation from creating new runs. - [List Automation Runs](https://www.mailblastr.com/docs/api/automations-list-runs.md): GET /automations/:id/runs — list the runs of an automation, with optional status filtering. - [Retrieve Automation Run](https://www.mailblastr.com/docs/api/automations-get-run.md): GET /automations/:id/runs/:runId — retrieve one run including its step-by-step trace. - [Delete Automation](https://www.mailblastr.com/docs/api/automations-delete.md): DELETE /automations/:id — permanently delete an automation and everything attached to it. - [Delete Automation Step](https://www.mailblastr.com/docs/api/automations-delete-step.md): DELETE /automations/:id/steps/:stepId — remove a step from a disabled automation. - [Create template](https://www.mailblastr.com/docs/api/templates-create.md): POST /templates — save a reusable template. - [List templates](https://www.mailblastr.com/docs/api/templates-list.md): GET /templates — list your templates. - [Retrieve template](https://www.mailblastr.com/docs/api/templates-get.md): GET /templates/:id — fetch a single template. - [Update template](https://www.mailblastr.com/docs/api/templates-update.md): PATCH /templates/:id — edit a template's name, subject, or body. - [Delete template](https://www.mailblastr.com/docs/api/templates-delete.md): DELETE /templates/:id — remove a template. ## Knowledge Base - [Which sending feature should I use?](https://www.mailblastr.com/docs/kb/which-sending-feature.md): Transactional emails (POST /emails) are for one-to-one app email; campaigns are for one-to-many marketing to a sending domain’s contacts. How to choose. - [What addresses can I use for testing?](https://www.mailblastr.com/docs/kb/test-addresses.md): Use the mailbox simulator addresses to deterministically trigger delivered, bounce, and complaint events without harming your reputation. - [How do I create a sender / from address?](https://www.mailblastr.com/docs/kb/create-sender.md): You do not pre-create senders in MailBlastr — any address on a verified domain works as a from. Use the Name format. - [How do I set up automated (E2E) testing?](https://www.mailblastr.com/docs/kb/e2e-testing.md): Build an end-to-end test: use a sending_access API key, send to the mailbox simulator addresses, then assert on the returned email id and the webhook events. - [Knowledge Base](https://www.mailblastr.com/docs/kb/introduction.md): A collection of answers to frequently asked questions and step-by-step guides for getting the most out of MailBlastr. - [Can I receive emails with MailBlastr?](https://www.mailblastr.com/docs/kb/receive-emails.md): Yes — MailBlastr supports receiving inbound email via webhooks. Get notified on email.received, then retrieve full content and attachments through the Receiving API. - [Forward emails with MailBlastr Inbound](https://www.mailblastr.com/docs/kb/forward-inbound.md): Receive inbound email on a verified domain, get the email.received webhook, then fetch the content and attachments and forward the message on with POST /emails. - [Embed the React Email editor](https://www.mailblastr.com/docs/kb/embed-react-email-editor.md): Add the open-source React Email visual editor to your own app: install it, mount the base editor, theme it, add the Inspector sidebar, and send the exported HTML with POST /emails. - [Template emails with React Email](https://www.mailblastr.com/docs/kb/react-email-templates.md): Author email templates as React components with React Email — full TypeScript and Tailwind support and a live preview server — then render them to HTML and send with POST /emails. - [Get started with MailBlastr and Supabase](https://www.mailblastr.com/docs/kb/supabase-getting-started.md): Send Supabase Auth emails and Edge Function emails through MailBlastr: verify your domain, route auth mail via custom SMTP or hooks, and call POST /emails from a Deno Edge Function. - [Setting up MailBlastr for multi-tenant apps](https://www.mailblastr.com/docs/kb/multi-tenant.md): Two patterns for SaaS apps that send on behalf of tenants: a single MailBlastr account with domain-scoped keys, or separate accounts (BYOK). Trade-offs in isolation, billing, and deliverability. - [Send emails with n8n and MailBlastr](https://www.mailblastr.com/docs/kb/n8n.md): Use the MailBlastr HTTP Request node in n8n to send email, plus a webhook trigger node to start workflows on delivery, bounce, and other email events. - [Add MailBlastr DNS records on Cloudflare](https://www.mailblastr.com/docs/integrations/cloudflare.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using the Cloudflare dashboard. - [Add MailBlastr DNS records on GoDaddy](https://www.mailblastr.com/docs/integrations/godaddy.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using the GoDaddy DNS Management page. - [Add MailBlastr DNS records on Namecheap](https://www.mailblastr.com/docs/integrations/namecheap.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Namecheap’s Advanced DNS tab. - [Add MailBlastr DNS records on AWS Route 53](https://www.mailblastr.com/docs/integrations/route53.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain in an AWS Route 53 hosted zone. - [Add MailBlastr DNS records on Vercel](https://www.mailblastr.com/docs/integrations/vercel.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Vercel’s Domains DNS records UI. - [Add MailBlastr DNS records on Squarespace / Google Domains](https://www.mailblastr.com/docs/integrations/squarespace.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Squarespace Domains (which now manages former Google Domains). - [What if my domain isn't verifying?](https://www.mailblastr.com/docs/kb/domain-not-verifying.md): A step-by-step checklist for a domain stuck at pending or failed: confirm the records were added exactly, wait for propagation, clear conflicting records, and re-verify. - [Should I send from a subdomain or the root domain?](https://www.mailblastr.com/docs/kb/subdomain-vs-root.md): Why sending from a dedicated subdomain like mail. or send. isolates sending reputation from your root domain — and how a verified root already covers its subdomains. - [Do I need 2048-bit DKIM?](https://www.mailblastr.com/docs/kb/dkim-key-size.md): How DKIM key size is handled in MailBlastr — it generates a 2048-bit key pair for you and you publish one DKIM TXT record holding the public key, so there is no size to choose. - [How do I avoid conflicts with my MX records?](https://www.mailblastr.com/docs/kb/mx-conflicts.md): The MX record MailBlastr adds lives on the send. MAIL FROM subdomain and only routes bounce/complaint feedback — it is separate from your inbound MX. Never remove your real MX records. - [DMARC explained: policy, alignment, and rollout](https://www.mailblastr.com/docs/kb/dmarc.md): What DMARC is, why MailBlastr starts you at p=none, how to monitor and then tighten to quarantine or reject, and how alignment works through the SPF MAIL FROM and DKIM. - [DreamHost](https://www.mailblastr.com/docs/kb/dreamhost.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using the DreamHost panel’s DNS editor. - [Gandi](https://www.mailblastr.com/docs/kb/gandi.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Gandi’s DNS Records tab — including the required trailing dot on MX values. - [Hetzner](https://www.mailblastr.com/docs/kb/hetzner.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using the Hetzner Console (or legacy Hetzner DNS Console). - [Hostinger](https://www.mailblastr.com/docs/kb/hostinger.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Hostinger’s DNS / Nameservers manager. - [IONOS](https://www.mailblastr.com/docs/kb/ionos.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using the IONOS DNS manager. - [Porkbun](https://www.mailblastr.com/docs/kb/porkbun.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain using Porkbun’s DNS editor. - [Strato](https://www.mailblastr.com/docs/kb/strato.md): Publish the SPF, DKIM, and DMARC records MailBlastr generates for your domain on Strato — including creating the send subdomain to host the MX record. - [Domain already registered by another account](https://www.mailblastr.com/docs/kb/domain-already-registered.md): Resolve the 403 “domain already registered” error by confirming domain ownership and account access, and requesting a release if needed. - [How do I send with an avatar?](https://www.mailblastr.com/docs/kb/send-with-avatar.md): Show your logo or photo as an avatar in recipients' inboxes. Per-provider profile pictures only cover that provider; BIMI and Apple Branded Mail let your logo show across an entire domain. - [How do I set up Apple Branded Mail?](https://www.mailblastr.com/docs/kb/apple-branded-mail.md): Apple Branded Mail displays your logo as an avatar in Apple Mail on recent iOS, iPadOS, and macOS. It needs no certificate, accepts more image formats than BIMI, and requires a strict DMARC policy plus an Apple Business Connect account. - [How to avoid Gmail's spam folder](https://www.mailblastr.com/docs/kb/avoid-gmail-spam.md): Gmail filters on authentication, sender reputation, and recipient engagement. Authenticate your domain, keep complaints low, and send mail people want. - [How to avoid Outlook's spam folder](https://www.mailblastr.com/docs/kb/avoid-outlook-spam.md): Outlook and Microsoft 365 weight sender reputation heavily and run aggressive link/attachment scanners. Authenticate, build reputation slowly, and keep complaints near zero. - [How to avoid iCloud's spam folder](https://www.mailblastr.com/docs/kb/avoid-icloud-spam.md): Apple's iCloud Mail is strict on authentication and complaints, and Apple Mail Privacy Protection inflates open rates. Authenticate, keep lists clean, and don't trust opens from Apple clients. - [Why are my emails going to spam?](https://www.mailblastr.com/docs/kb/why-spam.md): The usual culprits: missing authentication, weak sender reputation, high complaints, poor list hygiene, sudden volume spikes, or spammy content — and how to fix each. - [Why is an address on my suppression list?](https://www.mailblastr.com/docs/kb/suppression-list.md): MailBlastr auto-adds an address to your account-wide suppression list on a hard bounce, a complaint, or an unsubscribe — and skips it on every later send to protect your reputation. - [Domain & sending warm-up guide](https://www.mailblastr.com/docs/kb/warm-up.md): Build sender reputation by ramping volume gradually and mailing your most engaged recipients first. A practical schedule for new domains. - [Should I add an unsubscribe link?](https://www.mailblastr.com/docs/kb/unsubscribe-link.md): Yes for bulk and marketing mail — it's required by law and by mailbox providers. MailBlastr campaigns auto-inject a per-contact link and a List-Unsubscribe header. Transactional opt-out is sender-driven. - [What counts as email consent?](https://www.mailblastr.com/docs/kb/consent.md): Explicit opt-in is real consent; purchased and scraped lists are not. A practical look at CAN-SPAM and CASL basics and what they require. - [Keeping your audiences healthy](https://www.mailblastr.com/docs/kb/audience-hygiene.md): Remove bounces and unsubscribes, re-engage or drop inactive contacts, and watch your complaint rate. A clean list is the foundation of inbox placement. - [Maximize deliverability for Supabase Auth emails](https://www.mailblastr.com/docs/kb/supabase-auth-deliverability.md): Five steps to land Supabase authentication emails — verifications, magic links, password resets — in the inbox when sending through MailBlastr: custom domain, a dedicated subdomain, no tracking, link-scanner handling, and DMARC. - [Sending to Apple Private Relay](https://www.mailblastr.com/docs/kb/apple-private-relay.md): Reliably deliver to @privaterelay.appleid.com (Sign in with Apple's Hide My Email). Register your sending domains — including MailBlastr's return-path subdomain — and from-addresses in the Apple Developer Portal, and authenticate with SPF and DKIM. - [How do Dedicated IPs work?](https://www.mailblastr.com/docs/kb/dedicated-ips.md): MailBlastr sends on a shared, professionally-managed IP pool — there are no dedicated IPs. Here's why that's the right default for most senders, what dedicated IPs actually buy you, and when they help versus hurt. - [Why use Topics?](https://www.mailblastr.com/docs/kb/why-use-topics.md): Topics let recipients opt out of one kind of email without unsubscribing from everything. That keeps engagement high and complaints low — which protects deliverability. Here's when to use Topics, and how they differ from Segments. - [Account quotas and limits](https://www.mailblastr.com/docs/kb/quotas.md): How the daily sending quota, per-request limits, and rate limiting work — and how to get your quota raised. - [Does MailBlastr require production approval?](https://www.mailblastr.com/docs/kb/production-approval.md): New MailBlastr accounts start in a sending sandbox. Until your account has production access, sending is capped to sandbox limits. - [How to handle API keys securely](https://www.mailblastr.com/docs/kb/handling-api-keys.md): Best practices for MailBlastr API keys: keep them server-side, scope them to sending, rotate them, and revoke leaked keys. - [How do I fix CORS issues?](https://www.mailblastr.com/docs/kb/cors.md): The MailBlastr API is server-to-server. Calling it from a browser triggers CORS errors and leaks your key — proxy through your own backend instead. - [How do I keep sensitive data out of MailBlastr?](https://www.mailblastr.com/docs/kb/sensitive-data.md): What MailBlastr retains in the email log, and how to avoid putting secrets you do not want stored into subjects and bodies. - [How does pricing work?](https://www.mailblastr.com/docs/kb/pricing.md): MailBlastr pricing is usage-based by emails sent, with a free tier for getting started. - [How do I change my account email?](https://www.mailblastr.com/docs/kb/change-account-email.md): Change the email address on your MailBlastr account from your account settings in the dashboard. - [How do I delete my account or team?](https://www.mailblastr.com/docs/kb/delete-account.md): Delete your MailBlastr account or team from settings, and what happens to your domains, API keys, and data. - [Where can I find documents like DPA or W-9?](https://www.mailblastr.com/docs/kb/downloading-documents.md): Download compliance and tax documents — penetration test attestation, SOC 2 report, DPA, and W-9 — from Settings → Documents in the MailBlastr dashboard. - [How can I delete my team?](https://www.mailblastr.com/docs/kb/delete-team.md): Delete your MailBlastr team and all its data from Team Settings in the dashboard. The action is permanent and cannot be undone. - [Why am I getting an invalid_access error?](https://www.mailblastr.com/docs/kb/403-errors.md): A 422 invalid_access means your API key lacks permission for the action. Here is how to tell that apart from a missing User-Agent header (a 403), an unverified or mismatched domain (also a 422), and new-account sending restrictions. - [It says delivered but the recipient didn't get it](https://www.mailblastr.com/docs/kb/delivered-not-received.md): A delivered event means the receiving mail server accepted the message — not that it reached the inbox. Here is where a "delivered but missing" email usually ends up. - [Why aren't my open rates accurate?](https://www.mailblastr.com/docs/kb/open-rates-accuracy.md): Open tracking relies on a 1x1 pixel, which modern mail clients distort in both directions. Treat opens as a directional signal, not an exact count. - [Opportunistic vs enforced TLS](https://www.mailblastr.com/docs/kb/tls.md): TLS encrypts email in transit between mail servers. Opportunistic TLS prioritizes delivery; enforced TLS prioritizes confidentiality. Here is the tradeoff. - [What attachment types aren't supported?](https://www.mailblastr.com/docs/kb/unsupported-attachments.md): Attachments are capped at 25 MB per file and 40 MB total, and executable/dangerous file types are widely rejected by receiving providers. Link to large or risky files instead. ## Other - [Quickstart](https://www.mailblastr.com/docs/quickstart.md): Send your first email with the MailBlastr API in a few minutes. - [Authentication](https://www.mailblastr.com/docs/authentication.md): Authenticate every API request with a Bearer API key. ## Optional - [Features overview](https://www.mailblastr.com/features): What the platform does, feature by feature. - [Pricing](https://www.mailblastr.com/pricing): Free, Pro ($14/mo), and Scale ($63/mo) plans. - [FAQ](https://www.mailblastr.com/faq): Common questions about domains, sending, and deliverability. - [Changelog](https://www.mailblastr.com/changelog): Latest product updates.