v2

latestOpenAPI 3.1.0Commercial API license2026-08-01592492.6 KB
internal

Send one email through the standard api-side pipeline

Dispatch via send_email. Errors short-circuit with 502 so the Next caller can decide whether to surface or swallow. Welcome sends from provision-org are fire-and-forget on the Next side — a 502 from here becomes a Sentry breadcrumb, not a user-visible failure.

post/internal/email/send

Headers

x-internal-secretstring nullable

Request body

tostring email required

Recipient email address

template'subscription-confirmed' | 'monthly-usage-summary' | 'welcome' | 'quota-80' | 'quota-100' | 'win-back' | 'activation-first-call' required

Template slug

subjectstring required

Subject line

tag_class'transactional' | 'marketing' required

transactional | marketing

variablesobject

Template-specific {placeholder} substitutions

organization_idstring nullable

Supabase org uuid. When present, send.py applies frequency caps and appends to org_email_log.

Response

Successful Response

object required