---
title: "List email block types"
method: GET
path: "/email-blocks"
tags: ["Email Blocks"]
---

# List email block types

`GET /email-blocks`

Lists every block type accepted by the `blocks` array on campaigns, sequence email steps, templates, transactional emails, and email components, with the required and optional fields of each. Derived from the same schemas that validate a write, so it cannot drift from what those endpoints accept.

## Query parameters

- `creatableOnly` 'true'

## Response `200`

Block types listed

- object
  - `success` boolean
  - `blockTypes` EmailBlockTypeReference[]
    - `type` string
    - `creatable` boolean — False for structural types the editor manages, which should not be hand-authored.
    - `reason` string — Why a non-creatable type is excluded.
    - `required` string[]
    - `optional` string[]
    - `fields` EmailBlockFieldReference[]
      - `name` string
      - `required` boolean
      - `type` string — Value shape, for example string, number, boolean, enum, array, or object.
      - `values` unknown[] — Allowed values, for enum and literal-union fields.
        - unknown
      - `itemFields` EmailBlockFieldReference[] — Shape of one entry in an array field. This is where `list` and `steps` differ: list items carry `content`, steps items carry `title` and an optional `description`.
      - `fields` EmailBlockFieldReference[] — Shape of an object field, for example the `mode`, `strategy`, `lookbackDays`, `sort`, and `filters` of a repeat block's `productSource`.
    - `example` object — A minimal valid block of this type.
    - `notes` string[]
  - `conditionFields` EmailBlockConditionFieldReference[] — The per-field table for block conditions, always returned with the list. This is the call made to find out what exists, and the table adds about 9% to it.
    - `field` string, required
    - `label` string, required
    - `operators` string[], required — The only operators this field accepts.
    - `values` string[] — Closed value set, for the fields that have one.
    - `valueFormat` string, required — How the `value` string is shaped for this field.
    - `serverEvaluated` boolean, required — Whether the field reads stored subscriber state rather than the merge data of the send.
    - `previewSupport` 'any_contact' | 'inline_tags_or_stored_subscriber' | 'stored_subscriber', required — What a render needs before it can evaluate this field. any_contact - resolved from merge data. inline_tags_or_stored_subscriber - tag, which an inline contact can state for itself. stored_subscriber - needs subscriberId. A condition a render cannot evaluate renders as false and is listed in that render's unevaluatedConditions.
    - `example` object, required — A valid condition using this field.

## Other responses

- `401` — Unauthorized
- `503` — The database was temporarily unavailable. The request may be retried after the delay in Retry-After.

## Changes

- **2026-08-23** `1a40912815df` — 2 info
  - added the optional property `blockTypes/items/fields/items/fields` to the response with the `200` status
  - added the optional property `conditionFields` to the response with the `200` status
- **2026-08-19** `ba3a29c6eb33` — 2 info
  - added the optional property `retryable` to the response with the `401` status
  - added the optional property `retryable` to the response with the `503` status
- **2026-08-18** `8fbabe82a04d` — 1 info
  - added the non-success response with the status `503`
- **2026-08-17** `9da9d1816e27` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/sequenzy/apis/sequenzy-api/changes/email-blocks/get.md)

---

[API](https://skmtc.dev/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.dev/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/revisions/73f826277d9a/schema)
