Every dashboard action is an MCP tool your agent can call.Read the docs
Frameworks

Find the right place to send email in your framework. Then trace what happens after the API call.

Choose a runtime-specific guide for the server boundary, retry model, and webhook shape your application actually uses—from Next.js Route Handlers to Phoenix and Oban.

15 guides for full-stack frameworks, backend services, edge runtimes, and Vite frontends.

Server quickstart
Frameworks

One request, complete trace

Request

POST /api/v1/emails

Authorization: Bearer aem_…

Idempotency-Key: welcome-8f21

{ "to": "[email protected]", "template": "welcome" }

202 Accepted

{ "id": "msg_7ca31", "status": "queued" }

RuntimeServer process
RequestPOST /api/v1/emails
Result202 · queued
Credentials stay server-side

[ 02 / 03 ]Every guide

Every guide answers the four questions that break in production.

01

Where does the key live?

Use the framework's private server configuration rather than a public or bundled environment value.

02

What owns retries?

Decide whether the accepted API response is enough or local work needs a durable queue.

03

How is delivery confirmed?

Keep the message ID and verify the webhook against the original request body.

Covered in every guide

  • Server boundary
  • Environment configuration
  • Send example
  • Delivery event handling

[ 03 / 03 ]Framework versus language

Choose the guide that answers the question you have.

Framework guides show where email work fits: Route Handlers, actions, jobs, services, or background workers. Language guides focus on clients, request types, structured errors, and webhook verification. Both use the same HTTP contract.

  • Start with a framework guide when placement, deployment, and runtime boundaries are unclear.
  • Start with a language guide when you already know the architecture and need request-level code.
  • Use the API reference when you need the exact operation, payload, or error envelope.

Questions people ask us

Put email in the right part of your application.

Choose your framework, queue one real message, and build the delivery return path from the start.