Email HTML without the headache

Fastest way to prettier and consistent emails

Highly opinionated templates with curated themes. Pick a type, inject your data, and ship production ready email HTML without touching Outlook-safe CSS.

Welcome, password reset, verification, receipt, notification, newsletter, and invitation types included.

Render instantly through the single /html endpoint with GET or POST.

Merge brand defaults for logos, colors, and links whenever you need.

Dashboard Preview

Templates and themes

Pick a type, pick a theme, done

Start on the landing page with an instant template selector. Browse every template type across our curated themes, then copy the example API call in a single click.

Welcome

Welcome

white_flat

Clean onboarding layout with friendly hero, CTA, and optional footer.

Forgot Password

Forgot Password

dark_opus

High contrast reset instructions with secondary safety links.

Receipt

Receipt

brand_bold

Structured line items, totals, and highlights for commerce flows.

Newsletter

Newsletter

soft_pastel

Content focused column layout with optional social icons.

More template types and themes ship weekly.

Brand controls

Bring your brand in seconds

Override design tokens such as colors, typography, border radius, and logos. Save brand defaults inside your account so every render stays on brand.

  • Per brand defaults with optional logo upload.
  • Toggle sections like footer or social links by passing false.
  • Layer runtime customization on top of stored brand values.
customizationExample:
  primaryColor: "#FF5500"
  secondaryColor: "#1A1A1A"
  borderRadius: "8px"
  fontFamily: "Georgia, serif"
  logoUrl: "https://cdn.example.com/logo.png"

One endpoint, three flows

Choose the render path that fits your stack

Client template download

GET /html

Returns a cacheable template skeleton for local rendering.

Payload: ["type", "theme"]
POPULAR

Server render

POST /html

Returns fully rendered HTML ready to send through your provider.

Payload: ["type", "theme", "data", "customization"]

Brand render

POST /html

Automatically merges stored brand defaults with your variables.

Payload: ["brandId", "type", "data"]

API Reference

Simple JSON in, pixel perfect HTML out

1

Authentication

Attach Bearer API keys for POST renders. GET stays public and cacheable.

2

Customization

Pass optional customization objects to override theme tokens per request.

3

Brands

Create brands once, then call them by ID to merge logos, colors, and links.

POST /html
{
  "type": "welcome",
  "theme": "dark_opus",
  "data": {
    "userName": "Jane",
    "companyName": "Acme Inc",
    "ctaUrl": "https://app.acme.com/start",
    "ctaText": "Get Started",
    "footer": false
  },
  "customization": {
    "primaryColor": "#FF5500"
  },
  "brandId": "brand_123"
}

Why Easy Email

Opinionated defaults, universal output

Fastest

No design time or fiddly editors. Pick from ready-made combinations.

Efficient

Static CDN for GET flows and lightweight render service for POST.

Universal

Tested layouts that survive every major email client, Outlook included.

Developer friendly

Use the JavaScript SDK, standalone snippet, direct fetch, or n8n node.

Pricing

Start free, pay as you render

Free

$0 /mo

Unlimited GET /html requests for client-side template downloads.

  • Full template and theme library
  • Public CDN access
Start for free
RECOMMENDED

Render

Metered

Pay only for POST renders that return final HTML or merge brands.

  • Brand management and API keys
  • Usage dashboard and analytics
Get Started

Built for devs and AI agents

Emails that look great the first time

Developers finish email work in minutes instead of hours.

AI agents get instant access to ready-to-send HTML.

Bring your own provider: SES, Resend, Postmark, any SMTP.

Frequently Asked Questions

How fast can I render an email?

Pick a template, pass your data to /html, and get ready-to-send HTML in seconds.

Can I hide optional sections?

Yes. Pass false for sections like footer or social links to remove them per render.

What if I already have a brand system?

Store your brand values once, call the same brandId on every POST render, and layer overrides in the payload when needed.

Ready to send better emails?

Browse the gallery or hit the API

Explore templates, copy the code snippet, and render your first email in under five minutes. The single /html endpoint powers every scenario.