适合快速交付团队的实用 API

通过单一 API 发送 OTP、密码重置、账户提醒、发票与生命周期消息。Sendarix 为规模化下的可预测行为而设计,而非脆弱集成。

在一个一致的管道中认证请求、提交消息并追踪结果。每次发送均可通过日志、事件与 Webhooks 观察。

API calls flow through structured validation, queue management, and email routing before reaching destination servers. Delivery outcomes are surfaced via email webhooks and tracked in email analytics.

Sendarix 邮件 API 控制台

您将获得

API 刻意保持直白:创建并发送消息、检查结果并自动化响应。帮助产品团队在不影响可靠性的前提下更快迭代。

快速 REST 集成

清晰的请求/响应模式,适合现代后端服务与内部工具的可预测行为。

消息生命周期追踪

追踪已接受、已投递、已退信与投诉状态,以便产品实时响应。

运营可见性

可搜索的日志与事件流在用户报告投递问题时缩短排障时间。

扩展无需重构

从早期工作负载到高流量流程,在流量增长时保持同一 API 契约。

模板数据注入

干净地传递动态变量,使事务性模板在各产品间保持一致。

幂等发送模式

在重试场景下通过确定性请求处理策略避免重复发送。

Sendarix Email API Dashboard

What Happens After an API Send Request

A successful API response is the start of the message lifecycle, not the end of it.

Validation

The system checks authentication, request shape, sender identity, and required fields before accepting the request.

Acceptance and Queueing

A successful response means the request has been accepted for processing. It does not necessarily mean the message has already been delivered to the destination server.

Delivery Processing

After acceptance, the message moves through delivery logic that may include queueing, suppression checks, routing policy, and destination-aware pacing.

Event Generation

As the message progresses, delivery events can be exposed to logs, analytics, and webhook consumers so your application can react in near real time. Monitor progression via email analytics or email webhooks.

Why Accepted Does Not Mean Delivered

A successful API response confirms that the request has been accepted into the processing pipeline. Final delivery still depends on validation, suppression checks, routing policy, provider behavior, and downstream delivery outcomes.

Email API vs SMTP Relay

Both approaches can send email, but they solve different integration needs.

Email API

Best for modern applications that want structured requests, cleaner metadata, and easier automation around delivery state. See API docs for integration details.

SMTP Relay

Best for older tools, legacy systems, or environments that already speak SMTP and need compatibility with minimal code changes. See SMTP relay for setup details.

Many teams use an email API for product-driven workflows and SMTP relay for compatibility with older tools, internal systems, or third-party applications that already speak SMTP. Check API docs for implementation, email webhooks for event handling, and email analytics for delivery visibility.

典型 API 流程

您的团队可一次性实现并在所有事务场景中复用的简单模式。

1. 提交请求

您的服务发布包含收件人、模板数据与元数据的消息负载。

2. 校验与入队

在投递阶段前进行输入检查、抑制逻辑与排队。

3. 投递

消息经可控发送行为路由至目标服务商。

4. 消费事件

使用 Webhooks 与日志更新产品状态并触发下游自动化。

Real-World Scenario: Idempotent Send Request

A payment confirmation is triggered by a webhook from a payment processor. The application sends via the email API with an idempotency key. If the API call is accidentally retried due to a network timeout, the email routing layer recognizes the duplicate and returns the original queued message ID rather than queuing a second send. Delivery is confirmed via email webhooks.

Example API Request Flow

  1. Client sends request to API docs
  2. Request is validated
  3. Message is queued
  4. Delivery attempt is executed
  5. Events are generated and tracked via email webhooks

Note: A successful API response (e.g. 202 Accepted) means the message is queued, not delivered. Track final delivery status with email analytics or webhook events.

Example API Request and Response

Every Sendarix API call uses JSON and returns consistent response shapes. Below are the primary endpoints your integration will call most frequently.

Send Message

POST to /v1/messages with recipient, subject, and template data. Returns a message_id for correlation with downstream webhook events.

Request
POST /v1/messages
Authorization: Bearer sk_live_...
Content-Type: application/json

{
  "recipient": "user@example.com",
  "subject": "Your verification code",
  "template": "otp-code",
  "template_data": {
    "code": "847291",
    "expires_in": "5 minutes"
  },
  "headers": {
    "X-Idempotency-Key": "uuid-v4-here"
  }
}
Response (200 OK)
{
  "message_id": "msg_abc123xyz",
  "status": "queued",
  "recipient": "user@example.com",
  "created_at": "2026-04-19T14:30:00Z"
}

