Transactional Email API v2 — overview

HTTP OAuth workflow.

Transactional Email API v2 — overview

Start here: E-mail — product overview, prerequisites, HTTP vs SMTP paths, and full documentation map.

Routee Transactional Email API v2 lets you send one-to-one email and inspect delivery logs on Connect (https://connect.routee.net). This guide covers prerequisites, authentication, message identifiers, and the send → track workflow for the HTTP API.

Prerequisites

Before you integrate, ensure your Routee account has:

RequirementDescription
Active subscriptionA transactional email subscription with available sending capacity.
Verified senderThe from address (or domain) you use in send requests must be verified in your Routee account.
OAuth applicationAn application on go.routee.net with the Transactional Email role and scope transactional_email.

API endpoints

All calls use the public Connect base URL: https://connect.routee.net.

OperationMethodPath
SendPOST/transactional-email
Search logsPOST/email/tracking
Message timelineGET/email/tracking/single/{trackingId}

Send and tracking are separate routes but share the same OAuth account and transactional_email scope.

Authentication

  1. Create an application on go.routee.net and note the Application ID and Application Secret.
  2. Request a token:
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'

Use HTTP Basic authentication (-u id:secret) — not a JSON body — for the token request.

  1. Pass Authorization: Bearer {access_token} on send and tracking calls.

Required product role: Transactional Email. OAuth scope: transactional_email (or all for portal-issued tokens).

For full token setup, see Get authenticated using your application credentials.

Identifier glossary

IdSourceDescription
trackingIdSend response (POST /transactional-email)Routee's message correlation id. Use this in your app after send.
messageIdTracking responsesMessage identifier in delivery logs. Always present on tracking rows.
RelationshiptrackingId and messageId refer to the same message; either can be used for lookup.

Lookup rule: pass either id to GET /email/tracking/single/{trackingId} or as the trackingId query parameter on POST /email/tracking.

Send → track workflow

  1. SendPOST /transactional-email with isSingleChannel: true for single-channel transactional billing. HTTP 200 and { "trackingId": "…" } mean the message was accepted for processing, not delivered to the inbox.
  2. Wait — allow 1–2 minutes for asynchronous processing before expecting log rows.
  3. SearchPOST /email/tracking with a date range and optional filters to list recent messages.
  4. DetailGET /email/tracking/single/{trackingId} for the full SMTP and event timeline.
  5. Callbacks (optional) — set callback.statusCallback and/or callback.eventCallback on send for push notifications instead of polling. See Email tracking, statuses & callbacks.

SMTP alternative: You can also send via MailerQ at smtp10.amdtelecom.net — see Email — HTTP API vs SMTP relay and Transactional Email — SMTP relay.

Example — send and track

# 1) Obtain token
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 email
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
  }'

# 3) Search logs (after 1–2 minutes)
curl -X POST 'https://connect.routee.net/email/tracking?page=0&size=20' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  -d '[]'

# 4) Full timeline for one message
curl -X GET 'https://connect.routee.net/email/tracking/single/TRACKING_ID_FROM_SEND' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'

Related reference