Send transactional emails from your applications with the SimplyStack Email API.

Email API

The Email API enables you to send transactional emails from your applications. Perfect for welcome emails, password resets, notifications, and more.

Authentication

Email API requires a project-specific API key. Get your key from Settings → API Keys in your project dashboard.

Send Email

POST /api/v1/emails

Send a transactional email to one or more recipients.

JavaScript
const response = await fetch('https://www.simplystack.dev/api/v1/emails', {
  method: 'POST',
  headers: {
    'x-api-key': 'your-project-api-key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    to: 'user@example.com',
    subject: 'Welcome to Our App',
    html: '<h1>Welcome!</h1><p>Thanks for signing up.</p>',
    from: 'noreply@yourapp.com'
  })
});

const { data } = await response.json();
console.log('Email sent:', data.id);

Request Parameters

  • to - Recipient email address (required)
  • subject - Email subject line (required)
  • html - HTML email body (required)
  • from - Sender email address (optional, uses default if not provided)
  • cc - CC recipients (optional, comma-separated)
  • bcc - BCC recipients (optional, comma-separated)
  • reply_to - Reply-to email address (optional)

List Sent Emails

GET /api/v1/emails

Retrieve a list of sent emails with pagination and filtering.

JavaScript
const response = await fetch(
  'https://www.simplystack.dev/api/v1/emails?page=1&limit=20',
  { headers: { 'x-api-key': 'your-project-api-key' } }
);
const { data, pagination } = await response.json();

Get Email Details

GET /api/v1/emails/{id}

Get details about a specific sent email including delivery status.

JavaScript
const response = await fetch(
  `https://www.simplystack.dev/api/v1/emails/${emailId}`,
  { headers: { 'x-api-key': 'your-project-api-key' } }
);
const { data } = await response.json();
console.log('Status:', data.status);

Email Status

  • queued - Email is queued for sending
  • sent - Email was successfully sent
  • delivered - Email was delivered to recipient
  • bounced - Email bounced (invalid address)
  • failed - Email failed to send

Best Practices

  • Always validate email addresses before sending
  • Use meaningful subject lines
  • Include both HTML and plain text versions
  • Test emails before sending to users
  • Monitor bounce rates and failed deliveries
  • Respect unsubscribe requests

Rate Limits

  • Free Plan - 100 emails per day
  • Pro Plan - 10,000 emails per day
  • Enterprise - Custom limits
Last updated: 4/28/2026