Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project.
to accepts email addresses or a single audience id — a topic (top_<ulid>) or segment (seg_<ulid>). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project’s per-second send limit.
Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint.
Requirements
Permission:emails:send.
Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header.
HTTP rate limit: 300 requests per 60 seconds per API key.
POST
/
v1
/
emails
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });const result = await signal.emails.sendEmail(/* params */);console.log(result);
from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.emails.sendEmail(# params)
print(result)
import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.emails().sendEmail(/* params */);
System.out.println(result);
import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.emails.sendEmail(/* params */)
println(result)
require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.emails.sendEmail(# params)
puts result
use ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->emails->sendEmail(/* params */);
var_dump($result);
use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.emails.sendEmail(/* params */).await?;
println!("{:?}", result);
using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Emails.SendEmailAsync(/* params */);
Console.WriteLine(result);
Project-bound Apollo Signal API key. Keys begin with ap_signal_ and must carry the permission shown on the operation.
Body
application/json
Email message including sender, recipients (addresses or a topic / segment id), subject, body content, and optional scheduling and tracking configuration.
Email content and delivery options. from, to, and subject are required, and at least one of html or text must be supplied.
Recipient addresses, or one topic (top_…) or segment (seg_…) identifier. A single string is accepted. Audience sends are capped at 50 resolved recipients and cannot include cc or bcc.
Base64-encoded attachments. The decoded total must fit the configured attachment limit, and the message may contain at most 500 MIME parts including bodies.
Per-message overrides for the project's tracking settings.
Show child attributes
Response
Email accepted for delivery. The id can be used to retrieve status or cancel. For a recipient fan-out, messages lists one entry per recipient message; each entry can be tracked independently.
import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.emails().sendEmail(/* params */);
System.out.println(result);
import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.emails.sendEmail(/* params */)
println(result)
require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.emails.sendEmail(# params)
puts result
use ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->emails->sendEmail(/* params */);
var_dump($result);
use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.emails.sendEmail(/* params */).await?;
println!("{:?}", result);
using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Emails.SendEmailAsync(/* params */);
Console.WriteLine(result);
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"Apollo Deploy","description":"Documentation for Apollo Deploy and Apollo Signal — release intelligence and transactional email for developers.","colors":{"primary":"#171717","light":"#e8e4d9","dark":"#171717"},"logo":{"light":"https://mintcdn.com/apollodeploy/2tkCO7PoXSgjQkrC/logo/light.svg?fit=max\u0026auto=format\u0026n=2tkCO7PoXSgjQkrC\u0026q=85\u0026s=e4fc18ba64dc074898dfde7f40c3ad00","dark":"https://mintcdn.com/apollodeploy/2tkCO7PoXSgjQkrC/logo/dark.svg?fit=max\u0026auto=format\u0026n=2tkCO7PoXSgjQkrC\u0026q=85\u0026s=35bcfcc36dd51b5bd5e0893e68d06319","href":"https://apollodeploy.com"},"favicon":{"light":"https://mintcdn.com/apollodeploy/2tkCO7PoXSgjQkrC/favicons/signal/favicon.png?fit=max\u0026auto=format\u0026n=2tkCO7PoXSgjQkrC\u0026q=85\u0026s=1d5463e7d5e2ca968b35adc601d13a07","dark":"https://mintcdn.com/apollodeploy/2tkCO7PoXSgjQkrC/favicons/signal/favicon-dark.png?fit=max\u0026auto=format\u0026n=2tkCO7PoXSgjQkrC\u0026q=85\u0026s=2156d9f0f5a581d144fe2a23ff1f29a1"},"appearance":{"default":"system","strict":false},"background":{"color":{"light":"#ffffff","dark":"#000000"}},"navbar":{"primary":{"type":"button","label":"Get started","href":"https://auth.apollodeploy.com/register"}},"fonts":{"family":"Geist"},"styling":{"eyebrows":"section","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"global":{"anchors":[{"anchor":"Marketing site","icon":"house","href":"https://apollodeploy.com"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@apollodeploy.com"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"apollodeploy","hasAudioNarration":false,"actualSubdomain":"apollodeploy","customDomains":["docs.apollodeploy.com"],"gitSource":{"type":"github","owner":"apollo-deploy","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"12f1d3a2-e8df-400b-a958-533197edc232","liveDeploymentHistoryId":"6a94885103b74ae883b1c027","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a94885103b74ae883b1c027"},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a94885103b74ae883b1c027","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Apollo Signal","count":179},{"language":"default","tag":"API Reference","count":86},{"language":"default","tag":"Documentation","count":58},{"language":"default","tag":"Knowledge base","count":35},{"language":"default","tag":"Getting started","count":26},{"language":"default","tag":"Send with","count":20},{"language":"default","tag":"Contacts","count":18},{"language":"default","tag":"Emails","count":15},{"language":"default","tag":"Webhooks","count":14},{"language":"default","tag":"Domains and DNS","count":10}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/emails/send-email","slug":"/api-reference/emails/send-email","pageMetadata":{"title":"Send email","description":"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The `from` address must belong to a verified sending domain in the project.\n\n`to` accepts email addresses or a single audience id — a topic (`top_\u003culid>`) or segment (`seg_\u003culid>`). Multiple direct addresses without `cc` or `bcc` fan out to one message per address, and the response reports the first accepted message plus a `messages` entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple `to` addresses are combined with `cc` or `bcc`, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with `cc` or `bcc`, and at most 50 recipients fan out per request — the fan-out is paced to the project's per-second send limit.\n\nEmails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint.\n\n### Requirements\n\n- **Permission:** `emails:send`.\n- **Safe retries:** place `idempotencyKey` in the JSON body; Apollo Signal does not use an idempotency header.\n- **HTTP rate limit:** 300 requests per 60 seconds per API key.","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails","href":"/api-reference/emails/send-email","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n h3: \"h3\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The \", _jsx(_components.code, {\n children: \"from\"\n }), \" address must belong to a verified sending domain in the project.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"to\"\n }), \" accepts email addresses or a single audience id — a topic (\", _jsx(_components.code, {\n children: \"top_\u003culid>\"\n }), \") or segment (\", _jsx(_components.code, {\n children: \"seg_\u003culid>\"\n }), \"). Multiple direct addresses without \", _jsx(_components.code, {\n children: \"cc\"\n }), \" or \", _jsx(_components.code, {\n children: \"bcc\"\n }), \" fan out to one message per address, and the response reports the first accepted message plus a \", _jsx(_components.code, {\n children: \"messages\"\n }), \" entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple \", _jsx(_components.code, {\n children: \"to\"\n }), \" addresses are combined with \", _jsx(_components.code, {\n children: \"cc\"\n }), \" or \", _jsx(_components.code, {\n children: \"bcc\"\n }), \", SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with \", _jsx(_components.code, {\n children: \"cc\"\n }), \" or \", _jsx(_components.code, {\n children: \"bcc\"\n }), \", and at most 50 recipients fan out per request — the fan-out is paced to the project’s per-second send limit.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint.\"\n }), \"\\n\", _jsx(_components.h3, {\n children: \"Requirements\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Permission:\"\n }), \" \", _jsx(_components.code, {\n children: \"emails:send\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"Safe retries:\"\n }), \" place \", _jsx(_components.code, {\n children: \"idempotencyKey\"\n }), \" in the JSON body; Apollo Signal does not use an idempotency header.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.strong, {\n children: \"HTTP rate limit:\"\n }), \" 300 requests per 60 seconds per API key.\"]\n }), \"\\n\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Send email","description":"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The `from` address must belong to a verified sending domain in the project.\n\n`to` accepts email addresses or a single audience id — a topic (`top_\u003culid>`) or segment (`seg_\u003culid>`). Multiple direct addresses without `cc` or `bcc` fan out to one message per address, and the response reports the first accepted message plus a `messages` entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple `to` addresses are combined with `cc` or `bcc`, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with `cc` or `bcc`, and at most 50 recipients fan out per request — the fan-out is paced to the project's per-second send limit.\n\nEmails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint.\n\n### Requirements\n\n- **Permission:** `emails:send`.\n- **Safe retries:** place `idempotencyKey` in the JSON body; Apollo Signal does not use an idempotency header.\n- **HTTP rate limit:** 300 requests per 60 seconds per API key.","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails","href":"/api-reference/emails/send-email","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/apollodeploy/16ba9f8ee6643672/favicon-runtime.js"],"openApiReferenceData":{"operation":{"tags":["Emails"],"summary":"Send email","description":"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The `from` address must belong to a verified sending domain in the project.\n\n`to` accepts email addresses or a single audience id — a topic (`top_\u003culid>`) or segment (`seg_\u003culid>`). Multiple direct addresses without `cc` or `bcc` fan out to one message per address, and the response reports the first accepted message plus a `messages` entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple `to` addresses are combined with `cc` or `bcc`, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with `cc` or `bcc`, and at most 50 recipients fan out per request — the fan-out is paced to the project's per-second send limit.\n\nEmails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint.\n\n### Requirements\n\n- **Permission:** `emails:send`.\n- **Safe retries:** place `idempotencyKey` in the JSON body; Apollo Signal does not use an idempotency header.\n- **HTTP rate limit:** 300 requests per 60 seconds per API key.","parameters":[],"requestBody":"2b3c2bd7-9a16-4d0b-aa93-34ecd0fb5700","responses":{"201":"92494296-6055-449c-8855-0e612b6a8ae4","400":"8766d6b5-a4c1-4b7d-a388-e5d3cd239f92","401":"d4d83518-8fb3-4448-a444-a28aa710e38b","403":"32d3703e-ae76-4549-8d0c-c04677810009","413":"ee4235af-c2e3-4dc8-93a0-0c879b46dc0d","422":"87584085-05e6-40d5-9f18-dc82ce570551","429":"9e3a63b6-2957-4c29-a45c-af8c63e42f71"},"deprecated":false,"x-codeSamples":[{"lang":"TypeScript","label":"TypeScript","source":"import { createApolloSignalApiClient } from \"@apollo-deploy/signal-sdk\";\n\nconst signal = createApolloSignalApiClient({ apiKey: \"ap_signal_...\" });\n\nconst result = await signal.emails.sendEmail(/* params */);\n\nconsole.log(result);"},{"lang":"Python","label":"Python","source":"from apollo_signal import SignalClient\n\nsignal = SignalClient(api_key=\"ap_signal_...\")\n\nresult = signal.emails.sendEmail(# params)\n\nprint(result)"},{"lang":"Go","label":"Go","source":"import signal \"github.com/apollo-deploy/signal-sdk-go\"\n\nclient := signal.NewClient(\"ap_signal_...\")\n\nresult, err := client.Emails.SendEmail(context.Background() /* params */)\nif err != nil {\n log.Fatal(err)\n}\nfmt.Println(result)"},{"lang":"Java","label":"Java","source":"import com.apollodeploy.signal.SignalClient;\n\nSignalClient signal = new SignalClient(\"ap_signal_...\");\n\nvar result = signal.emails().sendEmail(/* params */);\nSystem.out.println(result);"},{"lang":"Kotlin","label":"Kotlin","source":"import com.apollodeploy.signal.SignalClient\n\nval signal = SignalClient(\"ap_signal_...\")\n\nval result = signal.emails.sendEmail(/* params */)\nprintln(result)"},{"lang":"Ruby","label":"Ruby","source":"require \"apollo_signal\"\n\nsignal = ApolloSignal::Client.new(api_key: \"ap_signal_...\")\n\nresult = signal.emails.sendEmail(# params)\nputs result"},{"lang":"PHP","label":"PHP","source":"use ApolloSignal\\SignalClient;\n\n$signal = new SignalClient(\"ap_signal_...\");\n\n$result = $signal->emails->sendEmail(/* params */);\nvar_dump($result);"},{"lang":"Rust","label":"Rust","source":"use apollo_signal::SignalClient;\n\nlet signal = SignalClient::new(\"ap_signal_...\");\n\nlet result = signal.emails.sendEmail(/* params */).await?;\nprintln!(\"{:?}\", result);"},{"lang":"C#","label":".NET","source":"using ApolloSignal;\n\nvar signal = new SignalClient(\"ap_signal_...\");\n\nvar result = await signal.Emails.SendEmailAsync(/* params */);\nConsole.WriteLine(result);"}],"operationId":"sendEmail","security":["58c0ca8c-a689-440e-8294-e8dff06998a7"],"x-required-permissions":["emails:send"],"x-rate-limit":{"requests":300,"seconds":60,"policy":"email-send"},"method":"post","type":"path","servers":["f6001a60-13af-4ce2-b1d4-02de70ac9cc2"],"path":"/v1/emails","baseUrlOptions":["https://api.signal.apollodeploy.com"],"title":"Send email","codeSamples":[{"label":"TypeScript","lang":"TypeScript","source":"import { createApolloSignalApiClient } from \"@apollo-deploy/signal-sdk\";\n\nconst signal = createApolloSignalApiClient({ apiKey: \"ap_signal_...\" });\n\nconst result = await signal.emails.sendEmail(/* params */);\n\nconsole.log(result);"},{"label":"Python","lang":"Python","source":"from apollo_signal import SignalClient\n\nsignal = SignalClient(api_key=\"ap_signal_...\")\n\nresult = signal.emails.sendEmail(# params)\n\nprint(result)"},{"label":"Go","lang":"Go","source":"import signal \"github.com/apollo-deploy/signal-sdk-go\"\n\nclient := signal.NewClient(\"ap_signal_...\")\n\nresult, err := client.Emails.SendEmail(context.Background() /* params */)\nif err != nil {\n log.Fatal(err)\n}\nfmt.Println(result)"},{"label":"Java","lang":"Java","source":"import com.apollodeploy.signal.SignalClient;\n\nSignalClient signal = new SignalClient(\"ap_signal_...\");\n\nvar result = signal.emails().sendEmail(/* params */);\nSystem.out.println(result);"},{"label":"Kotlin","lang":"Kotlin","source":"import com.apollodeploy.signal.SignalClient\n\nval signal = SignalClient(\"ap_signal_...\")\n\nval result = signal.emails.sendEmail(/* params */)\nprintln(result)"},{"label":"Ruby","lang":"Ruby","source":"require \"apollo_signal\"\n\nsignal = ApolloSignal::Client.new(api_key: \"ap_signal_...\")\n\nresult = signal.emails.sendEmail(# params)\nputs result"},{"label":"PHP","lang":"PHP","source":"use ApolloSignal\\SignalClient;\n\n$signal = new SignalClient(\"ap_signal_...\");\n\n$result = $signal->emails->sendEmail(/* params */);\nvar_dump($result);"},{"label":"Rust","lang":"Rust","source":"use apollo_signal::SignalClient;\n\nlet signal = SignalClient::new(\"ap_signal_...\");\n\nlet result = signal.emails.sendEmail(/* params */).await?;\nprintln!(\"{:?}\", result);"},{"label":".NET","lang":"C#","source":"using ApolloSignal;\n\nvar signal = new SignalClient(\"ap_signal_...\");\n\nvar result = await signal.Emails.SendEmailAsync(/* params */);\nConsole.WriteLine(result);"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"Email message including sender, recipients (addresses or a topic / segment id), subject, body content, and optional scheduling and tracking configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","title":"String","description":"Sender address. Its domain must be verified in the authenticated project.","isRequired":true,"uniqueKey":"from","typeLabel":"string"},"subject":{"type":"string","title":"String","description":"Email subject. The request is rejected when this field is omitted.","isRequired":true,"uniqueKey":"subject","typeLabel":"string"},"to":{"type":"array","items":{"type":"string","title":"String","uniqueKey":"to.items.[INDEX]","typeLabel":"string"},"title":"List\u003cString>","description":"Recipient addresses, or one topic (`top_…`) or segment (`seg_…`) identifier. A single string is accepted. Audience sends are capped at 50 resolved recipients and cannot include `cc` or `bcc`.","isRequired":true,"uniqueKey":"to","typeLabel":"string[]"},"attachments":{"type":"array","items":{"type":"object","properties":{"content":{"type":"string","title":"String","description":"Valid base64-encoded file content.","isRequired":true,"uniqueKey":"attachments.items.[INDEX].content","typeLabel":"string"},"contentType":{"type":"string","title":"String","description":"Non-empty MIME type for the attachment.","isRequired":true,"uniqueKey":"attachments.items.[INDEX].contentType","typeLabel":"string"},"filename":{"type":"string","title":"String","description":"File name without path separators or control characters.","isRequired":true,"uniqueKey":"attachments.items.[INDEX].filename","typeLabel":"string"},"contentId":{"type":"string","title":"String","description":"Optional Content-ID used to reference an inline attachment from HTML.","uniqueKey":"attachments.items.[INDEX].contentId","typeLabel":"string"},"disposition":{"type":"string","title":"String","description":"MIME disposition: `attachment` (default) or `inline`.","enum":["attachment","inline"],"default":"attachment","uniqueKey":"attachments.items.[INDEX].disposition","typeLabel":"enum\u003cstring>"}},"required":["filename","content","contentType"],"title":"AttachmentRequest","description":"One MIME attachment encoded inside the JSON request.","uniqueKey":"attachments.items.[INDEX]","typeLabel":"AttachmentRequest · object"},"title":"List\u003cAttachmentRequest>","description":"Base64-encoded attachments. The decoded total must fit the configured attachment limit, and the message may contain at most 500 MIME parts including bodies.","uniqueKey":"attachments","typeLabel":"AttachmentRequest · object[]"},"bcc":{"type":"array","items":{"type":"string","title":"String","uniqueKey":"bcc.items.[INDEX]","typeLabel":"string"},"title":"List\u003cString>","description":"Blind-carbon-copy recipient addresses. These count toward the project's per-message recipient limit.","uniqueKey":"bcc","typeLabel":"string[]"},"cc":{"type":"array","items":{"type":"string","title":"String","uniqueKey":"cc.items.[INDEX]","typeLabel":"string"},"title":"List\u003cString>","description":"Carbon-copy recipient addresses. These count toward the project's per-message recipient limit.","uniqueKey":"cc","typeLabel":"string[]"},"deliveryWindow":{"type":"object","properties":{"end":{"type":"string","title":"String","description":"Inclusive ISO 8601 end of the delivery window.","format":"date-time","isRequired":true,"uniqueKey":"deliveryWindow.end","typeLabel":"string\u003cdate-time>"},"start":{"type":"string","title":"String","description":"Inclusive ISO 8601 start of the delivery window.","format":"date-time","isRequired":true,"uniqueKey":"deliveryWindow.start","typeLabel":"string\u003cdate-time>"}},"required":["end","start"],"title":"DeliveryWindowRequest","description":"Allowed time window for an `optimal` non-transactional send. Required when optimization may delay the message.","uniqueKey":"deliveryWindow","typeLabel":"DeliveryWindowRequest · object"},"html":{"type":"string","title":"String","description":"HTML body. Supply `html`, `text`, or both.","uniqueKey":"html","typeLabel":"string"},"idempotencyKey":{"type":"string","title":"String","description":"Project-scoped key that returns the original send result when the request is retried.","uniqueKey":"idempotencyKey","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":{"type":"string","title":"String","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"title":"Map\u003cString,String>","description":"Caller-defined string metadata associated with the send.","uniqueKey":"metadata","typeLabel":"Map\u003cString,String> · object"},"replyTo":{"type":"string","title":"String","description":"Address that receives replies instead of the sender address.","uniqueKey":"replyTo","typeLabel":"string"},"scheduledAt":{"type":"string","title":"String","description":"ISO 8601 send time or `optimal`. Explicit times must be 30 seconds to 30 days in the future; omit to send immediately.","uniqueKey":"scheduledAt","typeLabel":"string"},"sendTimeCategory":{"type":"string","title":"String","description":"Delivery category. `transactional` messages are never delayed by optimal-time scheduling. Defaults to `transactional`.","enum":["transactional","marketing","notification","digest"],"default":"transactional","uniqueKey":"sendTimeCategory","typeLabel":"enum\u003cstring>"},"tags":{"type":"object","additionalProperties":{"type":"string","title":"String","uniqueKey":"tags.additionalProperties","typeLabel":"string"},"title":"Map\u003cString,String>","description":"Caller-defined string labels used to categorize the email.","uniqueKey":"tags","typeLabel":"Map\u003cString,String> · object"},"testMode":{"type":"boolean","title":"Boolean","description":"Exercises the send flow without delivering to real recipients. Defaults to `false`.","default":false,"uniqueKey":"testMode","typeLabel":"boolean"},"text":{"type":"string","title":"String","description":"Plain-text body. Supply `html`, `text`, or both.","uniqueKey":"text","typeLabel":"string"},"trackingSettings":{"type":"object","properties":{"clickTracking":{"type":"boolean","title":"Boolean","description":"Enable or disable tracked-link rewriting for this message.","uniqueKey":"trackingSettings.clickTracking","typeLabel":"boolean"},"openTracking":{"type":"boolean","title":"Boolean","description":"Enable or disable open-pixel tracking for this message.","uniqueKey":"trackingSettings.openTracking","typeLabel":"boolean"},"readEngagement":{"type":"boolean","title":"Boolean","description":"Enable or disable read-engagement tracking for this message.","uniqueKey":"trackingSettings.readEngagement","typeLabel":"boolean"},"unsubscribeTracking":{"type":"boolean","title":"Boolean","description":"Enable or disable unsubscribe-link handling for this message.","uniqueKey":"trackingSettings.unsubscribeTracking","typeLabel":"boolean"}},"title":"TrackingSettingsRequest","description":"Per-message overrides for the project's tracking settings.","uniqueKey":"trackingSettings","typeLabel":"TrackingSettingsRequest · object"}},"required":["from","to","subject"],"title":"SendEmailRequest","description":"Email content and delivery options. `from`, `to`, and `subject` are required, and at least one of `html` or `text` must be supplied.","uniqueKey":"","typeLabel":"SendEmailRequest · object"},"examples":{"Example":{"title":"Example","value":{"from":"\u003cstring>","subject":"\u003cstring>","to":["\u003cstring>"],"attachments":[{"content":"\u003cstring>","contentType":"\u003cstring>","filename":"\u003cstring>","contentId":"\u003cstring>","disposition":"attachment"}],"bcc":["\u003cstring>"],"cc":["\u003cstring>"],"html":"\u003cstring>","idempotencyKey":"\u003cstring>","metadata":{},"replyTo":"\u003cstring>","scheduledAt":"\u003cstring>","sendTimeCategory":"transactional","tags":{},"testMode":false,"text":"\u003cstring>","trackingSettings":{"clickTracking":true,"openTracking":true,"readEngagement":true,"unsubscribeTracking":true}}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"92494296-6055-449c-8855-0e612b6a8ae4":{"description":"Email accepted for delivery. The `id` can be used to retrieve status or cancel. For a recipient fan-out, `messages` lists one entry per recipient message; each entry can be tracked independently.","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"createdAt":{"type":"string","title":"String","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"id":{"type":"string","title":"String","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"type":"string","title":"String","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"audienceId":{"type":"string","title":"String","uniqueKey":"audienceId","typeLabel":"string"},"messageId":{"type":"string","title":"String","uniqueKey":"messageId","typeLabel":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"index":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"messages.items.[INDEX].index","typeLabel":"integer\u003cint32>"},"createdAt":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].createdAt","typeLabel":"string"},"error":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].error","typeLabel":"string"},"id":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].id","typeLabel":"string"},"messageId":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].messageId","typeLabel":"string"},"scheduledAt":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].scheduledAt","typeLabel":"string"},"status":{"type":"string","title":"String","uniqueKey":"messages.items.[INDEX].status","typeLabel":"string"}},"required":["index"],"title":"BatchSendItemResponse","uniqueKey":"messages.items.[INDEX]","typeLabel":"BatchSendItemResponse · object"},"title":"List\u003cBatchSendItemResponse>","uniqueKey":"messages","typeLabel":"BatchSendItemResponse · object[]"},"scheduledAt":{"type":"string","title":"String","uniqueKey":"scheduledAt","typeLabel":"string"}},"required":["createdAt","id","status"],"title":"SendEmailResponse","uniqueKey":"","typeLabel":"SendEmailResponse · object"},"examples":{"Example":{"title":"Example","value":{"createdAt":"\u003cstring>","id":"\u003cstring>","status":"\u003cstring>","audienceId":"\u003cstring>","messageId":"\u003cstring>","messages":[{"index":123,"createdAt":"\u003cstring>","error":"\u003cstring>","id":"\u003cstring>","messageId":"\u003cstring>","scheduledAt":"\u003cstring>","status":"\u003cstring>"}],"scheduledAt":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"8766d6b5-a4c1-4b7d-a388-e5d3cd239f92":{"description":"Validation error — missing required fields, invalid address format, body not provided, or an audience combined with other recipients, `cc`, or `bcc`.","headers":{},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"d4d83518-8fb3-4448-a444-a28aa710e38b":{"description":"Missing or invalid API key.","headers":{},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"32d3703e-ae76-4549-8d0c-c04677810009":{"description":"The credential lacks the required permission or cannot access this project.","headers":{},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"ee4235af-c2e3-4dc8-93a0-0c879b46dc0d":{"description":"The referenced topic or segment has more than the 50-recipient limit for one send request.","headers":{},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"87584085-05e6-40d5-9f18-dc82ce570551":{"description":"The `from` domain is not verified, the project is suspended, or the referenced topic/segment has no recipients that could be sent to.","headers":{},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"9e3a63b6-2957-4c29-a45c-af8c63e42f71":{"description":"The endpoint rate limit was exceeded. Wait for the `Retry-After` interval before retrying.","headers":{"Retry-After":{"description":"Whole seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/problem+json":{"schema":{"type":"object","properties":{"code":{"type":"string","title":"ErrorCode","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","format":"int32","title":"Int","isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"},"title":{"type":"string","title":"String","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"type":{"type":"string","title":"ProblemType","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","title":"String","uniqueKey":"detail","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"detail":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].detail","typeLabel":"string"},"pointer":{"type":"string","title":"String","isRequired":true,"uniqueKey":"errors.items.[INDEX].pointer","typeLabel":"string"}},"required":["detail","pointer"],"title":"FieldProblem","uniqueKey":"errors.items.[INDEX]","typeLabel":"FieldProblem · object"},"title":"List\u003cFieldProblem>","uniqueKey":"errors","typeLabel":"FieldProblem · object[]"},"instance":{"type":"string","title":"ProblemInstance","uniqueKey":"instance","typeLabel":"string"},"requestId":{"type":"string","title":"String","uniqueKey":"requestId","typeLabel":"string"}},"required":["code","status","title","type"],"title":"ApiProblem","uniqueKey":"","typeLabel":"ApiProblem · object"},"examples":{"Example":{"title":"Example","value":{"code":"\u003cstring>","status":123,"title":"\u003cstring>","type":"\u003cstring>","detail":"\u003cstring>","errors":[{"detail":"\u003cstring>","pointer":"\u003cstring>"}],"instance":"\u003cstring>","requestId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"58c0ca8c-a689-440e-8294-e8dff06998a7":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Project-bound Apollo Signal API key. Keys begin with `ap_signal_` and must carry the permission shown on the operation.","scopes":[]}}},"servers":{"f6001a60-13af-4ce2-b1d4-02de70ac9cc2":{"url":"https://api.signal.apollodeploy.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Project-bound Apollo Signal API key. Keys begin with `ap_signal_` and must carry the permission shown on the operation.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Project-bound Apollo Signal API key. Keys begin with `ap_signal_` and must carry the permission shown on the operation.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"signal/api-reference/openapi.json"},"subdomain":"apollodeploy","siteName":"Apollo Deploy","title":"Send email - Apollo Deploy","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-26T09:04:51.083Z","originalFileLocation":"api-reference/emails/send-email.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project. to accepts email addresses or a single audience id — a topic (top_) or segment (seg_). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project\u0026#x27;s per-second send limit. Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint. ### Requirements - Permission: emails:send. - Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header. - HTTP rate limit: 300 requests per 60 seconds per API key.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Apollo Deploy\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send email - Apollo Deploy\">\u003cmeta data-mint-head property=\"og:description\" content=\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project. to accepts email addresses or a single audience id — a topic (top_) or segment (seg_). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project\u0026#x27;s per-second send limit. Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint. ### Requirements - Permission: emails:send. - Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header. - HTTP rate limit: 300 requests per 60 seconds per API key.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Apollo Deploy\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.apollodeploy.com/api-reference/emails/send-email\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://apollodeploy.mintlify.app/_mintlify/api/og/v2?division=Emails\u0026amp;title=Send+email\u0026amp;description=Sends+a+transactional+email+immediately+or+at+a+scheduled+time.+Provide+the+HTML+or+plain-text+body+inline.+The+%60from%60+address+must+belong+to+a+verified+sending\u0026amp;theme=3e94fd2a68a715f99c52a168\u0026amp;signature=bee8542960be90b800fcb13f8277bf5a46670727d9631f7830223a8a79109a67\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Send email - Apollo Deploy\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project. to accepts email addresses or a single audience id — a topic (top_) or segment (seg_). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project\u0026#x27;s per-second send limit. Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint. ### Requirements - Permission: emails:send. - Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header. - HTTP rate limit: 300 requests per 60 seconds per API key.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://apollodeploy.mintlify.app/_mintlify/api/og/v2?division=Emails\u0026amp;title=Send+email\u0026amp;description=Sends+a+transactional+email+immediately+or+at+a+scheduled+time.+Provide+the+HTML+or+plain-text+body+inline.+The+%60from%60+address+must+belong+to+a+verified+sending\u0026amp;theme=3e94fd2a68a715f99c52a168\u0026amp;signature=bee8542960be90b800fcb13f8277bf5a46670727d9631f7830223a8a79109a67\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/apollodeploy/q4MGu_nnSpzYfDXv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Apollo Deploy\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#171717\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.apollodeploy.com/api-reference/emails/send-email\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/emails/send-email.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.apollodeploy.com/#organization\",\"name\":\"Apollo Deploy\",\"url\":\"https://docs.apollodeploy.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/apollodeploy/2tkCO7PoXSgjQkrC/logo/light.svg?fit=max\u0026auto=format\u0026n=2tkCO7PoXSgjQkrC\u0026q=85\u0026s=e4fc18ba64dc074898dfde7f40c3ad00\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.apollodeploy.com#website\",\"name\":\"Apollo Deploy\",\"url\":\"https://docs.apollodeploy.com\",\"publisher\":{\"@id\":\"https://docs.apollodeploy.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.apollodeploy.com/api-reference/emails/send-email#webpage\",\"url\":\"https://docs.apollodeploy.com/api-reference/emails/send-email\",\"name\":\"Send email\",\"description\":\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project. to accepts email addresses or a single audience id — a topic (top_) or segment (seg_). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project's per-second send limit. Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint. ### Requirements - Permission: emails:send. - Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header. - HTTP rate limit: 300 requests per 60 seconds per API key.\",\"dateModified\":\"2026-08-26T09:04:51.083Z\",\"isPartOf\":{\"@id\":\"https://docs.apollodeploy.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.apollodeploy.com/api-reference/emails/send-email#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.apollodeploy.com/api-reference/emails/send-email#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Apollo Deploy\",\"item\":\"https://docs.apollodeploy.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Send email\",\"item\":\"https://docs.apollodeploy.com/api-reference/emails/send-email\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.apollodeploy.com/api-reference/emails/send-email#apireference\",\"headline\":\"Send email\",\"name\":\"Send email\",\"description\":\"Sends a transactional email immediately or at a scheduled time. Provide the HTML or plain-text body inline. The from address must belong to a verified sending domain in the project. to accepts email addresses or a single audience id — a topic (top_) or segment (seg_). Multiple direct addresses without cc or bcc fan out to one message per address, and the response reports the first accepted message plus a messages entry per recipient. Each fan-out message has its own delivery status, tracking, and unsubscribe links. If multiple to addresses are combined with cc or bcc, SES receives one shared message and its status is aggregate. An audience must be the only recipient and cannot be combined with cc or bcc, and at most 50 recipients fan out per request — the fan-out is paced to the project's per-second send limit. Emails are delivered through Amazon SES. Delivery events are available through webhooks and the email timeline endpoint. ### Requirements - Permission: emails:send. - Safe retries: place idempotencyKey in the JSON body; Apollo Signal does not use an idempotency header. - HTTP rate limit: 300 requests per 60 seconds per API key.\",\"url\":\"https://docs.apollodeploy.com/api-reference/emails/send-email\",\"mainEntityOfPage\":{\"@id\":\"https://docs.apollodeploy.com/api-reference/emails/send-email#webpage\"},\"dateModified\":\"2026-08-26T09:04:51.083Z\",\"publisher\":{\"@id\":\"https://docs.apollodeploy.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.apollodeploy.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Apollo Deploy\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Apollo Deploy","nav":{"global":{"anchors":[{"anchor":"Marketing site","icon":"house","href":"https://apollodeploy.com"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@apollodeploy.com"}]},"products":[{"product":"Apollo Deploy","icon":"rocket","description":"Release intelligence control plane","pages":[{"title":"Apollo Deploy","href":"/deploy"}]},{"product":"Packages","icon":"box","description":"Reusable utilities and components","pages":[{"title":"Packages","href":"/packages/time"}]},{"product":"Apollo Signal","icon":"https://mintlify.s3.us-west-1.amazonaws.com/apollodeploy/logo/signal/icon.svg","description":"Transactional email for developers","tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/signal"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/signal/api-reference/introduction"},{"title":"Authentication","href":"/signal/api-reference/authentication"},{"title":"Errors","href":"/signal/api-reference/errors"},{"title":"Pagination","href":"/signal/api-reference/pagination"},{"title":"Idempotency","href":"/signal/api-reference/idempotency"},{"title":"Email event streams","href":"/signal/api-reference/event-streams"},{"title":"Rate limits and sending quotas","description":"Handle endpoint buckets and plan-level email quotas","href":"/signal/api-reference/rate-limit"}]},{"group":"Emails","pages":[{"title":"Send email","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails","href":"/api-reference/emails/send-email"},{"title":"Get email","description":"Retrieves the full details of a previously sent email by its ID, including the message headers, delivery status, and recipient information.\n\n### Requirements\n\n- **Permission:** `emails:read`.","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/emails/{emailId}","href":"/api-reference/emails/get-email"},{"title":"Batch send emails","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails/batch","href":"/api-reference/emails/batch-send-emails"},{"title":"Cancel email","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/emails/{emailId}","href":"/api-reference/emails/cancel-email"},{"title":"Bulk cancel scheduled emails","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/emails","href":"/api-reference/emails/bulk-cancel-scheduled-emails"},{"title":"Issue stream token","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails/{projectId}/stream/token","href":"/api-reference/emails/issue-stream-token"},{"title":"Stream email events","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/emails/stream","href":"/api-reference/emails/stream-email-events"},{"title":"Validate links in HTML","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/emails/validate","href":"/api-reference/emails/validate-links-in-html"}]},{"group":"Metrics","pages":[{"title":"Get topic engagement analytics","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/topics/{id}","href":"/api-reference/metrics/get-topic-engagement-analytics"},{"title":"Get email performance","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/emails/{id}","href":"/api-reference/metrics/get-email-performance"},{"title":"Get email read engagement","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/emails/{id}/engagement","href":"/api-reference/metrics/get-email-read-engagement"},{"title":"Get project metrics summary","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/summary","href":"/api-reference/metrics/get-project-metrics-summary"},{"title":"Get project metrics timeline","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/timeline","href":"/api-reference/metrics/get-project-metrics-timeline"},{"title":"Get deliverability advisor","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/metrics/advisor","href":"/api-reference/metrics/get-deliverability-advisor"}]},{"group":"Projects and email logs","pages":[{"title":"List projects","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects","href":"/api-reference/projects/list-projects"},{"title":"Get project","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}","href":"/api-reference/projects/get-project"},{"title":"Update project","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}","href":"/api-reference/projects/update-project"},{"title":"List emails","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/emails","href":"/api-reference/projects/list-emails"},{"title":"Get email","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/emails/{emailId}","href":"/api-reference/projects/get-email"},{"title":"Get email timeline","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/emails/{emailId}/events","href":"/api-reference/projects/get-email-timeline"}]},{"group":"Sending domains","pages":[{"title":"List domains","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/domains","href":"/api-reference/sending-domains/list-domains"},{"title":"Get domain","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/domains/{domainId}","href":"/api-reference/sending-domains/get-domain"},{"title":"Create domain","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/domains","href":"/api-reference/sending-domains/create-domain"},{"title":"Verify domain","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/domains/{domainId}/verify","href":"/api-reference/sending-domains/verify-domain"},{"title":"Delete domain","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/domains/{domainId}","href":"/api-reference/sending-domains/delete-domain"},{"title":"Verify BIMI","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/domains/{domainId}/bimi/verify","href":"/api-reference/sending-domains/verify-bimi"},{"title":"Update BIMI","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/domains/{domainId}/bimi","href":"/api-reference/sending-domains/update-bimi"}]},{"group":"Contacts","pages":[{"title":"List contacts","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts","href":"/api-reference/contacts/list-contacts"},{"title":"Get contact","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}","href":"/api-reference/contacts/get-contact"},{"title":"List contact segments","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}/segments","href":"/api-reference/contacts/list-contact-segments"},{"title":"Get contact topics","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}/topics","href":"/api-reference/contacts/get-contact-topics"},{"title":"Create contact","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contacts","href":"/api-reference/contacts/create-contact"},{"title":"Update contact","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/contacts/{contactId}","href":"/api-reference/contacts/update-contact"},{"title":"Delete contact","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/contacts/{contactId}","href":"/api-reference/contacts/delete-contact"},{"title":"Upload contact profile image","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contacts/{contactId}/image","href":"/api-reference/contacts/upload-contact-profile-image"},{"title":"Set contact profile image URL","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json put /v1/projects/{projectId}/contacts/{contactId}/image","href":"/api-reference/contacts/set-contact-profile-image-url"},{"title":"Delete contact profile image","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/contacts/{contactId}/image","href":"/api-reference/contacts/delete-contact-profile-image"},{"title":"Add contact to segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contacts/{contactId}/segments","href":"/api-reference/contacts/add-contact-to-segment"},{"title":"Remove contact from segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/contacts/{contactId}/segments/{segmentId}","href":"/api-reference/contacts/remove-contact-from-segment"},{"title":"Update contact topics","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/contacts/{contactId}/topics","href":"/api-reference/contacts/update-contact-topics"},{"title":"Get contact activity","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}/activity","href":"/api-reference/contacts/get-contact-activity"},{"title":"Get contact engagement score","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}/engagement","href":"/api-reference/contacts/get-contact-engagement-score"},{"title":"Get contact email validation status","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contacts/{contactId}/email-validation","href":"/api-reference/contacts/get-contact-email-validation-status"},{"title":"Refresh contact engagement score","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contacts/{contactId}/engagement/refresh","href":"/api-reference/contacts/refresh-contact-engagement-score"},{"title":"Record email validation result","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contacts/{contactId}/email-validation","href":"/api-reference/contacts/record-email-validation-result"}]},{"group":"Contact properties","pages":[{"title":"List contact properties","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contact-properties","href":"/api-reference/contact-properties/list-contact-properties"},{"title":"Get contact property","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/contact-properties/{propertyId}","href":"/api-reference/contact-properties/get-contact-property"},{"title":"Create contact property","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/contact-properties","href":"/api-reference/contact-properties/create-contact-property"},{"title":"Update contact property","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/contact-properties/{propertyId}","href":"/api-reference/contact-properties/update-contact-property"},{"title":"Delete contact property","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/contact-properties/{propertyId}","href":"/api-reference/contact-properties/delete-contact-property"}]},{"group":"Segments","pages":[{"title":"List segments","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/segments","href":"/api-reference/segments/list-segments"},{"title":"Get segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/segments/{segmentId}","href":"/api-reference/segments/get-segment"},{"title":"List contacts in segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/segments/{segmentId}/contacts","href":"/api-reference/segments/list-contacts-in-segment"},{"title":"Create segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/segments","href":"/api-reference/segments/create-segment"},{"title":"Delete segment","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/segments/{segmentId}","href":"/api-reference/segments/delete-segment"}]},{"group":"Topics","pages":[{"title":"List topics","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/topics","href":"/api-reference/topics/list-topics"},{"title":"Get topic","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/topics/{topicId}","href":"/api-reference/topics/get-topic"},{"title":"List opt-in contacts","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/topics/{topicId}/contacts","href":"/api-reference/topics/list-opt-in-contacts"},{"title":"Create topic","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/topics","href":"/api-reference/topics/create-topic"},{"title":"Update topic","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/topics/{topicId}","href":"/api-reference/topics/update-topic"},{"title":"Delete topic","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/topics/{topicId}","href":"/api-reference/topics/delete-topic"}]},{"group":"Suppressions","pages":[{"title":"List suppressions","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/suppressions","href":"/api-reference/suppressions/list-suppressions"},{"title":"Export suppressions","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/suppressions/export","href":"/api-reference/suppressions/export-suppressions"},{"title":"Add suppression","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/suppressions","href":"/api-reference/suppressions/add-suppression"},{"title":"Remove suppression","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/suppressions/{email}","href":"/api-reference/suppressions/remove-suppression"},{"title":"Import suppressions","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/suppressions/import","href":"/api-reference/suppressions/import-suppressions"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/webhooks","href":"/api-reference/webhooks/list-webhooks"},{"title":"Get webhook","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/webhooks/{endpointId}","href":"/api-reference/webhooks/get-webhook"},{"title":"List webhook deliveries","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/webhooks/{endpointId}/deliveries","href":"/api-reference/webhooks/list-webhook-deliveries"},{"title":"Get webhook delivery","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/webhooks/{endpointId}/deliveries/{deliveryId}","href":"/api-reference/webhooks/get-webhook-delivery"},{"title":"Create webhook","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/webhooks","href":"/api-reference/webhooks/create-webhook"},{"title":"Update webhook","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json patch /v1/projects/{projectId}/webhooks/{endpointId}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json delete /v1/projects/{projectId}/webhooks/{endpointId}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Test webhook","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/webhooks/{endpointId}/test","href":"/api-reference/webhooks/test-webhook"},{"title":"Replay webhook delivery","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json post /v1/projects/{projectId}/webhooks/{endpointId}/replay/{deliveryId}","href":"/api-reference/webhooks/replay-webhook-delivery"}]},{"group":"API key usage","pages":[{"title":"List API keys","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/api-keys","href":"/api-reference/api-key-usage/list-api-keys"},{"title":"Get API key","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/api-keys/{keyId}","href":"/api-reference/api-key-usage/get-api-key"},{"title":"Get API key usage","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/api-keys/{keyId}/usage","href":"/api-reference/api-key-usage/get-api-key-usage"},{"title":"Export API key usage","deprecated":false,"version":null,"openapi":"/signal/api-reference/openapi.json get /v1/projects/{projectId}/api-keys/{keyId}/usage/export","href":"/api-reference/api-key-usage/export-api-key-usage"}]}]},{"tab":"Knowledge base","pages":[{"title":"Knowledge base","href":"/signal/knowledge-base/introduction"}]}]}]},"basePath":"","title":"Send email - Apollo Deploy","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-Bevw23-4.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}