Skip to main content
POST
/
api
/
v1
/
transactional
/
send
Send Transactional Email
curl --request POST \
  --url https://api.example.com/api/v1/transactional/send \
  --header 'Content-Type: application/json' \
  --data '
{
  "to": [
    "<string>"
  ],
  "cc": [
    "<string>"
  ],
  "bcc": [
    "<string>"
  ],
  "slug": "<string>",
  "subject": "<string>",
  "body": "<string>",
  "preview": "<string>",
  "variables": {},
  "from": "<string>",
  "replyTo": "<string>",
  "attachments": [
    {}
  ]
}
'
{
  "success": true,
  "jobId": "job_xyz789",
  "to": "user@sequenzy.com",
  "transactional": {
    "id": "txn_abc123",
    "slug": "welcome",
    "name": "Welcome Email"
  }
}
Send a transactional email. You can either use a saved template (by slug) or send custom content directly.

Request Body

Recipients

to
string | string[]
required
Recipient email address(es). Can be a single email string or an array of up to 50 emails. All recipients will receive the same email and can see each other in the To header.
cc
string | string[]
Carbon copy recipients. Visible to all recipients. Can be a single email or array of up to 50 emails.
bcc
string | string[]
Blind carbon copy recipients. Hidden from other recipients. Can be a single email or array of up to 50 emails.

Option 1: Send via template

slug
string
Template slug (use this OR subject+body)

Option 2: Send direct content

subject
string
Email subject (required if no slug)
body
string
Email HTML body (required if no slug)
preview
string
Preview text

Common fields

variables
object
Template variables for personalization
from
string
Custom from address. Format: "Name <email>" or just "email". The domain must be verified for your account. If not verified, this field is silently ignored and the default sender profile is used.
replyTo
string
Reply-to address. Format: "Name <email>" or just "email". Can be any valid email address.
attachments
array
File attachments to include with the email. Maximum total size: 40MB.Each attachment object has:
  • filename (required): The name of the file as it will appear to the recipient
  • content: Base64-encoded file content (use this OR path)
  • path: URL to fetch the file from (use this OR content)
You must provide either content or path, but not both.

Example: Send via template

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@sequenzy.com",
    "slug": "welcome",
    "variables": {
      "NAME": "John",
      "LOGIN_URL": "https://app.sequenzy.com/login"
    }
  }'

Example: Send to multiple recipients with CC and BCC

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": ["user1@example.com", "user2@example.com"],
    "cc": ["manager@example.com"],
    "bcc": ["audit@example.com"],
    "slug": "invoice",
    "variables": {
      "INVOICE_NUMBER": "INV-2024-001",
      "AMOUNT": "$500.00"
    }
  }'

Example: Send direct content

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@sequenzy.com",
    "subject": "Your order is confirmed",
    "body": "<h1>Thank you, {{NAME}}!</h1><p>Order #{{ORDER_ID}} confirmed.</p>",
    "variables": {
      "NAME": "John",
      "ORDER_ID": "12345"
    }
  }'

Example: Send with custom from and reply-to

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "slug": "order-confirmation",
    "variables": {
      "NAME": "John",
      "ORDER_ID": "12345"
    },
    "from": "Notifications <notifications@example.com>",
    "replyTo": "Support <support@example.com>"
  }'

Example: Send with URL-based attachment

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "slug": "invoice",
    "variables": {
      "INVOICE_NUMBER": "INV-2024-001"
    },
    "attachments": [
      {
        "filename": "invoice.pdf",
        "path": "https://example.com/invoices/INV-2024-001.pdf"
      }
    ]
  }'

Example: Send with Base64 attachment

curl -X POST "https://api.sequenzy.com/api/v1/transactional/send" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "subject": "Your report is ready",
    "body": "<p>Please find your report attached.</p>",
    "attachments": [
      {
        "filename": "report.csv",
        "content": "TmFtZSxFbWFpbCxTdGF0dXMKSm9obixqb2huQGV4YW1wbGUuY29tLEFjdGl2ZQ=="
      }
    ]
  }'

Responses

{
  "success": true,
  "jobId": "job_xyz789",
  "to": "user@sequenzy.com",
  "transactional": {
    "id": "txn_abc123",
    "slug": "welcome",
    "name": "Welcome Email"
  }
}
Emails are queued for background processing. The jobId can be used to track delivery status. System variables like NAME, FIRST_NAME, LAST_NAME, and EMAIL are automatically populated from subscriber data if available.
When using multiple recipients, all addresses in to and cc are visible to each other. Only bcc recipients are hidden. Duplicate addresses across to, cc, and bcc are automatically removed with priority: to > cc > bcc.