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.
Authentication: Secret project API key. Resources are scoped to that project.
MCP: send_email
Request body: application/json
| Field | Required | Type / constraints |
|---|---|---|
to | Yes | union |
subject | No / conditional | string |
body | No / conditional | string |
template | No / conditional | string, uuid |
subscribed | No / conditional | boolean |
name | No / conditional | string |
from | No / conditional | union |
reply | No / conditional | string, email |
cc | No / conditional | union |
bcc | No / conditional | union |
text | No / conditional | string |
headers | No / conditional | object |
data | No / conditional | union |
attachments | No / conditional | array |
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.