internal
release-email

List Recipients

The audience roll-call, so a send is never confirmed against a number nobody can inspect.

internal switches to the staff audience an internal test broadcast reaches, which the same rule covers.

Carries each recipient's product-updates consent so a delivered count lower than the audience count is explainable here. Read-only: no route on this router writes a subscription field.

get/api/v1/internal/release-email/recipients/list

Query parameters

internalboolean

Response

Successful Response

emailstring required
display_namestring nullable required
workspace_namestring required
status'active' | 'suspended' required

Whether a recipient's account is suspended, at either level.

SUSPENDED means the user is suspended or their workspace is — it is a statement about account state, not about whether someone is still a customer, which is a fact this system never holds.

Pushed to Resend as a contact property, so the values are visible outside this codebase and are hashed into the contact-sync fingerprint: changing one re-pushes every contact on the next sync.

Renaming a value is safe only while segment membership stays explicit — the sync adds and removes contacts by API call. A filter-based segment keyed on this property would make a rename empty the audience silently.

plan_typestring required
is_excludedboolean required
is_internalboolean required
opt_out_state'subscribed' | 'opted_out' | 'unknown' required

Whether a recipient still consents to product updates.

UNKNOWN is a real answer, not a placeholder: opt-out lives only in Resend and a failed read must not be reported as consent. Distinct from exclusion, which is ours to set and ours to lift — this one never is.

Changes

Changed in 1 of the 16 revisions of this API.22

    • added the new active enum value to the items/status response property for the response status 200

      response-property-enum-value-added

    • added the new suspended enum value to the items/status response property for the response status 200

      response-property-enum-value-added

    • added the required property items/is_internal to the response with the 200 status

      response-required-property-added

    • added the required property items/opt_out_state to the response with the 200 status

      response-required-property-added

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