AhaSend · Schema

CreateMessageRequest

CreateMessageRequest schema from AhaSend API

EmailTransactional EmailDeveloper ToolsSMTPWebhooks

Properties

Name Type Description
from object
recipients array This does not set the To header to multiple addresses, it sends a separate message for each recipient
reply_to object If provided, the reply-to header in headers array must not be provided
subject string Email subject line
text_content string Plain text content. Required if html_content is empty
html_content string HTML content. Required if text_content is empty
amp_content string AMP HTML content
attachments array File attachments
headers object Custom email headers. reply-to header cannot be provided if reply_to is provided, message-id will be ignored and automatically generated
substitutions object Global substitutions, recipient substitutions override global
tags array Tags for categorizing messages
sandbox boolean If true, the message will be sent to the sandbox environment
sandbox_result string The result of the sandbox send
tracking object Tracking settings for the message, overrides default account settings
retention object Retention settings for the message, overrides default account settings
schedule object Schedule for message delivery
View JSON Schema on GitHub

JSON Schema

openapi-v2-create-message-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/ahasend/refs/heads/main/json-schema/openapi-v2-create-message-request-schema.json",
  "title": "CreateMessageRequest",
  "description": "CreateMessageRequest schema from AhaSend API",
  "type": "object",
  "properties": {
    "from": {
      "$ref": "#/components/schemas/Address"
    },
    "recipients": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Recipient"
      },
      "minItems": 1,
      "description": "This does not set the To header to multiple addresses, it sends a separate message for each recipient",
      "example": [
        {
          "email": "[email protected]",
          "name": "Example Name",
          "substitutions": {}
        }
      ]
    },
    "reply_to": {
      "$ref": "#/components/schemas/Address",
      "description": "If provided, the reply-to header in headers array must not be provided"
    },
    "subject": {
      "type": "string",
      "description": "Email subject line",
      "example": "example_value"
    },
    "text_content": {
      "type": "string",
      "description": "Plain text content. Required if html_content is empty",
      "example": "example_value"
    },
    "html_content": {
      "type": "string",
      "description": "HTML content. Required if text_content is empty",
      "example": "example_value"
    },
    "amp_content": {
      "type": "string",
      "description": "AMP HTML content",
      "example": "example_value"
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Attachment"
      },
      "description": "File attachments",
      "example": [
        {
          "base64": true,
          "data": "example_value",
          "content_type": "example_value",
          "content_disposition": "example_value",
          "content_id": "500123"
        }
      ]
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Custom email headers. reply-to header cannot be provided if reply_to is provided, message-id will be ignored and automatically generated",
      "example": {}
    },
    "substitutions": {
      "type": "object",
      "additionalProperties": true,
      "description": "Global substitutions, recipient substitutions override global",
      "example": {}
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for categorizing messages",
      "example": [
        "example_value"
      ]
    },
    "sandbox": {
      "type": "boolean",
      "description": "If true, the message will be sent to the sandbox environment",
      "default": false,
      "example": true
    },
    "sandbox_result": {
      "type": "string",
      "enum": [
        "deliver",
        "bounce",
        "defer",
        "fail",
        "suppress"
      ],
      "description": "The result of the sandbox send",
      "example": "deliver"
    },
    "tracking": {
      "$ref": "#/components/schemas/Tracking",
      "description": "Tracking settings for the message, overrides default account settings"
    },
    "retention": {
      "$ref": "#/components/schemas/Retention",
      "description": "Retention settings for the message, overrides default account settings"
    },
    "schedule": {
      "$ref": "#/components/schemas/MessageSchedule",
      "description": "Schedule for message delivery"
    }
  },
  "required": [
    "from",
    "recipients",
    "subject"
  ],
  "example": {
    "from": {
      "email": "[email protected]",
      "name": "Example Corp"
    },
    "recipients": [
      {
        "email": "[email protected]",
        "name": "John Doe"
      }
    ],
    "subject": "Welcome to Example Corp",
    "html_content": "<h1>Welcome {{first_name}}!</h1>",
    "text_content": "Welcome {{first_name}}!",
    "substitutions": {
      "first_name": "John"
    }
  }
}