Skip to main content
AhaSend send-only API keys let your application send email from selected domains; this guide shows how to create and manage those keys. Available on Free, Pro and Max. See plans and features.
API v1 is in maintenance mode. Use v2 for new integrations; see API v1 vs v2.
AhaSend send-only API keys let your application send email through API v2. Create them at Credentials → Add → API Key v2. They use the aha-sk- prefix followed by 64 characters, and authenticate with a Bearer header. Choose a verified sending domain for the messages:send:{your-domain} scope. For sending from many domains, a global send-only key uses messages:send:all. These keys do not grant management access. For domains, webhooks, routes, suppressions, reports or the CLI, create a full key under Account Settings → API Keys with the needed scopes; see authentication.

Creating API Keys

Access Credentials Dashboard

  1. Log in to your AhaSend Dashboard
  2. Navigate to the Credentials section from the main menu
  3. Click the “Add” button

Configure Credential Settings

Select Credential Type:
  • Choose “API Key v2” as the credential type for advanced features
Choose a Descriptive Name:
  • Use a name that helps you identify this API key later
  • Examples: “Production API v2”, “example.com API v2”, “Marketing Platform v2”
Naming Tip: If you have multiple domains or applications, include descriptive information in your API key name (e.g., “example.com Production API v2”, “Newsletter Service v2”) to make management easier.

Set Credential Mode

Choose the appropriate mode for your use case:Production Mode:
  • Sends emails to real recipients
  • Use for live applications and real email delivery
  • Emails are delivered normally
Sandbox Mode:
  • Simulates email sending without actual delivery to recipients
  • Perfect for testing and development environments
  • Completely free - doesn’t count toward your email credits
  • Still triggers webhooks for testing your integrations
Sandbox Benefits: Sandbox mode processes emails just like production (including webhook events) but stops short of actual delivery. This makes it perfect for testing your integration safely. Learn more about sandbox mode →

Configure Credential Scope

Global Scope:
  • Works with all domains in your account
  • Use when sending from many domains
  • Can be changed later if needed
Domain-Specific Scope:
  • Restricts API key to specific domains
  • Better security for multi-domain setups
  • Requires separate API keys per domain

Generate and Save API Key

  1. Click “Create Credential” to generate your API key
  2. Copy and securely store the API key
  3. Save it in your password manager or secure storage

API Key Scoping

  • Works with all domains in your account
  • Uses messages:send:all for sending from many domains
  • Prefer a domain-specific key when your app sends from one domain
  • Sending only; no management access
  • Restricts sending to messages:send:{your-domain}
  • Better security for multi-domain setups
  • Prevents accidental cross-domain sending
  • Ideal for client-specific applications

Account ID and First Request

Find your account ID in the dashboard’s account settings. Replace YOUR_ACCOUNT_ID, YOUR_API_KEY, and hello@yourdomain.com with your account, key, and verified sender.
See sending email, the Node.js SDK, and the Go SDK.

Integration Examples

Please see CreateMessage API Reference for code samples of sending emails using the API.