Getting Started

Go from zero to sending emails with Mailmark in under 10 minutes.

Quick-start guide

Follow these four steps to get up and running:

1

Create a Mailmark account

Go to mailmark.dev and click Sign In. Sign up with your email or Google/Github account.
2

Add and verify your domain

Go to Dashboard → Domains and click Add domain. Enter your domain name and pick an infrastructure - Mailmark infrastructure (recommended) or Use my own AWS account (see BYO-AWS). Then follow the DNS instructions to verify ownership.
3

Create a mailbox

Once your domain is verified, create a mailbox under Dashboard → Mailboxes. For example, hello@yourdomain.com.
4

Send your first email

Use the dashboard composer, the REST API, or the mailmark npm package to send.

Creating your account

Visit mailmark.dev/sign-up and sign up with your email or Google account via Clerk. After signing in you will land on the dashboard. Your account starts on the free plan with support for one domain and up to 200 emails per day.

You can upgrade to a paid plan at any time from Dashboard → Settings → Billing.

Adding your first domain

You must own and control the domain you want to send from. Mailmark does not provide domain registration.

1. Go to Dashboard → Domains and click Add domain.

2. Enter your domain (e.g. acme.com).

3. Pick where the AWS resources should live: Mailmark infrastructure (default, recommended) or Use my own AWS account. The DNS records are the same either way - the choice only affects where SES / S3 / Lambda are provisioned. See BYO-AWS for the advanced flow.

4. Mailmark will show you DNS records to add to your domain registrar. These include TXT records for SPF and DKIM. Add them all.

5. Click Verify. DNS propagation can take up to 48 hours but usually completes within minutes.

Once verified the domain status changes to Active. See Domain Setup for the full DNS reference.

Sending your first email

Once your domain is verified and a mailbox exists, you can send immediately.

Using the npm SDK

npm install mailmark-sdk
# or
bun add mailmark-sdk
import { Mailmark } from 'mailmark-sdk';

const client = new Mailmark('dm_live_your_api_key');

await client.send({
  from: 'hello@yourdomain.com',
  to: 'recipient@example.com',
  subject: 'Hello from Mailmark!',
  html: '<h1>It works!</h1>',
});

Using cURL

curl -X POST https://api.mailmark.dev/v1/send \
  -H "Authorization: Bearer dm_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "hello@yourdomain.com",
    "to": ["recipient@example.com"],
    "subject": "Hello from Mailmark!",
    "html": "<h1>It works!</h1>"
  }'

Your API key is available in Dashboard → Developer. See the API Reference for the full endpoint list.