Email API

Send transactional emails and track delivery through the full message lifecycle. Configure sending domains and authorized senders, compose messages with rich content options, and monitor opens, clicks, bounces, and delivery events.

Base URL: https://connect.routee.net

New to the HTTP API? Start with Send your first transactional email. Product context: E-mail.

Before you integrate

RequirementDescription
Active subscriptionTransactional Email package on go.routee.net (Email → Pricing → My Plan)
Verified senderfrom address or domain verified in your account
OAuth applicationConnect app with Transactional Email role and scope transactional_email

Domain setup: Domain & authorized senders.

Authentication

  1. Create an application on go.routee.net and note Application ID and Application Secret.
  2. Request a token with HTTP Basic auth (-u id:secret):
curl -X POST 'https://auth.routee.net/oauth/token' \
  -u 'APPLICATION_ID:APPLICATION_SECRET' \
  -H 'Content-Type: application/x-www-form-urlencoded' \
  -d 'grant_type=client_credentials&scope=transactional_email'
  1. Pass Authorization: Bearer {access_token} on all endpoints below.

Full walkthrough: Get authenticated using your application credentials.

Recommended reading order

  1. SendSend a transactional email
  2. Track — search and timeline endpoints (below)
  3. SetupRetrieving a list of domains (verified domain / sender prerequisites)
  4. Payload referenceRequest & Response Objects

Send & track

StepMethodEndpointReference
1. SendPOST/transactional-emailSend a transactional email
2. Search logsPOST/email/trackingSearch email tracking
3. Batch statusGET/email/tracking/batch/{trackingId}Get email tracking (batch summary)
4. Recipient timelineGET/email/tracking/single/{trackingId}/recipients/{messageId}Get email tracking (recipient timeline)
5. Single timelineGET/email/tracking/single/{trackingId}Get email tracking (single message timeline)

HTTP 200 on send means the message was accepted for processing, not delivered to the inbox. Log rows may take 1–2 minutes after send.

For multi-recipient sends, use batch summary then recipient timeline. For single-recipient or legacy rows, use single timeline.

Delivery callbacks (webhooks)

Configure callbacks on POST /transactional-email instead of polling when you want push updates.

Callbacks are HTTP send only — SMTP relay uses the same tracking endpoints for polling.

Domain setup

MethodEndpointReference
GET/email-senders/domainRetrieving a list of domains

Tracking identifiers

IdUse
trackingIdBatch id from POST /transactional-email — batch summary, recipient timeline path, search query ?trackingId=, and search filter fieldName: trackingId
messageIdPer-recipient timeline key from search list or batch recipients[]

Multi-recipient sends: one trackingId, many messageId values. Legacy single-recipient rows may use one id for both.

Production behavior

Customer sends on connect.routee.net follow the same path in production as in dev:

  1. OAuthPOST https://auth.routee.net/oauth/token with scope=transactional_email
  2. SendPOST /transactional-email (menshen routes to transactional-email and injects the account principal)
  3. Billing — usage charged against the account's Transactional Email subscription
  4. Delivery — message queued to the email worker; logs on POST /email/tracking within 1–2 minutes

SMTP relay (smtp10.amdtelecom.net) uses the same Connect application credentials; billing runs at SMTP AUTH via the MailerQ plugin. See Transactional Email — SMTP relay.

Migration: Integrators moving from email.routee.net must activate a Transactional Email package on go.routee.net before sending via Connect.

Request & Response Objects

Field-by-field documentation for the send request and response payload: Request & Response Objects.

Retired (not for new integrations)

SendGrid and Mailjet compatibility facades were removed from the product. Use Send a transactional email or Transactional Email — SMTP relay.