Skip to main content
POST
Notify members

Restrictions

Usage

  • Recipients that are not active members of the caller’s account, or that have no email address on file, are skipped rather than failing the whole request.
  • Whether email is included follows each recipient’s own notification preferences for this kind of message; a recipient with no preference set defaults to receiving it.
  • Recipients receive exactly the sanitized html as the email body, with nothing added around it. The sender name shows the caller’s name followed by “(via AI SRE)”.
  • Set dry_run to true to run every check and get the exact email back in html without sending: nothing is queued, and neither the hourly limit nor the per-turn duplicate check is consumed.
  • At most 20 emails are delivered to the same recipient through this endpoint per hour; further deliveries to that recipient in the same window are skipped with rate_limited.
  • Retrying the same call within the same AI SRE session turn does not send a duplicate email to a recipient who already received one; the repeat is skipped with duplicate.

Authorizations

app_key
string
query
required

App key issued from the Flashduty console under Account → APP Keys. Required on every public API call. Keep it secret — it grants the same access as the owning account.

Body

application/json

Notify members by email request

subject
string
required

Email subject, used as written. Required, 1–200 characters. Line breaks are replaced with a space; leading/trailing whitespace is trimmed.

Required string length: 1 - 200
html
string
required

Email body as an HTML fragment (no <html>/<head>/<body> wrapper needed); recipients receive it as the whole email body. Required, up to 102,400 bytes of raw UTF-8 input (larger messages are clipped by common email clients), and must be non-empty after sanitization. Sanitized server-side: <script>, <style>, <iframe>, <object>, <embed>, <form>, <input>, <button>, <svg>, <meta>, <link>, and <base> tags and all on* event handlers are removed; images are kept only when their src is https — images with any other or no src, including data:, are removed; links are restricted to http, https, and mailto. Inline style attributes are kept as written.

Maximum string length: 102400
person_ids
integer<int64>[]

Recipient member IDs. Optional, up to 20, no duplicates. Omitted or empty sends to the caller only.

Maximum array length: 20
dry_run
boolean
default:false

Check without sending. When true, every check runs and the response returns the exact email in html, but nothing is queued and neither the hourly limit nor the per-turn duplicate check is consumed. Defaults to false.

Response

Success

Success response envelope. On every 2xx response, request_id identifies the call (also mirrored in the Flashcat-Request-Id header) and data holds the endpoint-specific payload. Failure responses use a different shape — see ErrorResponse.

request_id
string
required

Unique ID for this request. Mirrored in the Flashcat-Request-Id response header. Include it when reporting issues.

Example:

"01HK8XQE3Z7JM2NTFQ5YJ8P9R4"

data
object
required

Notify members by email response