Returns a message_id and status: queued. Correlate message_id with email webhooks for delivery status.

List Messages

GET /v1/messages returns a paginated list of messages with filtering by status, recipient, and date range.

GET /v1/messages?status=delivered&limit=25
Authorization: Bearer sk_live_...

Get Message

GET /v1/messages/{message_id} returns the current state of a specific message including timestamps, recipient, and delivery outcome.

GET /v1/messages/msg_abc123xyz
Authorization: Bearer sk_live_...

Cancel Scheduled Message

DELETE /v1/messages/{message_id} cancels a scheduled message before it is delivered. Returns 404 if already sent.

DELETE /v1/messages/msg_abc123xyz
Authorization: Bearer sk_live_...

Add to Suppression List

POST /v1/suppressions adds an address to the suppression list to prevent future sends to that recipient.

POST /v1/suppressions
Authorization: Bearer sk_live_...

{
  "recipient": "user@example.com",
  "reason": "user_unsubscribed"
}
Email API Lifecycle

Validation, Queueing, and Delivery Lifecycle

Understanding what happens between an API call and final delivery helps you design more resilient integrations and debug issues faster.

1

Step 1: Request Validation

The API validates: required fields (recipient, from, subject), email address format, API key and permissions, content size limits. Validation errors return 400 or 422 immediately with a field-level error array. No message is queued until validation passes.

2

Step 2: Queue and Acceptance

Validated messages enter the sending queue with a queued status. A message_id is returned immediately so your application can correlate with downstream events. Queue processing is FIFO within priority tiers.

3

Step 3: Routing and Provider Selection

The routing layer selects the optimal sending path based on recipient domain, IP reputation, and provider performance. This is handled automatically by Sendarix infrastructure.

4

Step 4: Delivery Attempt

The message is delivered to the recipient's mail server. Delivery outcomes (delivered, bounced, deferred) are posted to your configured webhook endpoint. Track delivery in the email analytics dashboard.

Event Timeline

Each message generates a timeline of events: queued → accepted → delivered/bounced/deferred. You receive webhook events for each state change. Between queued and final state, multiple deferred events may fire as the system retries temporary failures.

Retry Behavior for Deferred Messages

Deferred messages (temporary provider rejection, greylisting) are retried automatically at increasing intervals: 30 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours. After 6 attempts, the message is marked as permanently bounced and you receive a bounce event.

Error Handling and Retry-Safe Integration Patterns

A production-grade integration handles API errors gracefully. These patterns prevent duplicate sends, data inconsistency, and user-facing failures.

HTTP Status Code Reference

Map status codes to retry behavior:

200 — Success — no retry needed
400 — Bad request — fix payload before retrying
401 — Unauthorized — check API key, do not retry
422 — Validation failed — fix payload, do not retry
429 — Rate limited — retry after X-RateLimit-Reset
500 — Server error — retry with exponential backoff
503 — Service unavailable — retry with backoff

Idempotent Send Pattern

Pass an idempotency_key (UUID v4 recommended) in the request headers: Idempotency-Key: {uuid}. If the same idempotency_key is submitted twice within 24 hours, the API returns the original response without re-sending. This prevents duplicate sends during retry loops.

Correlating API Calls to Events

Every message response includes a message_id. Match this against the message_id in email webhooks to confirm delivery. Never assume a 200 OK means the email was delivered — a 200 confirms the message was queued.

Exponential Backoff Implementation

Use this backoff formula: delay = min(base * 2^attempt + jitter, max_delay). Recommended base: 1 second, max_delay: 60 seconds, jitter: 0-1000ms random. Always cap retries at a maximum of 5 attempts to avoid infinite loops.

Dead-Letter Handling

After exhausting retries, log permanently failed messages to a dead-letter table keyed on message_id. Inspect these periodically to identify systemic issues (bad address patterns, provider problems, template errors) and fix upstream.

Common Email API Use Cases

The Sendarix API handles all transactional email flows. These are the most common integration patterns.

One-Time Passwords (OTP)

Send time-sensitive OTP codes for login, password changes, and identity verification. OTP emails require low latency, high deliverability, and clean templates with no distracting content. Set a short TTL in your application — OTP codes are security-sensitive and should not persist in inboxes.

Password Reset Emails

Password reset links must reach users quickly and reliably. These are high-stakes flows — a missed reset email creates support tickets and churn. Pair with email webhooks to detect bounce events and alert security teams if reset emails are bouncing for active users.

Billing and Invoice Notifications

Invoice delivery, payment confirmations, and failed payment alerts drive user engagement with billing systems. Use template data injection to personalize invoice amounts and due dates. For failed payments, trigger retry logic in your system based on the bounce event.

