Skip to content

API Reference

The InteSys Transactional Email API (powered by FrontEngine) is an HTTP JSON-based API with RPC-style endpoints. Each action has its own endpoint. All requests use HTTPS with POST method and JSON-encoded parameters.

Base URL: https://app1.frontengine.net

Authentication

All API requests require the X-Server-API-Key header with your server API key.

X-Server-API-Key: your-api-key-here

Obtain your API key from the InteSys client portal or contact support.

Keep Your API Key Secret

Never expose your API key in client-side code, public repositories, or logs. Rotate keys immediately if compromised.

Authentication Errors

Error Description
InvalidServerAPIKey The provided token is invalid. Response includes the rejected token value.
ServerSuspended The mail server associated with your credentials has been suspended.

Response Format

All API responses follow this structure:

{
  "status": "success",
  "time": 0.23,
  "flags": {},
  "data": {}
}
Field Type Description
status string success, parameter-error, or error
time float Server-side processing time in seconds
flags object Additional metadata (pagination, etc.)
data object Response payload or error details

HTTP Status Codes

Code Meaning
200 Request processed (check status field for result)
301 / 308 Redirect (usually http to https)
500 Unexpected server error
503 Service unavailable (maintenance)

Send API

Send Message

Send a transactional email with full control over headers, body, and attachments.

POST /api/v1/send/message

Parameters:

Parameter Type Required Description
to array Yes Recipient email addresses (max 50)
cc array No Carbon copy addresses (max 50)
bcc array No Blind carbon copy addresses (max 50)
from string Yes Sender email address (must be verified domain)
sender string No Sender header (if different from from)
subject string Yes Email subject line
tag string No Classification tag for filtering in analytics
reply_to string No Reply-to address
plain_body string No* Plain text email content
html_body string No* HTML-formatted email content
attachments array No File attachments (see below)
headers object No Custom email headers
bounce boolean No Whether this message is a bounce response

*At least one of html_body or plain_body must be provided.

Attachment Object:

Field Type Description
name string Filename (e.g., invoice.pdf)
content_type string MIME type (e.g., application/pdf)
data string Base64-encoded file content

Error Codes:

Error Description
ValidationError General parameter validation failure
NoRecipients No recipient addresses provided
NoContent Neither html_body nor plain_body provided
TooManyToAddresses More than 50 to addresses
TooManyCCAddresses More than 50 cc addresses
TooManyBCCAddresses More than 50 bcc addresses
FromAddressMissing No from address specified
UnauthenticatedFromAddress Sending domain not verified for this server
AttachmentMissingName Attachment provided without filename
AttachmentMissingData Attachment provided without data

Example: curl

curl -X POST https://app1.frontengine.net/api/v1/send/message \
  -H "X-Server-API-Key: your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "[email protected]",
    "to": ["[email protected]"],
    "subject": "Order Confirmation #12345",
    "html_body": "<h1>Thank you for your order!</h1><p>Order #12345 has been confirmed.</p>",
    "plain_body": "Thank you for your order! Order #12345 has been confirmed.",
    "tag": "order-confirmation",
    "reply_to": "[email protected]"
  }'

Example: Python

import requests

response = requests.post(
    "https://app1.frontengine.net/api/v1/send/message",
    headers={
        "X-Server-API-Key": "your-api-key",
        "Content-Type": "application/json",
    },
    json={
        "from": "[email protected]",
        "to": ["[email protected]"],
        "subject": "Welcome!",
        "html_body": "<h1>Welcome to our platform!</h1>",
    },
)

print(response.json())

Example: Node.js

const response = await fetch(
  "https://app1.frontengine.net/api/v1/send/message",
  {
    method: "POST",
    headers: {
      "X-Server-API-Key": "your-api-key",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      from: "[email protected]",
      to: ["[email protected]"],
      subject: "Welcome!",
      html_body: "<h1>Welcome to our platform!</h1>",
    }),
  }
);

const data = await response.json();
console.log(data);

Send Raw (RFC2822)

Send a pre-formatted RFC2822 message. Useful for applications that construct their own MIME messages.

POST /api/v1/send/raw

Parameters:

Parameter Type Required Description
mail_from string Yes Envelope sender address
rcpt_to array Yes Recipient addresses for delivery
data string Yes Base64-encoded RFC2822 message
bounce boolean No Whether this is a bounce response

Error Codes:

Error Description
UnauthenticatedFromAddress Sender domain not verified for this server

Messages API

Get Message Details

Retrieve complete details about a sent message.

POST /api/v1/messages/message

Parameters:

Parameter Type Required Description
id integer Yes The message ID
_expansions array/boolean No Request additional data fields. Pass true for all expansions or an array of expansion names.

Error Codes:

Error Description
MessageNotFound No message found with the provided ID

Get Delivery Attempts

Retrieve all delivery attempts for a specific message.

POST /api/v1/messages/deliveries

Parameters:

Parameter Type Required Description
id integer Yes The message ID

Error Codes:

Error Description
MessageNotFound No message found with the provided ID

Next Steps

  • Authentication — Configure SPF, DKIM, and DMARC for your sending domain
  • Webhooks — Receive real-time delivery event notifications