API Documentation

Everything you need to integrate Evensee into your application or AI agent.


Authentication

All API requests must include your API key in the x-api-key header. You can generate API keys from your dashboard.

Header
x-api-key: cf_live_xxxxxxxxxxxxxxxxxxxx
Keep your API key secret. Never expose it in client-side code or public repositories.

Base URL

All API endpoints are relative to the following base URL:

https://evensee.io/api/v1

Endpoints

Send Email

POST/api/v1/send

Send a transactional email using a pre-built template. Returns a message ID and, for verification-type templates, a token for later verification.

Request Body

FieldTypeRequiredDescription
tostringYesRecipient email address.
templatestringYesTemplate key. 15 built-in: verification, welcome, magic_link, password_reset, otp_code, team_invitation, invoice, order_confirmation, shipping_update, subscription_reminder, account_deletion, feedback_request, newsletter, weekly_digest, notification. Or use a custom template name.
subjectstringNoOverride the default email subject line.
dataobjectNoTemplate variables. Fields depend on template: name, callback_url, login_url, otp_code, expires_in, items, total, customer_name, etc.

data Fields

namecallback_urllogin_urlotp_codeexpires_incustomer_nameitemstotalinviter_nameteam_name

Example Request

cURL
curl -X POST https://evensee.io/api/v1/send
  -H "x-api-key: cf_live_..."
  -H "Content-Type: application/json"
  -d '{
    "to": "user@example.com",
    "template": "verification",
    "data": { "name": "Jane", "callback_url": "https://yourapp.com/verify" }
  }'

Response

JSON
{
  "id": "msg_01jx...",
  "status": "sent"
}

Verify Token

POST/api/v1/verify

Verify a token returned from a send request. Use this to confirm a user clicked a verification link or magic link.

Request Body

FieldTypeRequiredDescription
tokenstringYesThe token value returned from the /send response.

Example Request

cURL
curl -X POST https://evensee.io/api/v1/verify
  -H "x-api-key: cf_live_..."
  -H "Content-Type: application/json"
  -d '{ "token": "tok_abc123..." }'

Response

JSON
{
  "verified": true,
  "email": "user@example.com",
  "type": "verification",
  "verified_at": "2026-03-10T14:32:00Z"
}

Get Email Status

GET/api/v1/status/:id

Retrieve the delivery status and event timestamps for a previously sent email.

Path Parameters

FieldTypeRequiredDescription
idstringYesThe message ID returned from the /send response.

Example Request

cURL
curl https://evensee.io/api/v1/status/msg_01jx...
  -H "x-api-key: cf_live_..."

Response

JSON
{
  "id": "msg_01jx...",
  "to": "user@example.com",
  "subject": "Verify your email",
  "status": "delivered",
  "template": "verification",
  "sent_at": "2026-03-10T14:30:00Z",
  "delivered_at": "2026-03-10T14:30:04Z",
  "opened_at": "2026-03-10T14:32:11Z",
  "clicked_at": null,
  "token": "tok_abc123..."
}

Domains

POST/api/v1/domains

Register a sending domain. Returns DNS records you must add to verify ownership and enable delivery.

Request Body

FieldTypeRequiredDescription
domainstringYesThe domain you want to register, e.g. mail.yourapp.com.

Example Request

cURL
curl -X POST https://evensee.io/api/v1/domains
  -H "x-api-key: cf_live_..."
  -H "Content-Type: application/json"
  -d '{ "domain": "mail.yourapp.com" }'

Response

JSON
{
  "id": "dom_01jx...",
  "domain": "mail.yourapp.com",
  "status": "pending",
  "dns_records": [...],
  "message": "Add the DNS records and call verify."
}
POST/api/v1/domains/:id/verify

Trigger DNS verification for a registered domain. The ID is returned when the domain was created.

Path Parameters

FieldTypeRequiredDescription
idstringYesThe domain ID returned from the create endpoint.

Example Request

cURL
curl -X POST https://evensee.io/api/v1/domains/dom_01jx.../verify
  -H "x-api-key: cf_live_..."

Response

JSON
{
  "status": "verified",
  "domain": "mail.yourapp.com"
}
GET/api/v1/domains

List all domains registered to your account.

Example Request

cURL
curl https://evensee.io/api/v1/domains
  -H "x-api-key: cf_live_..."

Response

JSON
{
  "domains": [
    {
      "id": "dom_01jx...",
      "domain": "mail.yourapp.com",
      "status": "verified"
    }
  ]
}

Rate Limits

The API enforces rate limits per API key to ensure fair usage and service stability.

LimitWindowScope
120 requestsPer minutePer API key

When a rate limit is exceeded, the API returns a 429 Too Many Requests response. Retry after the window resets. Higher limits available on paid plans.


MCP Integration

Evensee ships a Model Context Protocol (MCP) server so AI agents can call send_email, verify_token, and other actions as native tools — no glue code required.

Install it from npm and point your MCP client at it:

npx evensee-mcp

npmjs.com/package/evensee-mcp

Compatible with Claude, Cursor, Continue, and any MCP-compliant agent framework. Once connected, your agent can send transactional emails and verify tokens without leaving its tool-calling loop.


Connect to Claude Code

Give your AI agent the power to send emails. Set up Evensee as an MCP tool in under 2 minutes.

1

Get your API key

Sign up at evensee.io/signup, create a project, and generate an API key from the API Keys page. Your key starts with cf_live_

2

Add to Claude Code

Open your project's .mcp.json or go to Settings → MCP Servers in Claude Code and add:

.mcp.json
{
  "mcpServers": {
    "evensee": {
      "command": "npx evensee-mcp",
      "env": {
        "EVENSEE_API_KEY": "cf_live_YOUR_KEY_HERE"
      }
    }
  }
}
Replace cf_live_YOUR_KEY_HERE with your actual API key.
3

Use it

Your agent now has access to 9 tools. Just ask it naturally:

> Send a verification email to user@example.com

> Add domain myapp.com and show me the DNS records

> Check if email msg_01jx... was delivered

Available MCP Tools

send_email

Send transactional emails

verify_token

Verify email/magic link tokens

get_email_status

Check delivery status

create_project

Create a new project

create_api_key

Generate API keys

add_domain

Register sending domain

verify_domain

Verify DNS records

list_domains

List all domains

scrape_brand

Auto-detect brand from URL

Other MCP Clients

Evensee works with any MCP-compatible client. Copy the JSON config above and adapt it for your setup:

ClientConfig location
Claude Code.mcp.json in project root
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Cursor.cursor/mcp.json in project root
Windsurf~/.codeium/windsurf/mcp_config.json

Evensee

Questions? Reach out at support@evensee.io

Back to home