Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The AhaSend changelog lists product releases, API changes and fixes by month, wi
<Update label="October 2026">
#### New Features

- **[Transactional templates](/api-reference/templates/get-templates) in API v2.** Create, update and delete templates, work on a draft, publish it, and read or restore published versions. Send a template with [Create Template Message](/api-reference/messages/create-template-message): each recipient gives its own values for the template's variables.
- **[Transactional templates](/send-api/templates) in API v2.** Create, update and delete templates, work on a draft, publish it, and read or restore published versions. Send a template with [Create Template Message](/api-reference/messages/create-template-message): each recipient gives its own values for the template's variables.
- **Transactional templates in the dashboard.** Under Transactional → Templates, design a template with the Simple Editor or the Advanced Editor, or upload your own HTML file or a zip with its images. Each template has its own page with its ID, its variables, a sample API request, a preview with your sample values, a test send, a default sender and subject, and its delivery statistics for the last 30 days. Your edits go to a draft. API sends keep using the published version until you click Publish, and the last 50 published versions can be previewed and restored.
- **[Campaigns](/api-reference/campaigns/overview) and [campaign templates](/api-reference/campaign-templates/get-campaign-templates) in API v2.** Create a draft campaign from MJML, HTML or a campaign template, check it, send a test, schedule or send it, and read its statistics and recipients.
- **Saved campaign templates.** Save a campaign's design as a template under Marketing → Templates and start new campaigns from it. Each campaign keeps its own copy, so a later change to the template does not change campaigns you already made.
Expand Down
3 changes: 2 additions & 1 deletion docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@
"pages": [
"send-api/credentials",
"send-api/sandbox",
"send-api/send-email"
"send-api/send-email",
"send-api/templates"
]
},
{
Expand Down
12 changes: 8 additions & 4 deletions facts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: "Check AhaSend's EU data location, free email allowance, plan featu
icon: "circle-info"
---

AhaSend is a European transactional email service for developers: send through a REST API, SMTP relay, CLI or the official Node.js and Go SDKs, with data stored in the EU and 1,000 free emails per month.
AhaSend is a European email service for developers: send transactional email through a REST API, SMTP relay, CLI or the official Node.js and Go SDKs, and newsletters and campaigns with Campaign Builder, with data stored in the EU and 1,000 free emails per month shared by both.

## Company and Service

Expand All @@ -23,7 +23,7 @@ AhaSend is a European transactional email service for developers: send through a

| Feature | Free | Pro | Max |
|---|---|---|---|
| Emails included per month | 1,000 | 25,000 | 100,000 |
| Emails included per month, transactional and campaigns combined | 1,000 | 25,000 | 100,000 |
| [Sending domains](/domains) | 3 | Unlimited | Unlimited |
| [Metadata retention](/retention) | 1–7 days | 1–14 days | 1–30 days |
| [Message data retention](/retention) | 1–7 days | 0–14 days (0 needs approval) | 0–30 days (0 needs approval) |
Expand All @@ -32,8 +32,9 @@ AhaSend is a European transactional email service for developers: send through a
| [Bring your own IP](/scale/byoip) | No | No | Add-on |
| [S3 archiving](/retention/s3), [DSN reports](/integrations/dsn-reports), [OIDC single sign-on](/security/sso) | No | No | Yes |
| [Sub-accounts](/scale/sub-accounts), [DNS whitelabel](/scale/dns-whitelabel), [per-domain DKIM selectors and bring-your-own DKIM](/api-reference/domains/create-domain) | Platform Partners | Platform Partners | Platform Partners |
| [Campaign Builder](/api-reference/campaigns/overview): contacts and lists, campaign templates, scheduling and test sends, campaign reports, [marketing domains](/deliverability#which-sending-type-should-my-domain-use) with a separate [daily marketing limit](/deliverability/marketing-limit) | Yes | Yes | Yes |
| Support | Community, best effort | Every day 9:00–21:00 CEST | Premium, 4-hour response time |
| [API](/send-api/send-email), [SMTP](/smtp), [sandbox](/send-api/sandbox), [webhooks](/integrations/webhooks), [inbound routing](/integrations/routing), [tracking](/tracking/open-tracking), [2FA](/security/2fa) and [2FA enforcement](/security/2fa-enforcement), [scoped keys](/security/scoped-credentials), [IP allow lists](/security/ip-allow-lists), [Reputation Shield](/security/reputation-shield), [signed webhooks and routes](/api-reference/webhooks/security), [automatic DKIM rotation](/domains) | Yes | Yes | Yes |
| [API](/send-api/send-email), [SMTP](/smtp), [transactional templates](/send-api/templates), [sandbox](/send-api/sandbox), [webhooks](/integrations/webhooks), [inbound routing](/integrations/routing), [tracking](/tracking/open-tracking), [2FA](/security/2fa) and [2FA enforcement](/security/2fa-enforcement), [scoped keys](/security/scoped-credentials), [IP allow lists](/security/ip-allow-lists), [Reputation Shield](/security/reputation-shield), [signed webhooks and routes](/api-reference/webhooks/security), [automatic DKIM rotation](/domains) | Yes | Yes | Yes |

Platform Partner features require the Platform Partner program. [Contact sales](mailto:sales@ahasend.com) about access.

Expand All @@ -47,6 +48,9 @@ New accounts keep message metadata and message data for 7 days. Zero data retent
| API request limit | 100 requests per second with bursts of 200 | [API rate limits](/api-reference/rate-limits) |
| Statistics, stream and trigger endpoints | 1 request per second | [API rate limits](/api-reference/rate-limits) |
| Create Message recipients | Up to 100 per request | [Send email](/send-api/send-email) |
| Create Template Message recipients | Up to 100 per request | [Transactional templates](/send-api/templates) |
| Campaign lists | 1 to 50 lists per campaign | [Campaigns](/api-reference/campaigns/overview) |
| Template content size | MJML, HTML and custom text each up to 200 KB | [Transactional templates](/send-api/templates) |
| Scheduled sending | First attempt within 7 days; expiry within 8 days | [Create Message](/api-reference/messages/create-message) |
| SMTP host | `send.ahasend.com` | [SMTP settings](/smtp) |
| SMTP ports and encryption | 25, 587 and 2525; STARTTLS on all ports; AUTH PLAIN only after STARTTLS | [SMTP settings](/smtp) |
Expand All @@ -64,6 +68,6 @@ Hourly sending limits apply to transactional mail. They start low for new accoun
## Related Guides

- [Start sending](/quickstart), [Domain setup](/domains), [Send-only API keys](/send-api/credentials).
- [Sending guide](/send-api/send-email), [SMTP settings](/smtp), [CLI quickstart](/cli/quickstart).
- [Sending guide](/send-api/send-email), [Transactional templates](/send-api/templates), [Campaigns](/api-reference/campaigns/overview), [SMTP settings](/smtp), [CLI quickstart](/cli/quickstart).
- [SDK and framework guides](/guides), [Product releases](/changelog), [Retention rules](/retention).
- [Tracking setup](/tracking/open-tracking), [Sandbox behavior](/send-api/sandbox), [Dedicated IP availability](/scale/dedicated-ips).
1 change: 1 addition & 0 deletions glossary.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ AhaSend's glossary explains the email terms used in these docs and links each te
| Transactional email | A message sent because of a user's action or an account event, such as a receipt or reset | [First send](/quickstart) |
| SMTP relay | A server that accepts email from your app and passes it toward the recipient's mail server | [SMTP settings](/smtp) |
| Email API | An HTTP service your app calls with a message and recipients | [REST API](/send-api/send-email) |
| Transactional template | An email design stored in AhaSend and sent by ID through the API, with values per recipient; not the same as a campaign template | [Transactional templates](/send-api/templates) |
| Envelope sender | The SMTP sender used for delivery errors; it can differ from the visible From address | [Authentication](/email-authentication) |
| Return-path | The address used for delivery-status messages, normally based on the envelope sender | [Domain records](/domains) |
| MX record | A DNS record that names a domain's receiving mail servers | [Inbound routing](/integrations/routing) |
Expand Down
17 changes: 14 additions & 3 deletions index.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Transactional Email API and SMTP Relay Docs"
title: "Transactional Email, SMTP Relay and Campaigns Docs"
sidebarTitle: "Introduction"
description: "AhaSend developer docs: send transactional email with the REST API, SMTP relay, CLI or SDKs, verify your sending domain, and track events with webhooks."
description: "AhaSend docs: send transactional email with the REST API, SMTP relay, CLI or SDKs, send campaigns with Campaign Builder, and track events with webhooks."
icon: "book-open"
---

Expand All @@ -10,7 +10,7 @@ import EmailHelpGuides from "/snippets/email-help-guides.mdx";
import OfficialSdks from "/snippets/official-sdks.mdx";


AhaSend is a European transactional email service for developers: send through a REST API, SMTP relay, CLI or the official Node.js and Go SDKs, with data stored in the EU and 1,000 free emails per month.
AhaSend is a European email service for developers: send transactional email through a REST API, SMTP relay, CLI or the official Node.js and Go SDKs, and newsletters and campaigns with Campaign Builder, with data stored in the EU and 1,000 free emails per month shared by both.

<Info>
**New to AhaSend?** Start with our [Quickstart Guide](/quickstart) to send your first email in under 5 minutes, or [create your free account](https://dash.ahasend.com/user/register) to get 1,000 free emails per month.
Expand All @@ -23,6 +23,7 @@ AhaSend is a European transactional email service for developers: send through a

### Built for Developers
- **[Clean, intuitive REST APIs](/api-reference)** and [SMTP relay](/smtp)
- **[Campaign Builder](/api-reference/campaigns/overview)** on every plan: contacts, lists, templates and campaign reports, on separate marketing infrastructure
- **[Powerful CLI tool](/cli)** for development, testing, and automation
- **Sandbox Mode** for [SMTP](/send-api/sandbox) and [API](/send-api/sandbox) testing and development
- **[Engineering-led support](mailto:support@ahasend.com)** from real developers, not chatbots
Expand Down Expand Up @@ -58,6 +59,15 @@ AhaSend is a European transactional email service for developers: send through a
<Card title="CLI Tool" icon="terminal" href="/cli">
Command-line interface for developers. Send emails, manage webhooks, test integrations locally.
</Card>
<Card title="Transactional Templates" icon="file-code" href="/send-api/templates">
Store a design once and send it by ID with values per recipient.
</Card>
<Card title="Campaigns" icon="paper-plane" href="/api-reference/campaigns/overview">
Newsletters and campaigns to contact lists, in the dashboard or through the API.
</Card>
<Card title="Marketing Domains" icon="bullhorn" href="/deliverability#which-sending-type-should-my-domain-use">
Marketing mail runs on separate infrastructure with its own limit, so it never touches your transactional reputation.
</Card>
</CardGroup>

## Popular Integration Guides
Expand Down Expand Up @@ -106,6 +116,7 @@ Replace placeholder values with your API keys and verified domain. Use [sandbox
2. **[Set up your domain](/domains)**, authorizing AhaSend to send emails on your behalf
3. Use our **[APIs](/send-api/send-email)** or **[SMTP](/smtp)** to send your first email
4. **[Configure webhooks](/integrations/webhooks)** to track email events in real-time
5. **[Send a campaign](/api-reference/campaigns/overview)** to a contact list when you have a newsletter to send

Ready to start sending emails that actually reach the inbox? Let's get you set up! 🚀

Expand Down
2 changes: 1 addition & 1 deletion send-api/send-email.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ Based on the [API documentation](/api-reference/messages/create-message), ensure
</Accordion>

<Accordion title="Template Variables" icon="code">
AhaSend supports [MiniJinja](https://github.com/mitsuhiko/minijinja) templating language for email content. To send a transactional template stored in your account, use [Create Template Message](/api-reference/messages/create-template-message).
AhaSend supports [MiniJinja](https://github.com/mitsuhiko/minijinja) templating language for email content. To store a design in AhaSend and send it by ID, see [Transactional templates](/send-api/templates).
- Use descriptive variable names
- Provide fallback values in templates
- Validate variables before sending
Expand Down
Loading
Loading