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

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

Changes

Changed in 1 of the 7 revisions of this API.23

  • b7c4b36e1fa123See the full diff
    • removed the request property tag_class

      request-property-removed

    • removed the optional property detail from the response with the 422 status

      response-optional-property-removed

    • added the required property details to the response with the 422 status

      response-required-property-added

    • added the required property error to the response with the 422 status

      response-required-property-added

    • added the required property message to the response with the 422 status

      response-required-property-added

    This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog