Email Blocks
List Email Block Types
List every email block type with its required and optional fields.
GET
List Email Block Types
List Email Block Types
You can list every block type accepted by theblocks array on campaigns, sequence email steps, templates, transactional emails, and email components. Each entry names the required and optional fields, the allowed values of every enum field, and the shape of nested item arrays and nested objects.
This reference is derived from the same schemas that validate a write, so it cannot drift from what those endpoints accept. The MCP tool get_email_block_schema and the sequenzy://email-blocks resource return the same payload; if the tool is missing from a client’s tool list, enable it on the Sequenzy connector or call this endpoint instead of inferring fields from live HTML.
Request
string
Pass
true to hide structural block types the editor manages for you, such as
group, conditional-group, and footer.Responses
Authoring notes
Lists are their own block type rather than a text variant. Atext block accepts only variant: "paragraph", "lead", or "html", and never accepts items.
list for a plain numbered or bulleted list, and steps for a visual numbered walkthrough. List items carry content; steps items carry title and an optional description.
Block conditions
Every block takes aconditions array that hides it unless the contact matches, and conditional-group wraps an if/else pair around the same filters. Inside a block reference, field and operator are two flat enums that pool every field’s operators together - the validator narrows them against each other, so { "field": "tag", "operator": "is" } parses as an enum member and is then rejected.
conditionFields is that narrowing, spelled out. This endpoint always returns it; a single-type lookup returns it for conditional-group or with ?conditionFields=true, and otherwise returns a conditionFieldsHint string in its place:
serverEvaluated marks the fields read from stored subscriber state rather than from the merge data of the send, and previewSupport says what a render needs before it can evaluate one:
any_contact- resolved from merge data, so any contact previews it.inline_tags_or_stored_subscriber-tag, which an inline contact can state for itself viasubscriber.tags.stored_subscriber- needssubscriberId; nothing inline stands in for it.
false and is listed in that render’s unevaluatedConditions.