# AISend — Complete Reference > Transactional email API for developers and AI agents. Send product emails, track delivery, and scale with paid production features. Website: https://aisend.app Type: Email API platform (SaaS) --- ## Overview AISend is a transactional email API platform for developers and AI agents. It provides a REST API and SDKs for sending product emails, with custom domains, delivery tracking, webhooks, validation, and dashboard analytics. AISend is built on AWS SES and processes SES bounce and complaint notifications to automatically suppress bad addresses, protecting your sender reputation without any extra code. AI agents (Claude, GPT, etc.) can sign up programmatically with a single API call — no browser, email verification, or password needed. Human users can sign in with email/password or Google OAuth for fast onboarding. --- ## Features ### Resend-Compatible API AISend accepts the same core request format as Resend, and its `/emails`, `/api-keys`, and `/domains` paths work without an `/api/v1/` prefix. Migrating from Resend is a one-line base-URL change plus swapping the API key. ### MCP Server for AI Agents AISend ships `aisend-mcp` on npm, exposing send_email, get_email, list_emails, validate_email, list_domains, create_api_key, and agent_signup as native tools for Claude, Cursor, and any MCP client. ### Automatic Bounce & Complaint Suppression AISend processes AWS SES bounce and complaint notifications and automatically suppresses those addresses, so you don't keep sending to addresses that hurt your sender reputation. ### Transactional Email Templates Start from clean transactional templates for onboarding, billing, receipts, alerts, and auth flows. AISend accepts any valid HTML in the `html` field — no template system to learn. ### Custom Domains One-click domain setup with automated SPF, DKIM, and DMARC verification through the dashboard. ### Webhooks Real-time delivery events via webhooks: - email.sent - email.delivered - email.opened - email.clicked - email.bounced - email.complained ### Resend-Compatible API AISend's API is designed to be compatible with Resend's API format. Developers migrating from Resend can switch by updating their API endpoint URL — no code changes required. --- ## AI Agent Integration AI agents can create an account, get an API key, and start sending emails — all programmatically in three commands. ### Step 1: Sign up ```bash curl -X POST https://api.aisend.app/v1/auth/agent-signup \ -H "Content-Type: application/json" \ -d '{"name": "My AI Agent"}' ``` Response: ```json { "token": "eyJhbG...", "apiKey": "re_abc123...", "userId": "550e8400-e29b-41d4-a716-446655440000", "email": "my-ai-agent-a1b2c3@agent.aisend.app", "expiresAt": "2027-03-19T00:00:00.000Z" } ``` ### Step 2: Send a test email (works immediately, no DNS) Send from the shared `onboarding@aisend.app` address to your **own account email** — the `email` returned by signup above. This is the only send that works before you verify a domain; sending to anyone else from the shared address returns 403. ```bash curl -X POST https://api.aisend.app/api/v1/emails \ -H "Authorization: Bearer re_abc123..." \ -H "Content-Type: application/json" \ -d '{ "from": "onboarding@aisend.app", "to": "my-ai-agent-a1b2c3@agent.aisend.app", "subject": "Report from your AI agent", "html": "

Here is your daily summary.

" }' ``` ### Step 2b: Email real users — verify a domain To send to anyone other than your own account email, verify a domain you own (`POST /api/v1/domains`, one DNS step, 1 included free), then send from `you@yourdomain.com` to any recipient. ### Step 3: Check delivery status ```bash curl https://api.aisend.app/api/v1/emails/{emailId} \ -H "Authorization: Bearer re_abc123..." ``` ### Agent Signup Details - **Endpoint**: `POST /api/v1/auth/agent-signup` - **Input**: `{ "name": string }` (1-100 characters) - **Output**: `{ token, apiKey, userId, email, expiresAt }` - **Rate limit**: 5 requests/minute per IP - **Token validity**: 365 days - **No password**: Agent accounts cannot use password login. Use the API key for all requests. - **Plan**: Starts on Free (3,000 emails/month). Upgrade via dashboard or API. --- ## API Reference ### Base URL ``` https://api.aisend.app/api/v1 (Resend-compatible alias: https://api.aisend.app) ``` ### Authentication All API requests require a Bearer token: ``` Authorization: Bearer re_your_api_key ``` ### Send Email ``` POST /api/v1/emails (or POST /emails — Resend-compatible alias, no /api/v1 prefix) ``` Request body (real-user send — `from` is a domain you've verified): ```json { "from": "you@yourdomain.com", "to": "user@example.com", "subject": "Hello from AISend", "html": "

Your email content

", "text": "Plain text fallback" } ``` The `to` field accepts a single email string or an array of emails. Before you verify a domain, the only valid `from` is the shared `onboarding@aisend.app` and the only valid `to` is your own account email (test-to-self); any other combination from the shared address returns 403. ### Get Email Status ``` GET /api/v1/emails/:id ``` Returns email delivery status: queued, sending, sent, delivered, bounced, failed. ### List Emails ``` GET /api/v1/emails ``` Query parameters: `page`, `limit`, `status`, `search` ### Create API Key ``` POST /v1/api-keys ``` ### List API Keys ``` GET /v1/api-keys ``` ### Revoke API Key ``` DELETE /v1/api-keys/:id ``` ### Idempotency Include an `Idempotency-Key` header to prevent duplicate sends: ``` Idempotency-Key: unique-request-id ``` --- ## SDKs ### Node.js / TypeScript ```typescript import { AISend } from 'aisend-email'; const aisend = new AISend('re_your_api_key'); await aisend.emails.send({ from: 'you@yourdomain.com', // a domain you verified (1 included free) to: 'user@example.com', subject: 'Hello from AISend', html: '

Your first email!

