Email Love
Sign in Generate API key

Email Love
Inspiration
API & MCP

Real marketing emails from 6,000+ brands, as structured data for your apps and AI tools.

Search, filter and retrieve cleaned HTML and full lifecycle journeys over a fast JSON API, or wire it straight into Claude and ChatGPT over MCP.

Generate API key Read the docs
~/emaillove
curl https://dev.emaillove.com/v1/emails?brand=glossier \
-H "Authorization: Bearer $EMAILLOVE_API_KEY"
← 200 OK · application/json
{ "data": [{ "id": 1522673,
"brand_slug": "glossier", … }], "meta": { … } }

The world's email marketing, as data you can query

Search 6,000+ brands

Filter by brand, category or keyword across hundreds of thousands of real, sent campaigns.

Real cleaned HTML

Not screenshots. Get the actual markup, normalized and ready to parse, render or diff.

Lifecycle journeys

Multi-email flows per brand: welcome, abandonment, win-back, captured in order.

Built for AI tools

Works as an MCP server for Claude, ChatGPT and agents. No scraping, no browser automation.

Your first request

Authenticate with a bearer token, then list and filter emails. Anonymous requests work too: drop the header and you're rate-limited but live.

curl https://dev.emaillove.com/v1/emails \
  -G \
  --data-urlencode "brand=glossier" \
  --data-urlencode "per_page=3" \
  -H "Authorization: Bearer $EMAILLOVE_API_KEY"
const res = await fetch(
  "https://dev.emaillove.com/v1/emails?brand=glossier&per_page=3",
  { headers: { Authorization: `Bearer ${process.env.EMAILLOVE_API_KEY}` } }
);
const { data } = await res.json();
import os, requests

r = requests.get(
    "https://dev.emaillove.com/v1/emails",
    params={"brand": "glossier", "per_page": 3},
    headers={"Authorization": f"Bearer {os.environ['EMAILLOVE_API_KEY']}"},
)
emails = r.json()["data"]
200 OK application/json
{
  "data": [
    {
      "id": 1522673,
      "title": "Email Inspiration from Glossier",
      "subject_line": "You asked, we listened",
      "brand": "Glossier",
      "brand_slug": "glossier",
      "preview_url": "https://.../glossier-..._screenshot.jpg",
      "url": "https://emaillove.com/email-inspiration-from-glossier-12",
      "captured_date": "2026-05-18"
    }
  ],
  "meta": { "page": 1, "per_page": 3, "count": 1,
    "attribution": { "source": "Email Love", "url": "https://emaillove.com" } }
}

Six endpoints, one resource model

Full documentation
GET /v1/emails List & filter emails by brand, category or keyword
GET /v1/emails/{id} Retrieve one email with cleaned, normalized HTML
GET /v1/brands List all 6,000+ brands in the library
GET /v1/brands/{slug} Brand profile, categories and email count
GET /v1/journeys List lifecycle journeys across brands
GET /v1/journeys/{brand} Full multi-email flow, in send order

Your email library, inside your AI

The Email Love MCP brings 400,000+ marketing emails, lifecycle journeys and brand-level analytics straight into Claude, ChatGPT, Cursor and any MCP client. No tab-switching, no scraping. Just ask, and Email Love answers inside the conversation.

Connect once, then sign in with your Email Love account: no API key to paste
Results render as inline cards and carousels in Claude, real email screenshots
Search, journeys and brand analytics as structured tools, not scraped HTML
Compare REI and Patagonia’s email programs, cadence, ESP and subject lines.
Show me 3 post-purchase emails from DTC apparel brands.
Walk me through MeUndies’ winback flow, stage by stage.
Read the MCP docs
MCP endpoint
https://chat.emaillove.com/mcp
Add it in Claude
  1. Open Settings › Connectors.
  2. Click Add custom connector.
  3. Paste the URL, leave Client ID and Secret blank.
  4. Click Add, then sign in and Allow.

No API key to paste, you authenticate by signing in. Works the same in ChatGPT, Cursor and any MCP client. Claude Code & full guide ›

Generate an API key

Sign in with your Email Love account, mint a key, and you're live. Keys are shown once, store them somewhere safe.

Sign in to generate a key

API keys are tied to your Email Love account. Sign in to create, copy and revoke them anytime.

Secure OAuth: we never see your password