Creates and queues a transactional email for delivery. Routed by menshen to the transactional-email service.
HTTP 200 means the message was accepted for processing, not delivered to the recipient's mailbox. Poll Search email tracking or Get email tracking (single message timeline) after a short delay (typically 1–2 minutes), or use optional callback URLs on the send request.
The response trackingId is the primary id for log lookup. See Transactional Email API v2 overview for trackingId vs messageId.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Send a transactional email over HTTP API v2 on Connect (https://connect.routee.net/transactional-email).
HTTP 200 means the message was accepted for processing, not delivered to the recipient's inbox. Delivery status arrives asynchronously via optional callbacks or the Email Tracking API.
Authentication
- Obtain a Bearer token with OAuth 2.0 client credentials —
POST https://auth.routee.net/oauth/tokenusing HTTP Basic auth (Application ID:Application Secret),grant_type=client_credentials, andscope=transactional_email. See Get authenticated using your application credentials. - Call this endpoint with
Authorization: Bearer {access_token}.
Do not send a Principal header (or any account-id header). Routee resolves your tenant from the OAuth token.
Required field — isSingleChannel
isSingleChannel| Value | Meaning |
|---|---|
true | Charge the single-channel transactional email subscription (default for Track A / go.routee.net API users). |
false | Charge the standard multi-channel transactional email subscription. |
This field is required on every send.
Example — cURL
# 1) Token (Basic auth with application credentials)
curl -s -X POST 'https://auth.routee.net/oauth/token' \
-u 'YOUR_APPLICATION_ID:YOUR_APPLICATION_SECRET' \
-d 'grant_type=client_credentials&scope=transactional_email'
# 2) Send (Bearer token from step 1)
curl -X POST 'https://connect.routee.net/transactional-email' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-d '{
"from": { "name": "Acme", "address": "[email protected]" },
"to": [{ "address": "[email protected]" }],
"subject": "Order confirmed",
"content": { "html": "<p>Thank you.</p>" },
"isSingleChannel": true
}'Response
| Field | Description |
|---|---|
trackingId | Primary id for Search email tracking and Get email tracking (single message timeline). |
Tracking rows typically appear within 1–2 minutes after a successful send.
Common HTTP 400 errors
| errorCode | Typical cause |
|---|---|
000000 | Invalid or unverified sending domain |
000001 | Invalid sender address |
000002 | Unverified sender |
000003 | Message size limit exceeded |
000004 | No active subscription |
000005 | Insufficient subscription resources |
Optional callback.statusCallback and callback.eventCallback (onOpen, onClick) receive HTTPS POST notifications as the message progresses.
400Validation or business rule failure (domain, sender, subscription, size limits)
401Missing or invalid Bearer token
403Insufficient role or OAuth scope (transactional_email required)

