> ## Documentation Index
> Fetch the complete documentation index at: https://docs.drin.run/llms.txt
> Use this file to discover all available pages before exploring further.

# Drin

> Transactional + agent-native email. One API for sending, receiving, and letting AI agents run email — over REST, an SDK, a CLI, and MCP.

Transactional email with one extra idea: email is a first-class surface for AI agents, not just apps. The same key that sends your password resets can give an agent its own inbox — to receive, read threads, and reply.

Every capability is reachable five ways, from the same account and key — pick whatever fits your stack.

<CardGroup cols={2}>
  <Card title="REST API" icon="code" href="/api-reference/overview">
    `POST /v1/emails` — works from any language.
  </Card>

  <Card title="TypeScript SDK" icon="code" href="/sdk/typescript">
    `npm install @drin00/sdk` — typed client, retries, webhook verification.
  </Card>

  <Card title="CLI" icon="terminal" href="/agents/cli">
    `npx @drin00/cli send …` — for humans, scripts, and CI.
  </Card>

  <Card title="MCP server" icon="plug" href="/agents/mcp">
    `npx @drin00/mcp` — 54 tools any AI agent can call.
  </Card>
</CardGroup>

## What you can do

<CardGroup cols={2}>
  <Card title="Send" icon="bolt">
    Transactional email, batches up to 100, scheduled sends, reusable templates with merge variables, idempotency keys.
  </Card>

  <Card title="Receive" icon="inbox">
    Give a domain an inbox, read conversation threads (inbound + outbound joined), and reply in-thread in one call.
  </Card>

  <Card title="Authenticate domains" icon="shield">
    DKIM, SPF, and DMARC with guided setup — or send from a shared onboarding domain in test mode with zero DNS.
  </Card>

  <Card title="Observe" icon="chart-line">
    Delivery, bounce, complaint, open and click events over webhooks, plus metrics and a full per-message transit log.
  </Card>
</CardGroup>

## Send your first email

The fastest path is a single request. You can run this the moment you have a key — it sends from a shared onboarding domain in test mode, no DNS required.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.drin.run/v1/emails \
    -H "Authorization: Bearer $DRIN_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "from": { "email": "onboarding@yourdomain.com" },
      "to": [{ "email": "you@example.com" }],
      "subject": "Hello from Drin",
      "html": "<p>It works!</p>"
    }'
  ```

  ```typescript Node.js theme={null}
  import { DrinClient } from "@drin00/sdk";

  const drin = new DrinClient({ apiKey: process.env.DRIN_API_KEY });

  await drin.emails.send({
    from: { email: "onboarding@yourdomain.com" },
    to: [{ email: "you@example.com" }],
    subject: "Hello from Drin",
    html: "<p>It works!</p>",
  });
  ```
</CodeGroup>

<Note>
  **Test mode.** The shared onboarding domain can only deliver to your own address. To email anyone from your own brand, [verify a domain](/domains) (DKIM + SPF + DMARC, guided), then send from it.
</Note>

## Who it's for

* **Developers** shipping transactional email — receipts, magic links, alerts. Start with the [Quickstart](/quickstart).
* **AI-agent builders** who want an agent that can send and receive real email. Start with [Agents overview](/agents) or the [MCP server](/agents/mcp).
* **No-code makers** who'd rather point an existing tool at an SMTP gateway than write code.

<Card title="Full quickstart" icon="rocket" href="/quickstart">
  Get a key, copy a snippet, and watch the delivery land — in under a minute.
</Card>
