# Send email in minutes. Get the replies back.

URL: https://samva.dev/

Email API

One typed call to send. Delivery events and replies come back as signed webhooks.

[Start sending free](https://samva.dev/signup?entry=marketing_page)

Copy agent prompt

3,000 emails a month free. No card.

## Email Samva, get a reply

Get a demo address, email it from your own account, and Samva replies in the same thread. Each step shows as it happens.

## Sending is the easy half.

Most email setups are a one-way pipe. Your app sends, the API returns a 200, and that is the last you hear. If the email bounces or gets suppressed, you find out when a user says their login link never came. When a customer hits reply, the answer lands in a noreply box or someone's Gmail, not in your app.

- **Silent failures**: Every call comes back 200, and nothing tells you the email never arrived.
- **Dead-end replies**: Customers answer your email. The reply never reaches the record it belongs to.
- **Plumbing you build**: Bounce handling, suppression, and a script to match replies to users. It works until it doesn't.

## Live in minutes, in three steps.

Fig 1. Isometric drawing: the Samva API press sends a letter down the delivery rail to the customer's pigeonhole cabinet; the reply is filed in the inbound cabinet under its conversation, and a ticker prints the signed message.received webhook for your app.

Fig 1.

Samva sends the email and reports each delivery event. Your customer's reply is threaded into the conversation of the email it answers, and a signed webhook brings it back to your app.

TypeScript setup:

```ts
import { createClient } from "samva";

const samva = createClient({ apiKey: process.env.SAMVA_API_KEY });

const { contact } = await samva.contacts.findOrCreate({
  lookup: { type: "email", value: "ada@example.com" },
});
await samva.messages.send({
  to: [contact],
  channel: "email",
  email: {
    subject: "Your invoice is ready",
    html: "<p>Invoice #1042 is ready.</p>",
    text: "Invoice #1042 is ready.",
  },
});
```

Agent setup brief:

# Samva setup brief (for coding agents)

Goal: integrate email through Samva (https://samva.dev).

1. Read https://samva.dev/auth.md and pick a credential:
   - API key: create one in the dashboard at https://samva.dev/dashboard,
     send it as the X-API-Key header. Best for servers, CI, unattended agents.
   - CLI: `samva login` runs an OAuth device flow when a human is present.
   - Hosted MCP: point an OAuth-capable client at https://mcp.samva.dev.

2. Install the SDK: `npm install samva`

3. Follow the quickstart:
   https://samva.dev/docs/channels/email/send-an-email

Full API surface for models: https://samva.dev/llms.txt

1. **Verify your domain.** Add it, and Samva generates the DKIM and SPF records and checks your DMARC policy. If Cloudflare or Vercel hosts your DNS, connect it and they are added for you.
2. **Send.** One typed call from the SDK, REST, or the CLI. Or hand the setup to your coding agent through hosted MCP.
3. **Hear back.** Delivery events and replies arrive at your webhook, signed and retried. Replies thread to the email they answer.

## Everything the one-way pipe leaves out.

- [Send in one typed call](https://samva.dev/features/transactional-email): A POST to /v1/messages returns 201 Created with a message id. The message moves from queued to sent to delivered.
   
   One call returns a message id, and the email's status follows it from queued to sent to delivered.
- [Replies come back to your app](https://samva.dev/features/inbound-email): A customer's reply carries an In-Reply-To header that matches the Message-ID of the email it answers, so it joins that conversation.
   
   Inbound email on your domain is parsed, threaded to the email it answers, and posted to your webhook. Answer in the same thread.
- [Know what happened to every email](https://samva.dev/docs/platform/webhooks): A message.delivered webhook gets a 500 on attempt 1, backs off, and gets 200 OK on attempt 2. Its webhook-signature header verifies.
   
   Sent, delivered, bounced, complained, received: signed webhook events, retried with backoff. Opens, clicks, and a timeline per send in the dashboard.
- [Change the email without a deploy](https://samva.dev/features/templates): Publishing version 4 of the receipt template makes it the version that sends. Version 3 stays in the list with a restore action.
   
   Versioned templates in a Git-backed project. Publish, roll back, or edit in the AI email editor.
- [Send from your own domain](https://samva.dev/docs/channels/email/verify-your-domain): A domain's DKIM and SPF records go from pending to pass and the domain is ready to send. Its DMARC policy is read.
   
   Samva generates the DKIM and SPF records and checks your DMARC policy. On Cloudflare or Vercel, it adds them for you.
- [Announcements from the same API](https://samva.dev/docs/channels/email/send-a-campaign): A campaign run goes from scheduled to dispatching to completed. Its dispatched count rises to 212 of 214 recipients, and two suppressed contacts are skipped.
   
   Campaigns send one email to a list of contacts, now or on a schedule, using the same templates, domain and events as your transactional mail.
- [Your agent can run it](https://samva.dev/solutions/ai-agents): Through hosted MCP, an agent patches the receipt template and saves commit a41f9c2. A person publishes that same commit, and it becomes the version that sends.
   
   Hosted MCP and the CLI. Your agent edits a template, you review the diff, and you publish that exact version.
- [Your own sending reputation](https://samva.dev/features/deliverability): Each account sends with its own reputation. Bounces and complaints are suppressed per account, and you can see and lift a suppression.
- [A bill with a ceiling](https://samva.dev/pricing): Extra emails cost exactly $0.50 per 1,000, under a spend limit you set.
- [An inbox for your agent](https://samva.dev/features/mailboxes): Give your app or your agent its own inbox on samva.email or your domain, like support@ or agent@. It reads, searches, and replies through the API, CLI, or MCP with a key that reaches only that mailbox.

## One thread, from send to reply.

The email you send, its delivery events, and the reply your customer sends back land on one conversation. Send the next email with that conversation id and it joins the thread. Your app reads it the way your support team would.

Example

conv\_5nz8qd3hv6r0wxkt

The reply's message.received event carries the sender's address and the conversation id, so it finds its thread without a script.

## Numbers we publish, and the code that enforces them.

Prices, limits, and retries are read from the code that enforces them.

- **Free tier**: Every month, no card
   
   3,000
   
   emails
- **Past your allowance**: Any paid plan, one rate
   
   $0.50
   
   / 1,000
- **Webhook delivery**: Automatic attempts, then the log
   
   8
   
   attempts
- **Signed events**: What reaches your endpoint for one email
   
   09:41:02
   
   message.sent
   
   msg\_8f2c1qd3hv6r0wxk
   
   09:41:04
   
   message.delivered
   
   msg\_8f2c1qd3hv6r0wxk
   
   10:17:55
   
   message.received
   
   conv\_5nz8qd3hv6r0wxkt
- **Send latency**: p50, production, API to accepted
   
   140
   
   ms

## A bill you can predict.

You are billed on emails sent. Past your plan, each extra email costs exactly $0.50 per 1,000, up to a spend limit you set ($50 by default). Raise it, lower it, or pause it in billing settings.

Sending, templates, inbound, and webhooks come with every plan. Each plan includes an active-contact allowance. Pay in your own currency at checkout.

See full pricing

- Free
   
   $0
   
   /month
   
   3,000 emails/month
   
   1 sending domain
   
   1,000 contacts
- Starter
   
   $5
   
   /month
   
   15,000 emails/month
   
   Templates, inbound, and webhooks
   
   5 sending domains
- Growth
   
   $19
   
   /month
   
   50,000 emails/month
   
   Templates, inbound, and webhooks
   
   5 team members
- Scale
   
   $99
   
   /month
   
   300,000 emails/month
   
   Templates, inbound, and webhooks
   
   Priority support

## Check it before you sign up.

SPF, DKIM, and DMARC on your own domain, and your own sending reputation. Guides: 

Email authentication explained

, 

Why emails go to spam

.

- [Send a real email](https://samva.dev/#hero-demo): Try the demo at the top of this page. It runs on the same API.
- [Read the API](https://samva.dev/docs/api-reference/openapi): The full OpenAPI spec, plus llms.txt and auth.md for your agent.
- [See the comparisons](https://samva.dev/compare): Samva against Amazon SES, AutoSend, inbound.new, Mailgun, Postmark, Resend, and SendGrid, with dated sources.
- [Talk to the founder](https://samva.dev/contact): Every message is read by the founder, who replies by email, usually within a day.

## Common questions.

### What is Samva?

An email API for your app. You send transactional and product email with one typed call, and delivery events and customer replies come back to your app as signed webhooks, and replies thread to the email they answer. A dashboard shows every send.

### How do replies get back to my app?

Turn on receiving for your domain. Replies are parsed, attached to the same conversation as the email they answer, and posted to your webhook as message.received. You can answer in the same thread.

### Is there a free plan?

Yes. 3,000 emails a month, no card. Paid plans start at $5 a month for 15,000 emails.

### Do you bill per contact?

You are billed on emails sent. Each plan also includes an active-contact allowance, listed on the pricing page.

### What happens if I go over my plan?

Paid plans bill extra emails at exactly $0.50 per 1,000, up to a monthly spend limit ($50 by default) you can raise, lower, or pause. The free plan stops at 3,000.

### Can my coding agent set it up?

Yes. Point an MCP client at mcp.samva.dev, or run samva login in the CLI. Your agent can send, read events, and edit templates; you publish what you reviewed.

### Can I send from my own domain?

Yes. Add it, publish the records Samva generates (or connect Cloudflare or Vercel and they are added for you), and mail goes out from your address, signed with DKIM.

### What about deliverability?

SPF, DKIM, and DMARC on your domain, bounces and complaints suppressed for you, and your own sending reputation. Every send has events you can check.

## Send your first email in minutes.

Free for 3,000 emails a month. When a customer replies, you will see it land.

[Start sending free](https://samva.dev/signup?entry=marketing_page)

Talk to the founder