' }); // No domain yet? Send from 'onboarding@aisend.app' to your own account email. ``` ### cURL ```bash curl -X POST https://api.aisend.app/api/v1/emails \ -H "Authorization: Bearer re_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "from": "you@yourdomain.com", "to": "user@example.com", "subject": "Hello from AISend", "html": "

Your first email!

" }' # No domain yet? Use "from": "onboarding@aisend.app" with "to" = your account email. ``` ### Python ```python import requests requests.post( "https://api.aisend.app/api/v1/emails", headers={"Authorization": "Bearer re_your_api_key"}, json={ "from": "you@yourdomain.com", # a domain you verified (1 included free) "to": "user@example.com", "subject": "Hello from AISend", "html": "

Your first email!

", }, ) # No domain yet? Send from "onboarding@aisend.app" to your own account email. ``` --- ## Email Validation API Validate email addresses before sending to reduce bounces and improve deliverability. ### Validate Single Email ```bash curl -X POST https://api.aisend.app/v1/email-validation/validate \ -H "Authorization: Bearer re_your_api_key" \ -H "Content-Type: application/json" \ -d '{"email": "user@example.com"}' ``` Response: ```json { "email": "user@example.com", "valid": true, "checks": { "format": true, "mx": true, "disposable": false, "role": false, "catchAll": null }, "risk": "low" } ``` ### Validate Batch (up to 100) ```bash curl -X POST https://api.aisend.app/v1/email-validation/validate \ -H "Authorization: Bearer re_your_api_key" \ -H "Content-Type: application/json" \ -d '{"emails": ["user@example.com", "test@tempmail.com"]}' ``` ### Validation Checks - **format**: RFC 5322 email format validation - **mx**: MX record lookup (does the domain accept email?) - **disposable**: Detects temporary/disposable email providers - **role**: Detects role-based addresses (info@, admin@, support@) - **catchAll**: Catch-all domain detection (best-effort) ### Risk Levels - **high**: Invalid format, no MX records, or disposable domain - **medium**: Role-based address or catch-all domain - **low**: Passes all checks --- ## Team / Organizations Create organizations, invite team members, and collaborate on shared API keys, domains, and billing. - **Roles**: Owner (full access + billing), Admin (manage members + API keys), Member (send emails + view) - **Invite flow**: Owner/admin sends invite by email → recipient accepts → joins org - **API**: `POST /v1/orgs`, `GET /v1/orgs`, `POST /v1/orgs/:id/invites`, `POST /v1/orgs/invites/:token/accept` --- ## Pricing | Plan | Price | Emails/month | Validations/month | Key Features | |------|-------|-------------|-------------------|--------------| | Free | $0/mo | 3,000 | 25 | Shared sending domain, dashboard, API keys | | Pro | $14/mo | 50,000 | 5,000 | Custom domains, webhooks, transactional templates | | Business | $63/mo | 100,000 | 25,000 | Unlimited domains, team members | | Scale | $149/mo | 500,000 | 100,000 | All features | | Enterprise | Custom | Unlimited | Unlimited | Custom integrations, dedicated account manager | No credit card required for the free tier. Paid plans (Pro, Business, Scale) charge immediately — there is no free trial; the free 3,000/mo tier is the trial, and you can cancel a paid plan anytime. Custom domains and production volume start on Pro. --- ## Migration Guides ### From Resend 1. Sign up at aisend.app 2. Replace `api.resend.com` with `api.aisend.app` in your code 3. Replace your Resend API key with an AISend key (re_* format) 4. A basic send works unchanged — AISend uses the same from/to/subject/html/text request format ### From SendGrid 1. Sign up at aisend.app 2. Install the AISend SDK 3. Replace SendGrid API calls with AISend's REST format 4. Set up domains in the AISend dashboard ### From Mailgun 1. Sign up at aisend.app (no credit card needed) 2. Install the AISend SDK 3. Replace Mailgun API calls with AISend's REST format 4. Migrate domain DNS records --- ## Frequently Asked Questions **What is AISend?** AISend is a transactional email API platform for developers and AI agents. It provides a REST API and SDKs for sending transactional emails, with custom domains, delivery tracking, webhooks, and validation. **How is AISend different from Resend?** AISend uses the same request format as Resend, so migrating is a one-line base-URL change. It is about 30% cheaper at the Pro tier (50,000 emails for $14/mo vs Resend's $20), and it ships an MCP server so AI agents can send email as a native tool. **How is AISend different from SendGrid?** AISend offers a modern, simpler API focused on transactional email, delivery tracking, and production sender setup. No bloated platform. **What email provider does AISend use?** AISend sends through AWS SES. Bounces and complaints are processed via SES notifications and suppressed automatically. **Is there a free tier?** Yes. 3,000 emails/month on the shared sending domain. Custom domains, higher validation volume, and production usage start on Pro. No credit card required. **Is there a free trial for paid plans?** No. Paid plans are charged immediately when you subscribe. The free plan is the trial — 3,000 emails a month and one verified sending domain, no credit card, for as long as you want. Upgrade once you've confirmed AISend works for you, and cancel anytime. **Can AI agents use AISend?** Yes. AI agents can sign up programmatically via POST /v1/auth/agent-signup. One call returns a token and API key — no browser or email verification needed. **How do I sign in?** AISend supports email/password login and Google OAuth sign-in. AI agents can sign up programmatically via the agent signup API. **Can I migrate from Resend?** Yes. AISend's API is Resend-compatible. Change your API endpoint URL and key — no code changes needed. --- ## Links - Homepage: https://aisend.app - Pricing: https://aisend.app/pricing - AI Agents: https://aisend.app/agents - Blog: https://aisend.app/blog - Alternatives: https://aisend.app/alternatives - Guides: https://aisend.app/guides - Contact: hello@aisend.app