Skip to main content
POST
Dispatch an email message from one of your provisioned inboxes. The outbound message is automatically signed with your organization’s DKIM keys and wrapped in loop-suppression headers to prevent infinite mail loops.

Headers

string
required
Bearer token formatted as Bearer gork_live_... or scoped inbox key.
string
Optional unique UUID string (max 255 chars) to prevent double sending on network retry.

Body

string
required
The unique ID of the inbox sending the email (e.g. inb_8f29ac01...).
string[]
required
Array of recipient email addresses. Max 50 recipients per request.
string
default:"(no subject)"
The subject line of the email. Max 500 characters.
string
Plain text body of the email.
string
Rich HTML body. Automatically sanitized before dispatch.
string[]
Array of CC recipient email addresses.
string[]
Array of BCC recipient email addresses.
string
Optional message or thread ID to preserve email threading and headers (In-Reply-To, References).
object[]
Files to attach. Each entry takes filename, an optional contentType, and content — the file’s raw bytes as a base64 string. Limits: 10 files per email, 10MB per file, 15MB total including the body. Attachments are sent natively, not as links.

Attachments

Send a file by base64-encoding its bytes:
cURL
TypeScript
Files are stored against the message and count toward your workspace storage. Read one back with GET /v1/attachments/{id} (or client.attachments.download(id) in the SDK) — see Read Attachment.

Scheduling

string
ISO 8601 timestamp to schedule the message instead of sending it now. Must be at least 1 minute and at most 30 days ahead. The message is stored with status scheduled (HTTP 202), no quota is consumed until it actually dispatches, and it can be cancelled while still scheduled:
Attachments cannot be scheduled yet — a scheduled message with files is rejected with attachments_not_schedulable rather than silently dropping them.

Open tracking (opt-in)

boolean
default:"false"
Adds a signed 1×1 pixel to the HTML part and fires email.opened the first time it is fetched. Off by default: tracking pixels make mail look like marketing, which is a deliverability cost most transactional agent mail should not pay. When the message has no HTML body, the plain text is wrapped in a minimal HTML part so the pixel has somewhere to live.

Automatic retries

A send that fails with a transient provider error (network failure, 5xx, throttling) is retried automatically after 2 minutes, then 10, then 30. A permanent rejection (unverified destination, invalid address, auth failure) is never retried. Quota consumed by a failed attempt is refunded, so a retry never costs you twice.

Response

object