Documentation
Everything you need to start sending emails with AISend.
Quick Start
Get from zero to sending emails in under 2 minutes.
- Create a free account at aisend.app/signup
- Go to API Keys and create a key
- Install the SDK and send your first email
Installation
npm install aisend-emailpnpm add aisend-emailyarn add aisend-emailSend Your First Email
Node.js / TypeScript
import { AISend } from 'aisend-email';
const aisend = new AISend('as_your_api_key');
const { id, status } = await aisend.emails.send({
from: 'hello@yourdomain.com',
to: 'user@example.com',
subject: 'Hello from AISend',
html: '<p>Your first AI-powered email!</p>',
});
console.log('Sent:', id, status);cURL
curl -X POST https://api.aisend.app/v1/emails \
-H "Authorization: Bearer as_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@yourdomain.com",
"to": "user@example.com",
"subject": "Hello from AISend",
"html": "<p>Your first AI-powered email!</p>"
}'Python
import requests
response = requests.post(
"https://api.aisend.app/v1/emails",
headers={
"Authorization": "Bearer as_your_api_key",
"Content-Type": "application/json",
},
json={
"from": "hello@yourdomain.com",
"to": "user@example.com",
"subject": "Hello from AISend",
"html": "<p>Your first AI-powered email!</p>",
},
)
print(response.json())REST API Reference
Base URL: https://api.aisend.app/v1
Authentication
All requests require a Bearer token in the Authorization header.
Authorization: Bearer as_your_api_keyEndpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/emails | Send an email |
| GET | /v1/emails/:id | Get email status |
| GET | /v1/emails | List emails |
| POST | /v1/api-keys | Create API key |
| GET | /v1/api-keys | List API keys |
| DELETE | /v1/api-keys/:id | Revoke API key |
| POST | /v1/email-validation/validate | Validate email address |
| POST | /v1/auth/agent-signup | AI agent signup |
Send Email — Request Body
{
"from": "hello@yourdomain.com", // Required. Verified sending address
"to": "user@example.com", // Required. String or array of strings
"subject": "Email subject", // Required
"html": "<p>HTML body</p>", // html or text required
"text": "Plain text body", // html or text required
"cc": "cc@example.com", // Optional. String or array
"bcc": "bcc@example.com", // Optional. String or array
"reply_to": "reply@example.com" // Optional
}Send Email — Response
{
"id": "em_abc123",
"from": "hello@yourdomain.com",
"to": ["user@example.com"],
"subject": "Email subject",
"status": "queued",
"provider": "ses",
"createdAt": "2026-03-21T00:00:00.000Z"
}Idempotency
Include an Idempotency-Key header to prevent duplicate sends.
Idempotency-Key: unique-request-id-123Custom Domains
To send from your own domain, add it in the dashboard and configure DNS records. AISend automatically generates SPF and DKIM records. Domain verification typically takes under 5 minutes once DNS propagates.
Webhooks
Receive real-time delivery events via HTTP webhooks. Configure endpoints in the dashboard.
Event Types
email.sentemail.deliveredemail.openedemail.clickedemail.bouncedemail.complainedWebhook Payload
{
"type": "email.delivered",
"data": {
"email_id": "em_abc123",
"to": "user@example.com",
"timestamp": "2026-03-21T00:00:00.000Z"
}
}Verify webhook signatures using the x-webhook-signature header (HMAC-SHA256).
Email Validation
Validate email addresses before sending to reduce bounces.
// Request
{ "email": "user@example.com" }
// Response
{
"email": "user@example.com",
"valid": true,
"checks": {
"format": true,
"mx": true,
"disposable": false,
"role": false
},
"risk": "low"
}AI Agent Signup
AI agents can create an account and get an API key with a single request — no browser or email verification needed.
// Request
{ "name": "My AI Agent" }
// Response
{
"token": "eyJhbG...",
"apiKey": "as_abc123...",
"userId": "550e8400-...",
"email": "my-ai-agent-a1b2c3@agent.aisend.app",
"expiresAt": "2027-03-21T00:00:00.000Z"
}Use the returned apiKey as a Bearer token to send emails. Agent accounts start on the free tier (3,000 emails/month).
MCP Server (Claude Integration)
Give Claude Desktop, Claude Code, or any MCP-compatible AI assistant the ability to send emails, check delivery status, validate addresses, and manage API keys — all through natural language.
Quick Setup
Add this to your claude_desktop_config.json or project .mcp.json:
{
"mcpServers": {
"aisend": {
"command": "npx",
"args": ["-y", "aisend-mcp"],
"env": {
"AISEND_API_KEY": "as_your_api_key"
}
}
}
}Available Tools
| Tool | Description |
|---|---|
| send_email | Send an email (from, to, subject, html/text) |
| get_email_status | Check delivery status of a sent email |
| list_emails | List recently sent emails with status |
| validate_email | Validate an email address before sending |
| list_api_keys | List all API keys |
| create_api_key | Create a new API key |
| list_domains | List verified and pending domains |
| agent_signup | Create a new AISend account (no API key needed) |
Zero-Config Agent Signup
Don't have an API key? The MCP server includes an agent_signup tool. Just ask Claude: "Sign up for AISend and send an email to..." — it will create an account, get credentials, and send the email automatically.
Example Prompts for Claude
Error Handling
AISend uses standard HTTP status codes. Error responses include a JSON body with an error field.
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — check your parameters |
| 401 | Unauthorized — invalid or missing API key |
| 404 | Not found |
| 422 | Validation error — check required fields |
| 429 | Rate limited — check Retry-After header |
| 500 | Server error — retry with exponential backoff |
Ready to Start Sending?
3,000 emails/month free. No credit card required.