Send email

Canonical request fields, permissions, and MCP coverage generated from the Sendbound API.

This page uses the same generated contract as the OpenAPI download and remote MCP server. Project API keys never grant access to another project's resources. See the inbound guide for receiving setup, webhook payloads, signatures, retries, and attachments.

Send HTML in body, plain text in text, or choose a saved template. Supply a subject unless the template supplies it. API acceptance is not proof of delivery. An optional Idempotency-Key header refuses duplicate requests with 409; it does not replay the previous response.

This reference is generated from the API’s routes and request validators. Download the OpenAPI specification. JSON bodies go directly to the API; MCP tools use a body object and a query object.

Generated request examples contain placeholders. Replace addresses, URLs, resource IDs and other placeholder values before sending. Conditional rules and refinements are enforced by the API at runtime.

POST/v1/send

send (v1)

Authentication: Secret project API key. Resources are scoped to that project.

MCP: send_email

Request body: application/json

FieldRequiredType / constraints
toYesunion
subjectNo / conditionalstring
bodyNo / conditionalstring
templateNo / conditionalstring, uuid
subscribedNo / conditionalboolean
nameNo / conditionalstring
fromNo / conditionalunion
replyNo / conditionalstring, email
ccNo / conditionalunion
bccNo / conditionalunion
textNo / conditionalstring
headersNo / conditionalobject
dataNo / conditionalunion
attachmentsNo / conditionalarray
Complete request JSON Schema
{
  "type": "object",
  "properties": {
    "to": {
      "anyOf": [
        {
          "type": "string",
          "format": "email"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "pattern": "^[^\\r\\n]*$"
            },
            "email": {
              "type": "string",
              "format": "email"
            }
          },
          "required": [
            "email"
          ],
          "additionalProperties": false
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "email"
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "pattern": "^[^\\r\\n]*$"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                },
                "required": [
                  "email"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      ]
    },
    "subject": {
      "type": "string",
      "minLength": 1,
      "maxLength": 998,
      "pattern": "^[^\\r\\n]*$"
    },
    "body": {
      "type": "string",
      "minLength": 1
    },
    "template": {
      "type": "string",
      "format": "uuid"
    },
    "subscribed": {
      "type": "boolean"
    },
    "name": {
      "type": "string"
    },
    "from": {
      "anyOf": [
        {
          "type": "string",
          "format": "email"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "pattern": "^[^\\r\\n]*$"
            },
            "email": {
              "type": "string",
              "format": "email"
            }
          },
          "required": [
            "email"
          ],
          "additionalProperties": false
        }
      ]
    },
    "reply": {
      "type": "string",
      "format": "email"
    },
    "cc": {
      "anyOf": [
        {
          "type": "string",
          "format": "email"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string",
              "format": "email"
            }
          },
          "required": [
            "email"
          ],
          "additionalProperties": false
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "email"
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                },
                "required": [
                  "email"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      ]
    },
    "bcc": {
      "anyOf": [
        {
          "type": "string",
          "format": "email"
        },
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "email": {
              "type": "string",
              "format": "email"
            }
          },
          "required": [
            "email"
          ],
          "additionalProperties": false
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "email"
              },
              {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "email": {
                    "type": "string",
                    "format": "email"
                  }
                },
                "required": [
                  "email"
                ],
                "additionalProperties": false
              }
            ]
          }
        }
      ]
    },
    "text": {
      "type": "string"
    },
    "headers": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "maxLength": 998,
        "pattern": "^[^\\r\\n]*$"
      }
    },
    "data": {
      "anyOf": [
        {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "enum": [
                "null"
              ],
              "nullable": true
            },
            {
              "type": "string",
              "format": "date-time"
            }
          ]
        },
        {
          "type": "array",
          "items": {}
        },
        {
          "type": "object",
          "additionalProperties": {}
        }
      ]
    },
    "attachments": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[^\\r\\n\"]+$"
          },
          "content": {
            "type": "string",
            "minLength": 1
          },
          "contentType": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "contentId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[^<>\\r\\n]+$"
          },
          "disposition": {
            "type": "string",
            "enum": [
              "attachment",
              "inline"
            ],
            "default": "attachment"
          }
        },
        "required": [
          "filename",
          "content",
          "contentType"
        ],
        "additionalProperties": false
      },
      "maxItems": 10
    }
  },
  "required": [
    "to"
  ],
  "additionalProperties": false
}

Project-scoped customer operation. Server enforces project ownership and additional cross-field validation. IDs are UUIDs, not prefixed placeholders.

Response codes: 200, 400, 401, 403, 404, 429, 500, 503. Errors do not imply that an uncertain send is safe to repeat. A successful sending response confirms API acceptance, not inbox delivery.

Select an endpoint
to see request details