Account Lifecycle Notifications

Welcome emails, email verification, account suspension, and deletion notices are all driven by user actions in your system. These flows work best with an idempotency key per user action to prevent duplicate sends when users trigger the same action multiple times.

System and Security Alerts

New login detected, password changed, device authorized, unusual activity alerts — these require immediate delivery to catch security incidents. Route these through your highest-priority sending path. Set up real-time email analytics alerts for spike patterns that may indicate a compromised account.

Integrate with Your Email Infrastructure

The Email API works alongside SMTP relay for legacy system migration, transactional email templates for content management, and email analytics for cross-channel performance reporting. Build a complete email stack with the API at the center.

最佳搭配

邮件 API 与 邮件 Webhooks(实时自动化)及 邮件分析(运营洞察)配合尤佳。

适用对象

SaaS 产品、平台团队、账户系统、计费引擎以及依赖一致邮件投递的客户支持工作流。

Need SMTP configuration for a specific provider? Check our step-by-step guides for Gmail SMTP settings, Outlook SMTP configuration, Office 365 setup, Yahoo SMTP settings, and SendGrid SMTP settings.

What sets Sendarix apart: The Sendarix email API is designed around infrastructure control — routing rules, queue behavior, and delivery policy are exposed through the API, giving engineering teams programmatic access to what most platforms hide behind dashboards.

常见问题

可以同时使用 API 与 SMTP 吗?

可以。许多团队在应用工作流中使用 API,在迁移期间对旧系统使用 SMTP。

每条消息都能获得事件数据吗?

可以。投递、退信与投诉事件可用于运营与产品工作流。

适合高流量吗?

适合。同一 API 模型适用于低流量上线阶段到持续高流量发送。

通过 API 发送需要 SPF、DKIM 与 DMARC 吗?

强烈建议认证您的发送域名。这有助于收件方评估您的邮件,也是生产流量的基线期望。

API 密钥与权限如何工作?

可为不同环境或服务签发密钥并限制各密钥权限,使预发、CI 与生产相互隔离。

若集成发送无效或重复请求会怎样?

API 对错误负载返回清晰的校验错误。重试时请在应用层使用稳定标识符,以免意外重复发送面向用户的邮件。

能否将 API 调用与下游投递关联?

可以。消息标识符与事件时间线可将特定 API 提交与已接受、已投递、已退信或延迟结果关联。

邮件 API 适合密码重置与 OTP 吗?

适合。这些是典型事务场景:低延迟期望、高可见性需求,并与认证或风控系统紧密耦合。

API 流量应仅使用 HTTPS 吗?

是。TLS 保护传输中的凭据与消息元数据。请将 API 端点视为其他生产级涉密表面。

What is the request rate limit on the Email API?

Rate limits vary by plan. Standard plans allow 1,000 requests/minute; enterprise plans support higher throughput. Rate limit headers are included in every response (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset). Exceeding the limit returns 429 Too Many Requests.

How do we handle API failures gracefully in our application?

Implement exponential backoff with jitter for retries. Treat 429 as a signal to slow down, 5xx as transient errors to retry, and 4xx (except 429) as permanent failures that should not retry. Store the message_id from successful submissions to correlate with downstream webhook events.

What is the maximum message size via API?

Messages up to 50MB total payload are accepted. For files larger than 25MB, Sendarix recommends hosting files externally and including a signed download link in the email body rather than attaching directly. Some mail servers reject messages exceeding 25MB.

Can we schedule email delivery for a future time?

Yes. Pass a scheduled_time parameter (ISO 8601 UTC timestamp) in your API request. Messages are queued and delivered at the specified time. Scheduled messages can be cancelled before delivery by calling the message cancel endpoint with the message_id.

How do we handle unsubscribe programmatically via the API?

The API provides /unsubscribes endpoints for managing suppression records. When a user unsubscribes, add them via the API to prevent future sends to that address. This integrates with the email webhooks unsubscribe event for automatic suppression list updates.

What response codes should our retry logic handle?

Handle these specifically: 200 OK (success, no retry), 400 Bad Request (invalid payload, fix before retry), 401 Unauthorized (invalid API key, do not retry), 422 Unprocessable Entity (validation error, fix payload), 429 Too Many Requests (rate limited, retry after X-RateLimit-Reset), 500 Internal Server Error (transient, retry with backoff).

准备好迁移到可靠的邮件基础设施了吗?

免费开始,无需绑卡;高流量与企业需求可联系销售。

开始发送联系销售