API ReferenceMarketing EmailSend Marketing Email

    Send Marketing Email

    The Marketing Email API (MAPI) is designed for promotional content, newsletters, and large-scale campaigns. It includes built-in compliance checks and asynchronous queue-based processing.

    POSThttps://mapi.simplysend.email/send

    Parameters

    toRequired
    string
    Email address of the recipient.
    fromRequired
    string
    The sender email address (must be a verified domain). e.g. `"Acme Newsletters" <[email protected]>` or `[email protected]`
    subjectRequired
    string
    The subject line for the email.
    htmlRequired
    string
    HTML body content. Include required template variables. See below compliance template below.
    subscriptionGroupId
    string

    The ID of the subscription group to route the email through.

    If provided, recipients must be actively subscribed to this group to receive the email. The system automatically filters out unsubscribed, bounced, or complaining addresses to safeguard compliance and deliverability.

    If omitted, the email is sent without group-level constraints, performing global contact status checks directly.

    text
    string
    The plain text version of the email for clients that don't support HTML.
    replyTo
    string
    Email address for replies. e.g. `[email protected]` or `"Acme Support" <[email protected]>`
    headers
    object

    Custom headers to include in the email. e.g. { "X-Entity-ID": "user_12345", "X-Feedback-ID": "marketing_abc" }

    Note: List-Unsubscribe is automatically injected by the system.

    templateVariables
    object

    Key-value pairs for dynamic content injection. e.g. { "first_name": "John", "discount_code": "WELCOME20" }

    These can be referenced in your HTML or text body using double curly braces, e.g. {{first_name}}.

    enableClickTracking
    boolean

    Wrap all links in the email with click-tracking redirect URLs so each click is recorded as an email_clicked event. Defaults to false.

    Optional custom link redirection tracking subdomain (typically [region]-m-link.yourdomain.com, e.g. us-m-link.yourdomain.com). If verified and configured, links in the email body will be wrapped using this custom subdomain. If not verified, click tracking will fall back to using the default Simply Send tracking domain. Custom link configuration is per domain.

    enableOpenTracking
    boolean

    Inject a 1x1 transparent tracking pixel to record Open events. Defaults to false.

    Enables open tracking for this email.

    campaignId
    string

    Associate the emails with a campaign. Create the campaign first using the SimplySend UI. Email analytics events (send, delivery, open, click, bounce, etc.) are recorded against the campaign Id.

    Idempotency-Key
    header string

    A unique UUID string used to make the request idempotent. If the system receives a duplicate request with the same key within a 24-hour window, it returns the cached original response without processing the email send again.

    Concurrent duplicate requests will return a 409 Conflict status.

    RequestPOST
    curl -X POST https://mapi.simplysend.email/send \
      -H "X-Api-Key: your_marketing_api_key" \
      -H "X-Id: your_account_id" \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: your_unique_uuid" \
      -d '{
        "to": "[email protected]",
        "from": "marketing@yourdomain.com",
        "subject": "Special Offer - 20% Off",
        "html": "<html><body><h1>20% Off!</h1><p>Visit our store.</p><br><br><p>{{company_address_html}}</p><p>{{unsubscribe_email_html}}</p><p>{{report_abuse_email_html}}</p></body></html>",
        "subscriptionGroupId": "list_abc123",
        "campaignId": "campaign_id123"
      }'
    {
      "success": true,
      "data": {
        "message": "Marketing email queued for processing",
        "jobId": "job_1234567890_abc",
        "status": "queued",
        "from": "marketing@yourdomain.com",
        "totalRecipients": 1,
        "recipients": [
          {
            "email": "[email protected]",
            "status": "queued",
            "role": "to"
          }
        ]
      }
    }
    Permission-Based Marketing

    All recipients MUST have valid consent records. If a recipient lacks valid consent or has unsubscribed, the API will reject the send request.

    Auto-Injected Headers

    List-Unsubscribe & List-Unsubscribe-Post

    The system automatically injects required RFC 8058 compliant headers (with one-click unsubscribe support) unless explicitly overridden in the request payload.

    Compliance Templates