meta

Send an operator notice to every account owner

The mechanism behind the notice promises in the published copy: 14 days for a material change (Terms §16), 30 days for discontinuation (Terms §13), breach notification without undue delay (Privacy §8). Until this existed none of that was sendable. Dry run unless apply is true, and the response carries the exact rendered subject and body either way. A legal notice ignores the per-person email switches — the email itself says so.

post/v1/admin/notices

Request

  • Base URL: https://api.hyperresearch.ai
  • URL: https://api.hyperresearch.ai/v1/admin/notices
  • Auth: API key in cookie hr_session

Request body

template'terms_changed' | 'service_notice' required

terms_changed for a material change to the Terms (§16 — 14 days’ notice). service_notice for anything else everybody must be told: the service being discontinued (§13 — 30 days) or a security incident (Privacy §8 — without undue delay).

notice_idstring required

A stable id you choose: terms-v1_1, incident-2026-09-18. It IS the idempotency key — running the same notice twice writes no second row and mails nobody twice, so the recovery from "did that actually go out?" is to run it again rather than to guess.

titlestring required

The subject line, and the opening line of the body.

bodystring required

What you are telling people, in your own sentences. Plain text: it is escaped into the HTML part and never interpreted as markup.

effective_datestring

When it takes effect, written as you want it read: 1 October 2026.

notice_daysinteger

Days of notice being given. Defaults to 14 for a terms change.

linkstring uri

Where the reader is sent. Defaults to the console’s legal page.

applyboolean

Absent or false is a DRY RUN: the exact rendered subject and body come back with the recipient count, and nothing is written or sent. true performs the send.

limitinteger

Cap the fan-out. Bounded to 500 either way.

Response

The rendered notice, and what was done with it

templatestring required
notice_idstring required
applyboolean required
providerstring required

What this deployment would use: resend, or noop while email is off.

suppressed_becausestring nullable required

The exact var that is missing, or null when the deployment can send. EMAIL_ENABLED is not "true" is the answer on a dark deployment.

recipientsinteger required
subjectstring required
textstring required

The plain-text body, byte for byte what would be sent.

queuedinteger required
duplicatesinteger required
skippedinteger required

Changes

No recorded changes to this operation across all 1 revision of this API.