Block schema reference

Embed
Preview of the card
<a href="https://forumulate.com/guides/block-schema"><img src="https://forumulate.com/guides/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/36aa4df0-1e95-4cef-8ae9-795169441345/pages/8f8ed8b8-25ac-4bd6-9a14-a16d50614d89/social-card.svg?v=3e7ae33eec8b" alt="Block schema reference" width="600" height="315"></a>

Every block a page or a front page can hold, every attribute it takes, the JSON type of each one, and the values the validator accepts. Generated from the validator itself, so it cannot disagree with a write. The same data is served as JSON — for a script, or to generate types from:

curl https://forumulate.com/api/docs/block-schema

Each block also has a Markdown spelling (Markdown directives), and the section library hands out whole bands built from these blocks (Section library). The keys of each space type’s theme namespace — theme.faq, theme.blog and the rest — are typed the same way in Theme namespaces.

Numbers written as strings. The Markdown dialect writes every attribute as a string (::column{width="60"}). Block JSON takes a number; where a row says “Also accepts a numeric string”, "60" is accepted too and stored as 60. Anything else that is not a number — "60%", "" — is a 422 naming the path.

Reading the tables

  • Path is where the value goes, from the block’s attrs. columns[] is an array of objects with the keys listed under it; .* is each value of a record (an object whose keys are listed under Values); .0 and .1 are the positions of a fixed-length pair.

  • Type is the JSON type the validator takes. enum takes exactly the listed values — numbers as numbers (heading.attrs.level is 2, not "2"). A type like enum | string takes one of the words, or any string (a theme colour token or a #hex).

  • Values / range is the closed list, a number’s bounds, or a string’s length.

  • Required is blank for an optional key: leave it out and the default applies.

  • Same keys as means the object takes exactly the keys already listed under that path.

Blocks (87)

audience

Holds blocks (required). Markdown directive: audience.

Path

Type

Values / range

Required

Notes

claim

string

yes

condition

string

equals

string

yes

blockquote

Holds blocks (required).

Path

Type

Values / range

Required

Notes

align

enum

start, center

cite

string

up to 300 chars

citeHref

string

size

number

14–96

variant

enum

default, pull

bulletList

Holds blocks (required).

Path

Type

Values / range

Required

Notes

color

enum | string

bg, surface, panel, ink, muted, brand, accent

itemGap

number | enum

none, xs, sm, md, lg, xl; 0–400

link

enum

inherit

marker

enum

default, arrow, dash, emdash, none, arrow-end

rule

boolean | enum | string

bg, surface, panel, ink, muted, brand, accent

size

number | string | object

size.lg

number | string

8–160

size.md

number | string

8–160

size.sm

number | string

8–160

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

weight

number

100–900

button

Holds nothing. Markdown directive: button.

Path

Type

Values / range

Required

Notes

action

enum

link, ask, search, select

href

string

icon

string

up to 80 chars

An icon name from GET /icons?for=card (see the CardIconName enum) or a short glyph such as an emoji, drawn as text. Any other bare word is refused: the reader would print it. A glyph name from GET /icons, or one emoji.

label

string

yes

match

string

up to 300 chars

query

string

style

enum

primary, secondary, link, pill

targetSlug

string

width

enum

auto, full

buttons

Holds blocks (required). Markdown directive: buttons.

Path

Type

Values / range

Required

Notes

align

enum

start, center, end

card

Holds nothing. Markdown directive: card.

Path

Type

Values / range

Required

Notes

badge

string

up to 24 chars

color

enum | string

bg, surface, panel, ink, muted, brand, accent

coverUrl

string

cta

string

up to 40 chars

description

string

href

string

icon

string

up to 80 chars

An icon name from GET /icons?for=card (see the CardIconName enum) or a short glyph such as an emoji, drawn as text. Any other bare word is refused: the reader would print it. A glyph name from GET /icons, or one emoji.

iconStyle

enum

plain, tile, circle

iconUrl

string

kicker

string

up to 40 chars

title

string

yes

cards

Holds blocks (required). Markdown directive: cards.

Path

Type

Values / range

Required

Notes

background

string

backgroundDark

string

border

enum

card, tile, none

columns

number | object

1–6

columns.lg

number

1–6

columns.md

number

1–6

columns.sm

number

1–6

ctaPlacement

enum

below, end

descriptionSize

number

12–24

divider

boolean

gap

number | enum | object

none, xs, sm, md, lg, xl

gap.lg

number | enum

none, xs, sm, md, lg, xl; 0–400

gap.md

number | enum

none, xs, sm, md, lg, xl; 0–400

gap.sm

number | enum

none, xs, sm, md, lg, xl; 0–400

iconAlign

enum

start, center

iconBand

number

0–120

iconSize

number

12–64

minWidth

number

160–480

rowGap

number | enum | object

none, xs, sm, md, lg, xl

rowGap.lg

number | enum

none, xs, sm, md, lg, xl; 0–400

rowGap.md

number | enum

none, xs, sm, md, lg, xl; 0–400

rowGap.sm

number | enum

none, xs, sm, md, lg, xl; 0–400

tileSize

number

32–96

titleSize

number

12–24

titleWeight

enum

400, 500, 600, 700

variant

enum

default, horizontal, panel, compact, row

Holds blocks (required). Markdown directive: carousel.

Path

Type

Values / range

Required

Notes

arrows

boolean

autoplay

boolean

dots

boolean

gap

enum

none, sm, md, lg

interval

number

2000–30000

label

string

up to 120 chars

loop

boolean

perView

number

1–6

perViewMd

number

1–4

perViewSm

number

1–3

carouselSlide

Holds blocks (required). Markdown directive: slide.

Path

Type

Values / range

Required

Notes

label

string

up to 120 chars

checklist

Holds blocks (required).

No attributes of its own.

checklistItem

Holds blocks (required).

Path

Type

Values / range

Required

Notes

checked

boolean

yes

codeBlock

Holds text.

Path

Type

Values / range

Required

Notes

collapse

string | number[]

del

string | number[]

diffMarkers

boolean

focus

string | number[]

frame

enum

terminal, editor, none

highlight

string | number[]

ins

string | number[]

language

string

lineNumbers

boolean | number

0–1000000

look

enum

bordered, flat, inset

mark

string[]

1–80 chars

maxLines

number

3–500

preview

enum | object

true

preview.align

enum

start, center

preview.attach

enum

separate, code

preview.background

string

preview.backgroundDark

string

preview.css

string

up to 20000 chars

preview.minHeight

number

40–800

preview.pattern

enum

none, stripes, dots, grid

showLanguage

boolean | enum

auto

src

string

srcFetchedAt

string

up to 40 chars

srcLines

string

up to 20 chars

title

string

titleFont

enum

ui, mono

titleIcon

boolean

twoslash

boolean

twoslashData

object

twoslashData.errors[]

object[]

yes

twoslashData.errors[].c

number

0–100000

yes

twoslashData.errors[].l

number

0–100000

yes

twoslashData.errors[].n

number

0–100000

yes

twoslashData.errors[].t

string

up to 2000 chars

yes

twoslashData.hovers[]

object[]

yes

Same keys as twoslashData.errors[].

twoslashData.queries[]

object[]

yes

twoslashData.queries[].l

number

0–100000

yes

twoslashData.queries[].t

string

up to 2000 chars

yes

twoslashData.remove

number[]

0–100000

yes

wrap

boolean

codeGroup

Holds blocks (required). Markdown directive: codeGroup.

Path

Type

Values / range

Required

Notes

lineNumbers

boolean | number

0–1000000

look

enum

bordered, flat, inset

picker

enum

tabs, dropdown

showLanguage

boolean | enum

auto

syncKey

string

up to 40 chars

tabStyle

enum

underline, pill

title

string

up to 200 chars

titleFont

enum

ui, mono

titleIcon

boolean

column

Holds blocks (required). Markdown directive: column.

Path

Type

Values / range

Required

Notes

align

enum

start, end

fit

enum

share, content

hideOn

enum[]

phone, tablet

role

enum

aside

sticky

boolean

width

number

5–95

Percent of the row (5–95). Absent = an equal share. Also accepts a numeric string ("60").

columns

Holds blocks (required). Markdown directive: columns.

Path

Type

Values / range

Required

Notes

alternate

boolean

breakout

enum

wide, full

caption

string

up to 500 chars

divider

boolean | enum | string

bg, surface, panel, ink, muted, brand, accent

gap

number | enum | object

none, xs, sm, md, lg, xl

gap.lg

number | enum

none, xs, sm, md, lg, xl; 0–400

gap.md

number | enum

none, xs, sm, md, lg, xl; 0–400

gap.sm

number | enum

none, xs, sm, md, lg, xl; 0–400

rowGap

number | enum

none, xs, sm, md, lg, xl; 0–400

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceAround

number | string | object

spaceAround.lg

number | string

0–4000

spaceAround.md

number | string

0–4000

spaceAround.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

stackOn

enum

never, sm, md

valign

enum

start, center, end, baseline

contactForm

Holds nothing. Markdown directive: contactform.

Path

Type

Values / range

Required

Notes

description

string

up to 1000 chars

spaceId

string

up to 64 chars

yes

submitLabel

string

up to 60 chars

title

string

up to 200 chars

topic

string

up to 60 chars

corrections

Holds nothing. Markdown directive: corrections.

Path

Type

Values / range

Required

Notes

heading

string

up to 80 chars

items[]

object[]

yes

items[].date

enum | string

``

yes

items[].diff

string

up to 4000 chars

items[].note

string

up to 1000 chars

yes

style

enum

list, banner

customCode

Holds nothing. Markdown directive: customcode.

Path

Type

Values / range

Required

Notes

css

string

up to 10000 chars

html

string

up to 20000 chars

yes

drawing

Holds nothing.

Path

Type

Values / range

Required

Notes

scene

string

yes

embed

Holds nothing. Markdown directive: embed.

Path

Type

Values / range

Required

Notes

url

string

yes

errorCodes

Holds nothing. Markdown directive: errorCodes.

Path

Type

Values / range

Required

Notes

rows[]

object[]

yes

rows[].code

string

yes

rows[].description

string

up to 400 chars

rows[].status

number

100–599

title

string

up to 80 chars

event

Holds nothing. Markdown directive: event.

Path

Type

Values / range

Required

Notes

event

string

up to 200 chars

yes

look

enum

card, compact

orgId

string

showCover

boolean

showRsvp

boolean

spaceId

string

yes

eventRsvp

Holds nothing. Markdown directive: rsvp.

Path

Type

Values / range

Required

Notes

align

enum

start, center, end

event

string

up to 200 chars

yes

label

string

up to 80 chars

orgId

string

showDetails

boolean

spaceId

string

yes

example

Holds blocks (required). Markdown directive: example.

Path

Type

Values / range

Required

Notes

kind

enum

request, response

yes

title

string

up to 80 chars

expandable

Holds blocks (required). Markdown directive: expandable.

Path

Type

Values / range

Required

Notes

defaultOpen

boolean

icon

enum

native, chevron, plus, none

style

enum

plain, row, card, bordered, spoiler, solution

title

string

yes

expandableGroup

Holds blocks (required). Markdown directive: expandablegroup.

Path

Type

Values / range

Required

Notes

exclusive

boolean

style

enum

row, card, bordered

extensionBlock

Holds nothing.

Path

Type

Values / range

Required

Notes

block

string

yes

extension

string

yes

props

record

yes

props.*

any

field

Holds blocks (required). Markdown directive: field.

Path

Type

Values / range

Required

Notes

badges

string[]

up to 24 chars

default

string

up to 200 chars

deprecated

boolean

location

enum

path, query, body, header, response

name

string

1–120 chars

yes

required

boolean

type

string

up to 80 chars

file

Holds nothing.

Path

Type

Values / range

Required

Notes

name

string

url

string

yes

fileTree

Holds blocks (required). Markdown directive: filetree.

No attributes of its own.

form

Holds nothing. Markdown directive: form.

Path

Type

Values / range

Required

Notes

consentText

string

up to 500 chars

description

string

up to 1000 chars

fields[]

object[]

yes

fields[].help

string

up to 500 chars

fields[].highLabel

string

up to 60 chars

fields[].label

string

up to 200 chars

yes

fields[].lowLabel

string

up to 60 chars

fields[].max

number

fields[].min

number

fields[].name

string

up to 40 chars

yes

fields[].options

string[]

up to 120 chars

fields[].pattern

string

up to 200 chars

fields[].placeholder

string

up to 200 chars

fields[].prefill

boolean

fields[].required

boolean

fields[].showIf

object

fields[].showIf.field

string

up to 40 chars

yes

fields[].showIf.op

string

up to 20 chars

yes

fields[].showIf.value

string

up to 200 chars

fields[].type

enum

text, email, textarea, select, checkbox, radio, number, url, phone, date, hidden, multiselect, consent, rating, scale, yesno, time, country, statement, ranking, matrix, address, group, page

yes

fields[].value

string

up to 500 chars

formId

string

up to 64 chars

yes

layout

enum

stacked, inline

redirectUrl

string

up to 2048 chars

submitLabel

string

up to 60 chars

successMessage

string

up to 1000 chars

title

string

up to 200 chars

Holds blocks (required). Markdown directive: gallery.

Path

Type

Values / range

Required

Notes

aspect

enum

auto, square, 4:3, 3:2, 16:9

columns

number

2–6

gap

enum

none, sm, md, lg

lightbox

boolean

grid

Holds blocks (required). Markdown directive: grid.

Path

Type

Values / range

Required

Notes

cols

number

1–12

gap

enum

none, sm, md, lg

gridItem

Holds blocks (required). Markdown directive: gridItem.

Path

Type

Values / range

Required

Notes

accent

string

align

enum

top, center, bottom

bg

enum

none, surface, muted, accent, primary

border

boolean | enum | string

bg, surface, panel, ink, muted, brand, accent

colSpan

number

1–12

yes

colStart

number

1–12

gradient

object

gradient.angle

number

0–360

gradient.stops[]

object[]

yes

gradient.stops[].at

number

0–100

gradient.stops[].color

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

gradient.type

enum

linear, radial

yes

gradientDark

object

gradientDark.angle

number

0–360

gradientDark.stops[]

object[]

yes

gradientDark.stops[].at

number

0–100

gradientDark.stops[].color

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

gradientDark.type

enum

linear, radial

yes

href

string

icon

string

up to 2048 chars

A glyph name from GET /icons, or one emoji.

iconStyle

enum

inline, tile

mdSpan

number

1–12

pad

enum

none, sm, md, lg

radius

number | enum

none, sm, md, lg, full; 0–64

rowSpan

number

1–20

rowStart

number

1–100

shadow

enum

none, sm, md, lg

smSpan

number

1–12

textAlign

enum

start, center, end

heading

Holds text.

Path

Type

Values / range

Required

Notes

color

enum | string

bg, surface, panel, ink, muted, brand, accent

icon

string

up to 2048 chars

A glyph name from GET /icons, or one emoji.

iconColor

string

iconStyle

enum

inline, tile

level

enum

1, 2, 3, 4, 5, 6

yes

lineHeight

number

0.9–2

link

object

link.href

string

yes

link.label

string

1–80 chars

yes

link.placement

enum

inline, below

placement

enum

flow, page-head

size

number | string | object

size.lg

number | string

8–160

size.md

number | string

8–160

size.sm

number | string

8–160

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

textAlign

enum

start, center, end

tracking

number

-0.2–0.5

variant

enum

default, eyebrow, code

weight

number

100–900

hero

Holds nothing. Markdown directive: hero.

Path

Type

Values / range

Required

Notes

actions[]

object[]

actions[].href

string

yes

actions[].label

string

up to 60 chars

yes

actions[].style

enum

primary, secondary, link

eyebrow

string

up to 80 chars

layout

enum

center, split, below

level

enum

1, 2

media

object

media.alt

string

up to 300 chars

media.kind

enum

image

yes

media.poster

string

media.src

string

yes

mediaSide

enum

start, end

note

string

up to 160 chars

size

enum

md, lg, xl

sub

string

up to 600 chars

title

string

up to 240 chars

yes

hint

Holds blocks (required). Markdown directive: hint.

Path

Type

Values / range

Required

Notes

edge

enum

bar, hook, none

icon

string

up to 80 chars

An icon name from GET /icons?for=card (see the CardIconName enum) or a short glyph such as an emoji, drawn as text. Any other bare word is refused: the reader would print it. A glyph name from GET /icons, or one emoji.

kind

enum

note, tip, caution, important, check, gloss

style

enum

info, success, warning, danger

yes

Also accepts caution, check, danger, error, gloss, important, info, note, success, tip, warn, warning.

title

string

up to 120 chars

titleGap

number

0–24

tone

string

horizontalRule

Holds nothing.

No attributes of its own.

image

Holds nothing.

Path

Type

Values / range

Required

Notes

align

enum

left, center, right

alt

string

background

enum | string

none, surface, muted, accent, primary

caption

string

up to 2000 chars

lightbox

boolean

pad

enum

none, sm, md, lg

src

string

yes

srcDark

string

width

number | string | enum

wide, full; 1–100

imageCompare

Holds nothing. Markdown directive: compare.

Path

Type

Values / range

Required

Notes

after

string

yes

afterAlt

string

up to 300 chars

afterLabel

string

up to 40 chars

before

string

yes

beforeAlt

string

up to 300 chars

beforeLabel

string

up to 40 chars

caption

string

up to 2000 chars

start

number

0–100

layer

Holds nothing. Markdown directive: layer.

Path

Type

Values / range

Required

Notes

blend

enum

normal, multiply, screen, overlay, darken, lighten, difference, exclusion, soft-light, hard-light

color

enum | string

bg, surface, panel, ink, muted, brand, accent

font

enum

heading, body, mono

hideOn

enum[]

phone, tablet

kind

enum

text, image

yes

opacity

number

0–1

rate

number

-1–1

rotate

number

-180–180

size

number

1–40

src

string

text

string

up to 120 chars

weight

number

100–900

width

number

1–100

x

number

0–100

y

number

-50–100

z

number

0–5

listItem

Holds blocks (required).

No attributes of its own.

logoWall

Holds nothing. Markdown directive: logos.

Path

Type

Values / range

Required

Notes

columns

number

2–8

grayscale

boolean

logos[]

object[]

yes

logos[].alt

string

up to 120 chars

yes

logos[].href

string

logos[].src

string

yes

marquee

boolean

size

enum

sm, md, lg

speed

enum

slow, normal, fast

title

string

up to 160 chars

lottie

Holds nothing. Markdown directive: lottie.

Path

Type

Values / range

Required

Notes

alt

string

up to 300 chars

loop

boolean

maxWidth

number

48–2400

play

enum

view, hover, click

ratio

number

0.2–5

speed

number

25–400

src

string

up to 2048 chars

yes

marquee

Holds blocks (required). Markdown directive: marquee.

Path

Type

Values / range

Required

Notes

direction

enum

left, right

fade

boolean

gap

enum

none, sm, md, lg

pauseOnHover

boolean

speed

enum

slow, normal, fast

math

Holds nothing.

Path

Type

Values / range

Required

Notes

latex

string

yes

mermaid

Holds nothing.

Path

Type

Values / range

Required

Notes

code

string

yes

Holds blocks (required). Markdown directive: modal.

Path

Type

Values / range

Required

Notes

label

string

up to 80 chars

yes

size

enum

sm, md, lg, full

style

enum

primary, secondary, link

title

string

up to 160 chars

officeMap

Holds nothing. Markdown directive: offices.

Path

Type

Values / range

Required

Notes

aspect

enum

wide, landscape, square

columns

number

1–4

places[]

object[]

yes

places[].address

string

up to 400 chars

places[].href

string

places[].lat

number

-85.0511–85.0511

yes

places[].lng

number

-180–180

yes

places[].name

string

up to 120 chars

yes

places[].note

string

up to 240 chars

places[].zoom

number

2–18

showMap

boolean

zoom

number

2–18

openapi

Holds nothing.

Path

Type

Values / range

Required

Notes

layout

enum

stacked, split

operation

object

yes

operation.baseUrl

string

operation.callbacks[]

object[]

operation.callbacks[].name

string

yes

operation.callbacks[].operations

object[]

yes

Recursive: the same shape as the enclosing object of this name.

operation.codeSamples[]

object[]

operation.codeSamples[].label

string

operation.codeSamples[].lang

string

yes

operation.codeSamples[].source

string

yes

operation.description

string

operation.kind

enum

webhook, channel, graphql

operation.method

string

yes

operation.operationId

string

operation.parameters[]

object[]

yes

operation.parameters[].default

string

operation.parameters[].deprecated

boolean

operation.parameters[].description

string

operation.parameters[].enum

string[]

operation.parameters[].example

string

operation.parameters[].in

string

yes

operation.parameters[].name

string

yes

operation.parameters[].required

boolean

operation.parameters[].type

string

operation.path

string

yes

operation.requestBody

object

operation.requestBody.contentType

string

operation.requestBody.description

string

operation.requestBody.examples[]

object[]

operation.requestBody.examples[].name

string

yes

operation.requestBody.examples[].summary

string

operation.requestBody.examples[].value

string

yes

operation.requestBody.fields[]

object[]

operation.requestBody.fields[].children

object[]

Recursive: the same shape as the enclosing object of this name.

operation.requestBody.fields[].default

string

operation.requestBody.fields[].deprecated

boolean

operation.requestBody.fields[].description

string

operation.requestBody.fields[].enum

string[]

operation.requestBody.fields[].example

string

operation.requestBody.fields[].name

string

yes

operation.requestBody.fields[].required

boolean

operation.requestBody.fields[].type

string

operation.requestBody.schema

string

operation.requestBody.variants[]

object[]

operation.requestBody.variants[].example

string

operation.requestBody.variants[].fields[]

object[]

yes

Same keys as operation.requestBody.fields[].

operation.requestBody.variants[].title

string

yes

operation.responses[]

object[]

yes

operation.responses[].contentType

string

operation.responses[].description

string

operation.responses[].examples[]

object[]

operation.responses[].examples[].name

string

yes

operation.responses[].examples[].summary

string

operation.responses[].examples[].value

string

yes

operation.responses[].fields[]

object[]

Same keys as operation.requestBody.fields[].

operation.responses[].schema

string

operation.responses[].status

string

yes

operation.responses[].variants[]

object[]

operation.responses[].variants[].example

string

operation.responses[].variants[].fields[]

object[]

yes

Same keys as operation.requestBody.fields[].

operation.responses[].variants[].title

string

yes

operation.security

object

operation.security.optional

boolean

operation.security.options[]

object[][]

yes

operation.security.options[].bearerFormat

string

operation.security.options[].description

string

operation.security.options[].detail

string

yes

operation.security.options[].in

enum

header, query, cookie

yes

operation.security.options[].key

string

yes

operation.security.options[].name

string

yes

operation.security.options[].scopes

string[]

operation.security.options[].type

enum

bearer

yes

operation.servers[]

object[]

operation.servers[].description

string

operation.servers[].url

string

yes

operation.servers[].variables

record

operation.servers[].variables.*

object

operation.servers[].variables.*.default

string

yes

operation.servers[].variables.*.description

string

operation.servers[].variables.*.enum

string[]

operation.summary

string

params

enum

table, list

url

string

orderedList

Holds blocks (required).

Path

Type

Values / range

Required

Notes

color

enum | string

bg, surface, panel, ink, muted, brand, accent

itemGap

number | enum

none, xs, sm, md, lg, xl; 0–400

link

enum

inherit

marker

enum

default, arrow, dash, emdash, none, arrow-end

rule

boolean | enum | string

bg, surface, panel, ink, muted, brand, accent

size

number | string | object

size.lg

number | string

8–160

size.md

number | string

8–160

size.sm

number | string

8–160

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

weight

number

100–900

paragraph

Holds text.

Path

Type

Values / range

Required

Notes

color

enum | string

bg, surface, panel, ink, muted, brand, accent

link

enum

inherit

size

number | string | object

size.lg

number | string

8–160

size.md

number | string

8–160

size.sm

number | string

8–160

textAlign

enum

start, center, end

weight

number

100–900

person

Holds nothing. Markdown directive: person.

Path

Type

Values / range

Required

Notes

bio

string

up to 600 chars

layout

enum

card, row

links[]

object[]

links[].href

string

yes

links[].label

string

up to 60 chars

yes

name

string

up to 120 chars

yes

photo

string

photoAlt

string

up to 300 chars

photoShape

enum

circle, rounded, square

role

string

up to 120 chars

playground

Holds nothing. Markdown directive: playground.

Path

Type

Values / range

Required

Notes

css

string

up to 20000 chars

editable

boolean

fallbackAlt

string

up to 300 chars

fallbackCaption

string

up to 300 chars

fallbackSrc

string

height

number

120–1200

html

string

up to 20000 chars

js

string

up to 20000 chars

layout

enum

split, stacked, preview

runtime

enum

html, react

tabs

enum[]

html, css, js

title

string

up to 120 chars

pricing

Holds nothing. Markdown directive: pricing.

Path

Type

Values / range

Required

Notes

currency

string

up to 8 chars

defaultPeriod

number

0–3

layout

enum

cards, table

periods[]

object[]

yes

periods[].label

string

up to 40 chars

yes

periods[].suffix

string

up to 20 chars

plans[]

object[]

yes

plans[].badge

string

up to 40 chars

plans[].cta

object

plans[].cta.href

string

yes

plans[].cta.label

string

up to 60 chars

yes

plans[].description

string

up to 400 chars

plans[].features[]

object[]

yes

plans[].features[].state

enum

yes, no, text

plans[].features[].text

string

up to 200 chars

yes

plans[].features[].value

string

up to 80 chars

plans[].highlighted

boolean

plans[].name

string

up to 80 chars

yes

plans[].priceNote

string

up to 120 chars

plans[].prices

(number | string)[]

0–1000000000

yes

product

Holds nothing. Markdown directive: product.

Path

Type

Values / range

Required

Notes

buttonLabel

string

up to 40 chars

columns

number

1–4

layout

enum

grid, list, feature

limit

number

1–50

mode

enum

cart, buy

productIds

string[]

up to 64 chars

yes

showDescription

boolean

showImage

boolean

productCard

Holds nothing. Markdown directive: productCard.

Path

Type

Values / range

Required

Notes

buyLabel

string

up to 40 chars

currency

string

endpoint

string

up to 2048 chars

imageUrl

string

up to 2048 chars

layout

enum

horizontal, vertical, compact

name

string

up to 200 chars

price

number

0–1000000000

showButtons

boolean

showMarket

boolean

trackLabel

string

up to 40 chars

url

enum | string

``

yes

prompt

Holds nothing. Markdown directive: prompt.

Path

Type

Values / range

Required

Notes

actions

enum[]

copy, open

align

enum

start, center

background

string

backgroundDark

string

collapse

number

1–40

collapseStyle

enum

footer, pill

copyStyle

enum

button, icon

header

enum

label, tabs

icon

string

up to 80 chars

An icon name from GET /icons?for=card (see the CardIconName enum) or a short glyph such as an emoji, drawn as text. Any other bare word is refused: the reader would print it. A glyph name from GET /icons, or one emoji.

label

string

labelCase

enum

upper, none

layout

enum

inline, stacked

openInDesktop

number

0–6

phoneTargets

number

1–6

primary

enum

copy, open

showText

boolean

targets[]

(enum | object)[]

chatgpt, claude, codex, cursor

targets[].icon

string

up to 2048 chars

yes

targets[].label

string

up to 40 chars

yes

text

string

yes

textStyle

enum

mono, prose

variant

enum

card, compact, pill

wrap

boolean

quiz

Holds nothing. Markdown directive: quiz.

Path

Type

Values / range

Required

Notes

choices[]

object[]

choices[].correct

boolean

choices[].text

string

up to 300 chars

yes

explanation

string

up to 2000 chars

multiple

boolean

question

string

up to 500 chars

quizId

string

rateLimit

Holds nothing. Markdown directive: rateLimit.

Path

Type

Values / range

Required

Notes

burst

number

1–10000000

headers

string[]

limit

number

1–10000000

yes

note

string

up to 300 chars

scope

string

up to 60 chars

window

enum

second, minute, hour, day

yes

reusableRef

Holds nothing. Markdown directive: reusable.

Path

Type

Values / range

Required

Notes

name

string

up to 200 chars

reusableId

string

yes

vars

record

vars.*

string

up to 500 chars

section

Holds blocks (required).

Path

Type

Values / range

Required

Notes

background

object

background.color

enum | string

bg, surface, panel, ink, muted, brand, accent

background.colorDark

enum | string

bg, surface, panel, ink, muted, brand, accent

background.gradient

object

background.gradient.angle

number

0–360

background.gradient.stops[]

object[]

yes

background.gradient.stops[].at

number

0–100

background.gradient.stops[].color

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

background.gradient.type

enum

linear, radial

yes

background.gradientDark

object

background.gradientDark.angle

number

0–360

background.gradientDark.stops[]

object[]

yes

background.gradientDark.stops[].at

number

0–100

background.gradientDark.stops[].color

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

background.gradientDark.type

enum

linear, radial

yes

background.image

object

background.image.attachment

enum

scroll, fixed, parallax

background.image.overlay

object

background.image.overlay.color

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

background.image.overlay.opacity

number

0–1

yes

background.image.position

enum

center, top, bottom, left, right, top left, top right, bottom left, bottom right

background.image.size

enum

cover, contain, auto

background.image.src

string

yes

background.imageDark

object

Same keys as background.image.

background.video

object

background.video.poster

string

background.video.src

string

yes

border

object

border.color

enum | string

bg, surface, panel, ink, muted, brand, accent

border.sides

enum

all, y, x, top, bottom

border.style

enum

solid, dashed, dotted

border.width

number

0–8

yes

contentAlign

enum

start, center, end

fullBleed

boolean

gap

number | enum | enum

none, xs, sm, md, lg, xl, page

key

string

1–40 chars

yes

minHeight

string | number | string | object

minHeight.lg

number | string

0–4000

minHeight.md

number | string

0–4000

minHeight.sm

number | string

0–4000

padding

object

padding.bottom

number | enum

none, xs, sm, md, lg, xl; 0–400

padding.top

number | enum

none, xs, sm, md, lg, xl; 0–400

padding.x

number | enum

none, xs, sm, md, lg, xl; 0–400

pattern

enum

none, dots, grid

patternColor

enum | string | object

bg, surface, panel, ink, muted, brand, accent

patternColor.angle

number

0–360

patternColor.from

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

patternColor.to

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

patternFade

enum

none, radial, bottom

radius

number | enum

none, sm, md, lg, full; 0–64

role

enum

slot, layout

scheme

enum

auto, light, dark

shadow

enum

none, sm, md, lg

verticalAlign

enum

start, center, end

width

enum

narrow, boxed, full

sources

Holds nothing. Markdown directive: sources.

Path

Type

Values / range

Required

Notes

heading

string

up to 80 chars

items[]

object[]

yes

items[].date

enum | string

``

items[].note

string

up to 200 chars

items[].publisher

string

up to 120 chars

items[].title

string

up to 300 chars

yes

items[].url

enum | string

``

yes

markDead

boolean

style

enum

numbered, list, compact

spaceBand

Holds nothing. Markdown directive: band.

Path

Type

Values / range

Required

Notes

activeColor

enum | string

bg, surface, panel, ink, muted, brand, accent

activeFill

enum | string

bg, surface, panel, ink, muted, brand, accent

activeTextColor

enum | string

bg, surface, panel, ink, muted, brand, accent

align

enum

start, center

allLabel

string

up to 60 chars

band

string

yes

body

string

up to 500 chars

buttonColor

enum | string

bg, surface, panel, ink, muted, brand, accent

buttonInk

enum | string

bg, surface, panel, ink, muted, brand, accent

buttonLabel

string

up to 60 chars

buttonRadius

number | string

0–4000

buttonStyle

enum

solid, link, inside, inside-link

case

enum

none, upper, lower, capitalize

chooseTags

boolean

consent

object

consent.checkbox

boolean

consent.text

string

up to 500 chars

yes

days

number

1–90

fieldLabel

string

up to 80 chars

font

enum | string

heading, body, mono

frame

enum

card, none

greeting

string

up to 120 chars

greetingSignedOut

string

up to 160 chars

groups

string[]

1–120 chars

heading

string

up to 200 chars

headingFont

enum | string

heading, body, mono

headingLineHeight

number

0.8–2

headingSize

number | string | object

headingSize.lg

number | string

0–4000

headingSize.md

number | string

0–4000

headingSize.sm

number | string

0–4000

height

number | string

0–4000

image

string

imageDark

string

inactive

enum

pill, text

inactiveColor

enum | string

bg, surface, panel, ink, muted, brand, accent

inactivePadding

enum

tight, pill

inactiveWeight

number

100–900

inputFill

enum | string

bg, surface, panel, ink, muted, brand, accent

inputFontSize

number | string

0–4000

inputSize

number | string

0–4000

inputStyle

enum

box, underline

latency

string[]

1–120 chars

layout

enum

stacked, inline-row, field-row

limit

number

1–30

menu

boolean

metrics

string[]

1–64 chars

note

string

up to 300 chars

noteLink

object

noteLink.href

string

yes

noteLink.label

string

1–80 chars

yes

only

enum

incidents, maintenance

overflow

enum

wrap, scroll

padding

number | string

0–4000

phone

enum

row, dropdown

phoneFill

enum | string

bg, surface, panel, ink, muted, brand, accent

phoneHeight

number | string

0–4000

phoneInk

enum | string

bg, surface, panel, ink, muted, brand, accent

placeholder

string

up to 80 chars

radius

number | string

0–4000

releaseCategory

string

up to 120 chars

releaseFrom

string

releaseRange

enum

this-week, next-week, this-month, next-month, next-7-days, next-30-days, past-7-days, upcoming, custom

releaseTo

string

releaseView

enum

month, week, list

rss

enum

none, icon, link, button, icon-round

searchIconSize

number | string | object

searchIconSize.lg

number | string

0–4000

searchIconSize.md

number | string

0–4000

searchIconSize.sm

number | string

0–4000

searchSize

enum

md, lg

searchStyle

enum

default, compact, icon, icon-round

searchStylePhone

enum

icon, icon-round

searchWidth

number | string

0–4000

shortcutHint

boolean

showAll

boolean

showArchive

boolean

showOn

enum

front, category, both, landing, sorted

showRss

boolean

showSearch

boolean

size

number | string

0–4000

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

style

enum

pills, tabs, text, pills-filled, segmented, links, button, panel, checklist

tags

string[]

up to 60 chars

trackColor

enum | string

bg, surface, panel, ink, muted, brand, accent

weight

number

100–900

spaceCategories

Holds nothing. Markdown directive: categories.

Path

Type

Values / range

Required

Notes

columns

object

columns.lg

number

1–6

columns.md

number

1–6

columns.sm

number

1–6

emptyText

string

up to 300 chars

fields

enum[]

color, image, logo, count, description, topTopics, perWeek, children

heading

string

up to 200 chars

layout

enum

tiles, grid, list, nav, rows, table

limit

number

1–50

moreLink

object | enum

false

moreLink.arrowBox

boolean

moreLink.arrowPosition

enum

end, start

moreLink.background

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.border

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.height

number | string

0–4000

moreLink.href

string

moreLink.label

string

up to 80 chars

moreLink.position

enum | object

top, below

moreLink.position.lg

enum

top, below

moreLink.position.md

enum

top, below

moreLink.position.sm

enum

top, below

moreLink.radius

number | string

0–4000

moreLink.size

number | string

0–4000

moreLink.style

enum

link, button

moreLink.textColor

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.weight

number

100–900

moreLink.width

number | string

0–4000

nav

object

nav.collapsible

boolean

nav.counts

boolean

nav.marker

enum

swatch, icon, none

nav.nested

boolean

parent

string

up to 120 chars

showOn

enum

front, category, both, landing, sorted

space

string

up to 64 chars

table

object

table.columns

enum[]

category, count, perWeek, latest

table.descSize

number | string

0–4000

table.headers

boolean

table.latestLimit

number

1–6

table.titleSize

number | string

0–4000

table.topicColor

enum | string

bg, surface, panel, ink, muted, brand, accent

tile

object

tile.align

enum

start, center

tile.height

enum

square, auto

tile.logoSize

number

16–128

tile.nameSize

number | enum

h1, h2, h3, h4, h5, h6, body, small, code; 12–28

tile.nameWeight

number

400–800

tile.surface

enum

card, none

topTopics

number | object

0–5

topTopics.lg

number

0–5

topTopics.md

number

0–5

topTopics.sm

number

0–5

topTopicsRow

object

topTopicsRow.ink

enum

muted, ink

topTopicsRow.meta

enum[]

age, replies

topTopicsRow.size

number

12–18

spaceFeed

Holds nothing. Markdown directive: feed.

Path

Type

Values / range

Required

Notes

card

object

card.align

enum

start, spread, meta-end

card.byline

object

card.byline.avatars

boolean

card.byline.avatarSize

number

12–96

card.byline.color

enum | string

bg, surface, panel, ink, muted, brand, accent

card.byline.initials

boolean

card.byline.layout

enum

inline, stacked

card.byline.lineHeight

number

0.8–3

card.byline.names

boolean

card.byline.prefix

string

up to 20 chars

card.byline.role

boolean

card.byline.roleSeparator

string

up to 8 chars

card.byline.roleSize

number | string

0–4000

card.byline.size

number | string

0–4000

card.byline.stack

boolean

card.byline.weight

number

100–900

card.dateColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.dateFormat

enum

short, medium, long, full, day-month, day-month-short, month-year, month-year-short, iso, relative

card.dateIcon

enum

none, clock

card.dateLocale

string

up to 35 chars

card.dateStyle

enum

default, mono-caps, eyebrow

card.divider

enum | object

none, below, row

card.divider.lg

enum

none, below, row

card.divider.md

enum

none, below, row

card.divider.sm

enum

none, below, row

card.excerptColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.excerptLines

number

0–6

card.excerptSize

number | string | object

card.excerptSize.lg

number | string

0–4000

card.excerptSize.md

number | string

0–4000

card.excerptSize.sm

number | string

0–4000

card.excerptWeight

number

100–900

card.gap

number | string | object

card.gap.lg

number | string

0–4000

card.gap.md

number | string

0–4000

card.gap.sm

number | string

0–4000

card.image

object

card.image.aspect

enum | object

1:1, 4:3, 3:2, 16:9, 21:9, 2:1, original

card.image.aspect.lg

enum

1:1, 4:3, 3:2, 16:9, 21:9, 2:1, original

card.image.aspect.md

enum

1:1, 4:3, 3:2, 16:9, 21:9, 2:1, original

card.image.aspect.sm

enum

1:1, 4:3, 3:2, 16:9, 21:9, 2:1, original

card.image.bleed

boolean

card.image.bleedSm

enum

none, gutter, media

card.image.fit

enum

cover, contain

card.image.focus

enum

start, center, end

card.image.inset

number | string | object

card.image.inset.lg

number | string

0–4000

card.image.inset.md

number | string

0–4000

card.image.inset.sm

number | string

0–4000

card.image.overlayAlign

enum

start, center, end

card.image.overlayShade

number

0–1

card.image.position

enum

top, start, end, alternate, overlay, none

card.image.positionSm

enum

top, bottom, none, start, end

card.image.radius

number | string

0–4000

card.image.shadow

enum

none, sm, md, lg

card.image.size

number | string | object

card.image.size.lg

number | string

0–4000

card.image.size.md

number | string

0–4000

card.image.size.sm

number | string

0–4000

card.image.source

enum

cover, authorAvatar

card.image.span

enum

1/4, 1/3, 1/2, 2/3, 3/4

card.image.startAfter

enum

title

card.image.with

enum[]

date, byline, kicker

card.image.withAlign

enum

start, end

card.image.withInset

number | string

0–4000

card.image.withPlacement

enum

media, head

card.image.withRule

enum

none, start, bar

card.image.withSpan

enum

1/4, 1/3, 1/2, 2/3, 3/4

card.index

boolean

card.indexStyle

object

card.indexStyle.color

enum | string

bg, surface, panel, ink, muted, brand, accent

card.indexStyle.font

enum | string

heading, body, mono

card.indexStyle.placement

enum

above, inline

card.indexStyle.size

number | string

0–4000

card.indexStyle.suffix

string

up to 4 chars

card.indexStyle.weight

number

100–900

card.kicker

enum

firstTag, series, category, none

card.kickerStyle

object

card.kickerStyle.case

enum

none, upper

card.kickerStyle.color

enum | string

bg, surface, panel, ink, muted, brand, accent

card.kickerStyle.font

enum

mono, body, heading

card.kickerStyle.rule

enum

none, start, bar

card.kickerStyle.ruleGap

number | string

0–4000

card.kickerStyle.size

number | string | object

card.kickerStyle.size.lg

number | string

0–4000

card.kickerStyle.size.md

number | string

0–4000

card.kickerStyle.size.sm

number | string

0–4000

card.kickerStyle.swatch

boolean

card.kickerStyle.tracking

number

-0.1–0.5

card.kickerStyle.weight

number

100–900

card.meta

object

card.meta.color

enum | string

bg, surface, panel, ink, muted, brand, accent

card.meta.size

number | string | object

card.meta.size.lg

number | string

0–4000

card.meta.size.md

number | string

0–4000

card.meta.size.sm

number | string

0–4000

card.meta.tracking

number

-0.1–0.5

card.meta.weight

number

100–900

card.metaJoin

boolean

card.metaLayout

enum

inline, split

card.metaLine

enum[]

date, kicker, tags, byline, readTime, replies, views, likes, activity, lastPoster

card.metaSeparator

string

up to 8 chars

card.readMore

object

card.readMore.align

enum

start, center, end

card.readMore.arrow

boolean

card.readMore.color

enum | string

bg, surface, panel, ink, muted, brand, accent

card.readMore.label

string

up to 60 chars

card.readMore.size

number | string

0–4000

card.readMore.style

enum

link, button, button-solid

card.readMore.weight

number

100–900

card.replyPreviews

object

card.replyPreviews.avatar

boolean

card.runInSeparator

string

up to 4 chars

card.slotGap

number | string | object

card.slotGap.lg

number | string

0–4000

card.slotGap.md

number | string

0–4000

card.slotGap.sm

number | string

0–4000

card.slotGapAfter

record

keys: kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

card.slotGapAfter.*

number | string

0–4000

card.slotGapBefore

record

keys: kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

card.slotGapBefore.*

number | string

0–4000

card.slots

enum[]

kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

card.slotsSm

enum[]

kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

card.statIcons

boolean

card.stats

object

card.stats.fields

enum[]

replies, views, likes, activity

card.stats.heat

boolean

card.stats.icons

boolean

card.stats.position

enum

end

card.statusGlyph

boolean

card.subtitleColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.subtitleLineHeight

number | object

0.8–3

card.subtitleLineHeight.lg

number

0.8–3

card.subtitleLineHeight.md

number

0.8–3

card.subtitleLineHeight.sm

number

0.8–3

card.subtitleSize

number | string | object

card.subtitleSize.lg

number | string

0–4000

card.subtitleSize.md

number | string

0–4000

card.subtitleSize.sm

number | string

0–4000

card.subtitleWeight

number

100–900

card.surface

object

card.surface.background

enum | string

bg, surface, panel, ink, muted, brand, accent

card.surface.backgroundDark

enum | string

bg, surface, panel, ink, muted, brand, accent

card.surface.border

enum | enum | string

none, bg, surface, panel, ink, muted, brand, accent

card.surface.hover

enum

none, lift, border, underline

card.surface.ink

enum | string

bg, surface, panel, ink, muted, brand, accent

card.surface.minHeight

number | string | object

card.surface.minHeight.lg

number | string

0–4000

card.surface.minHeight.md

number | string

0–4000

card.surface.minHeight.sm

number | string

0–4000

card.surface.padding

number | string | object

card.surface.padding.lg

number | string

0–4000

card.surface.padding.md

number | string

0–4000

card.surface.padding.sm

number | string

0–4000

card.surface.radius

number | string | object

card.surface.radius.lg

number | string

0–4000

card.surface.radius.md

number | string

0–4000

card.surface.radius.sm

number | string

0–4000

card.surface.shadow

enum

none, sm, md, lg

card.surface.topStrip

object

card.surface.topStrip.fill

enum | enum | string

gradient, categoryColor, bg, surface, panel, ink, muted, brand, accent

card.surface.topStrip.gradient

tuple

card.surface.topStrip.gradient.0

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

card.surface.topStrip.gradient.1

enum | string

bg, surface, panel, ink, muted, brand, accent

yes

card.surface.topStrip.height

number

2–12

card.tagColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.tagLimit

number

1–12

card.tagMore

enum

fill, tag

card.tagSize

enum | object

sm, md, lg

card.tagSize.borderColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.tagSize.borderWidth

number

0–4

card.tagSize.height

number | string

0–4000

card.tagSize.padding

number | string

0–4000

card.tagSize.radius

number | string

0–4000

card.tagSize.size

number | string

0–4000

card.tagStyle

enum

chip, outline, outline-mono, text, eyebrow

card.titleColor

enum | string

bg, surface, panel, ink, muted, brand, accent

card.titleFont

enum | string

heading, body, mono

card.titleLineHeight

number | object

0.8–2

card.titleLineHeight.lg

number

0.8–2

card.titleLineHeight.md

number

0.8–2

card.titleLineHeight.sm

number

0.8–2

card.titleMaxWidth

number | string

0–4000

card.titleSize

enum | number | string | object

sm, md, lg, xl

card.titleSize.lg

enum | number | string

sm, md, lg, xl

card.titleSize.md

enum | number | string

sm, md, lg, xl

card.titleSize.sm

enum | number | string

sm, md, lg, xl

card.titleStyle

enum

block, run-in

card.titleTracking

number | object

-0.1–0.5

card.titleTracking.lg

number

-0.1–0.5

card.titleTracking.md

number

-0.1–0.5

card.titleTracking.sm

number

-0.1–0.5

card.titleWeight

number

100–900

card.verticalAlign

enum

start, center, end

card.when[]

object[]

card.when[].card

object

yes

Same keys as lead.card.

card.when[].tag

string

1–80 chars

yes

carousel

object

carousel.arrows

object

carousel.arrows.background

enum | string

bg, surface, panel, ink, muted, brand, accent

carousel.arrows.border

enum | string

bg, surface, panel, ink, muted, brand, accent

carousel.arrows.color

enum | string

bg, surface, panel, ink, muted, brand, accent

carousel.arrows.radius

number | string

0–4000

carousel.arrows.size

number | string

0–4000

carousel.bleed

enum

none, end, both

carousel.controls

enum

below-end, below-split, top-split, none, top-end, dots-start

carousel.count

object

carousel.count.color

enum | string

bg, surface, panel, ink, muted, brand, accent

carousel.count.size

number | string

0–4000

carousel.indicator

enum

count, dots, none

columnRule

object

columnRule.color

enum | string

bg, surface, panel, ink, muted, brand, accent

columnRule.style

enum

solid, dashed, dotted

yes

columnRule.width

number | string

0–4000

columns

object

columns.lg

number

1–6

columns.md

number

1–6

columns.offsets

number[]

0–400

columns.sm

number

1–6

controls

boolean

dedupe

boolean

emptyText

string

up to 300 chars

Shown when the feed is empty. Unset: the default message; "" hides the feed.

facets

string[]

facetStyle

enum

pills, tabs, segmented, select

fields

string[]

filter

object

filter.author

string

up to 120 chars

filter.bountied

boolean

filter.category

string

up to 120 chars

filter.context

enum

sameTag, sameSeries

filter.exclude

string[]

up to 64 chars

filter.excludeTags

string[]

up to 60 chars

filter.featured

boolean

filter.kind

enum

question, discussion

filter.lane

string

up to 60 chars

filter.pinned

boolean

filter.release

object

filter.release.category

string

up to 120 chars

filter.release.from

string

filter.release.range

enum

this-week, next-week, this-month, next-month, next-7-days, next-30-days, past-7-days, upcoming, custom

filter.release.status

enum[]

upcoming, released, delayed, cancelled, restocked

filter.release.to

string

filter.release.when

enum

upcoming, out, any

filter.section

string

up to 120 chars

filter.status

enum

solved, unanswered

filter.tagMatch

enum

any, all

filter.tags

string[]

up to 60 chars

filter.version

string

up to 60 chars

filter.when

enum

upcoming, past

frame

object

frame.border

boolean

frame.radius

number

0–24

frame.rules

boolean

gap

number | string | object

gap.lg

number | string

0–4000

gap.md

number | string

0–4000

gap.sm

number | string

0–4000

group

object

group.by

enum

none, day, month, year, field

group.collapsible

boolean

group.counts

boolean

group.field

string

group.sticky

boolean

group.style

enum

heading, divider, gutter-label, eyebrow

headGap

enum | number | string

none, xs, sm, md, lg

heading

string | object

heading.align

enum

start, center

heading.background

enum | string

bg, surface, panel, ink, muted, brand, accent

heading.case

enum

none, upper, lower, capitalize

heading.color

enum | string

bg, surface, panel, ink, muted, brand, accent

heading.font

enum | string

heading, body, mono

heading.lineHeight

number

0.8–3

heading.ruleColor

enum | string

bg, surface, panel, ink, muted, brand, accent

heading.ruleWidth

number | string

0–4000

heading.size

number | string | object

heading.size.lg

number | string

0–4000

heading.size.md

number | string

0–4000

heading.size.sm

number | string

0–4000

heading.spaceBelow

number | string | object

heading.spaceBelow.lg

number | string

0–4000

heading.spaceBelow.md

number | string

0–4000

heading.spaceBelow.sm

number | string

0–4000

heading.style

enum

plain, rule-top, pill

heading.subtitle

string | object

heading.subtitle.inline

boolean

heading.subtitle.text

string

up to 300 chars

heading.text

string

up to 200 chars

heading.underline

boolean

heading.underlineColor

enum | string

bg, surface, panel, ink, muted, brand, accent

heading.underlineWidth

number | string

0–4000

heading.weight

number

100–900

interstitials[]

object[]

interstitials[].after

number

1–50

yes

interstitials[].align

enum

start, center, end

interstitials[].case

enum

none, upper, lower, capitalize

interstitials[].color

enum | string

bg, surface, panel, ink, muted, brand, accent

interstitials[].font

enum | string

heading, body, mono

interstitials[].offsetY

number | string | object

interstitials[].offsetY.lg

number | string

0–4000

interstitials[].offsetY.md

number | string

0–4000

interstitials[].offsetY.sm

number | string

0–4000

interstitials[].overlay

boolean | object

interstitials[].overlay.lg

boolean

interstitials[].overlay.md

boolean

interstitials[].overlay.sm

boolean

interstitials[].size

number | string

0–4000

interstitials[].text

string

up to 500 chars

yes

interstitials[].weight

number

100–900

interstitials[].width

number | string

0–4000

layout

enum

feed, grid, magazine, rows, compact, tiles, cards-mixed, split, bento, carousel, timeline, table, accordion, lanes

layoutSm

enum

feed, grid, magazine, rows, compact, tiles, cards-mixed, split, bento, carousel, timeline, table, accordion, lanes

lead

object

lead.card

object

lead.card.align

enum

start, spread, meta-end

lead.card.byline

object

Same keys as card.byline.

lead.card.dateColor

enum | string

bg, surface, panel, ink, muted, brand, accent

lead.card.dateFormat

enum

short, medium, long, full, day-month, day-month-short, month-year, month-year-short, iso, relative

lead.card.dateIcon

enum

none, clock

lead.card.dateLocale

string

up to 35 chars

lead.card.dateStyle

enum

default, mono-caps, eyebrow

lead.card.divider

enum | object

none, below, row

lead.card.divider.lg

enum

none, below, row

lead.card.divider.md

enum

none, below, row

lead.card.divider.sm

enum

none, below, row

lead.card.excerptColor

enum | string

bg, surface, panel, ink, muted, brand, accent

lead.card.excerptLines

number

0–6

lead.card.excerptSize

number | string | object

lead.card.excerptSize.lg

number | string

0–4000

lead.card.excerptSize.md

number | string

0–4000

lead.card.excerptSize.sm

number | string

0–4000

lead.card.excerptWeight

number

100–900

lead.card.gap

number | string | object

lead.card.gap.lg

number | string

0–4000

lead.card.gap.md

number | string

0–4000

lead.card.gap.sm

number | string

0–4000

lead.card.image

object

Same keys as card.image.

lead.card.index

boolean

lead.card.indexStyle

object

Same keys as card.indexStyle.

lead.card.kicker

enum

firstTag, series, category, none

lead.card.kickerStyle

object

Same keys as card.kickerStyle.

lead.card.meta

object

Same keys as card.meta.

lead.card.metaJoin

boolean

lead.card.metaLayout

enum

inline, split

lead.card.metaLine

enum[]

date, kicker, tags, byline, readTime, replies, views, likes, activity, lastPoster

lead.card.metaSeparator

string

up to 8 chars

lead.card.readMore

object

Same keys as card.readMore.

lead.card.replyPreviews

object

lead.card.replyPreviews.avatar

boolean

lead.card.runInSeparator

string

up to 4 chars

lead.card.slotGap

number | string | object

lead.card.slotGap.lg

number | string

0–4000

lead.card.slotGap.md

number | string

0–4000

lead.card.slotGap.sm

number | string

0–4000

lead.card.slotGapAfter

record

keys: kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

lead.card.slotGapAfter.*

number | string

0–4000

lead.card.slotGapBefore

record

keys: kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

lead.card.slotGapBefore.*

number | string

0–4000

lead.card.slots

enum[]

kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

lead.card.slotsSm

enum[]

kicker, cover, date, title, subtitle, standfirst, byline, tags, readTime, replies, readMore, index, views, activity, likes, posters, lastPoster, askedIn, replyPreviews, stats, updated

lead.card.statIcons

boolean

lead.card.stats

object

Same keys as card.stats.

lead.card.statusGlyph

boolean

lead.card.subtitleColor

enum | string

bg, surface, panel, ink, muted, brand, accent

lead.card.subtitleLineHeight

number | object

0.8–3

lead.card.subtitleLineHeight.lg

number

0.8–3

lead.card.subtitleLineHeight.md

number

0.8–3

lead.card.subtitleLineHeight.sm

number

0.8–3

lead.card.subtitleSize

number | string | object

lead.card.subtitleSize.lg

number | string

0–4000

lead.card.subtitleSize.md

number | string

0–4000

lead.card.subtitleSize.sm

number | string

0–4000

lead.card.subtitleWeight

number

100–900

lead.card.surface

object

Same keys as card.surface.

lead.card.tagColor

enum | string

bg, surface, panel, ink, muted, brand, accent

lead.card.tagLimit

number

1–12

lead.card.tagMore

enum

fill, tag

lead.card.tagSize

enum | object

sm, md, lg

Same keys as card.tagSize.

lead.card.tagStyle

enum

chip, outline, outline-mono, text, eyebrow

lead.card.titleColor

enum | string

bg, surface, panel, ink, muted, brand, accent

lead.card.titleFont

enum | string

heading, body, mono

lead.card.titleLineHeight

number | object

0.8–2

lead.card.titleLineHeight.lg

number

0.8–2

lead.card.titleLineHeight.md

number

0.8–2

lead.card.titleLineHeight.sm

number

0.8–2

lead.card.titleMaxWidth

number | string

0–4000

lead.card.titleSize

enum | number | string | object

sm, md, lg, xl

lead.card.titleSize.lg

enum | number | string

sm, md, lg, xl

lead.card.titleSize.md

enum | number | string

sm, md, lg, xl

lead.card.titleSize.sm

enum | number | string

sm, md, lg, xl

lead.card.titleStyle

enum

block, run-in

lead.card.titleTracking

number | object

-0.1–0.5

lead.card.titleTracking.lg

number

-0.1–0.5

lead.card.titleTracking.md

number

-0.1–0.5

lead.card.titleTracking.sm

number

-0.1–0.5

lead.card.titleWeight

number

100–900

lead.card.verticalAlign

enum

start, center, end

lead.coverSpan

enum

lead, all

lead.divider

boolean

lead.maxWidth

number | string

0–4000

lead.minHeight

number | string | object

lead.minHeight.lg

number | string

0–4000

lead.minHeight.md

number | string

0–4000

lead.minHeight.sm

number | string

0–4000

lead.source

enum

auto, featured

featured: the newest featured item opens the feed, whatever limit is.

lead.span

number

1–5

lead.style

enum

stack, split, overlap, overlay, left-column, stack-split

lead.titleFont

enum | string

heading, body, mono

lead.titleLineHeight

number | object

0.8–2

lead.titleLineHeight.lg

number

0.8–2

lead.titleLineHeight.md

number

0.8–2

lead.titleLineHeight.sm

number

0.8–2

lead.titleSize

enum | number | string | object

sm, md, lg, xl

lead.titleSize.lg

enum | number | string

sm, md, lg, xl

lead.titleSize.md

enum | number | string

sm, md, lg, xl

lead.titleSize.sm

enum | number | string

sm, md, lg, xl

lead.titleTracking

number | object

-0.1–0.5

lead.titleTracking.lg

number

-0.1–0.5

lead.titleTracking.md

number

-0.1–0.5

lead.titleTracking.sm

number

-0.1–0.5

limit

number

1–50

listPatch

object

listPatch.anatomy

enum

table, cards, rows

listPatch.avatars

enum

none, op, posters

listPatch.avatarShape

enum

circle, square

listPatch.avatarSize

number

16–48

listPatch.byline

enum | object

none, end

listPatch.byline.at

enum

none, end

listPatch.byline.counts

enum

auto, show, hide

listPatch.categoryMark

enum

badge, tile

listPatch.columns

enum[]

posters, replies, views, likes, activity

listPatch.density

enum

compact, cozy, comfortable

listPatch.excerpt

enum

none, pinned, all

listPatch.excerptLines

number

1–4

listPatch.excerptSource

enum

excerpt, gist, gist-first

listPatch.header

object

listPatch.header.align

enum

start, center

listPatch.header.case

enum

upper, title, none

listPatch.header.labels

object

listPatch.header.labels.activity

string

up to 24 chars

listPatch.header.labels.likes

string

up to 24 chars

listPatch.header.labels.posters

string

up to 24 chars

listPatch.header.labels.replies

string

up to 24 chars

listPatch.header.labels.topic

string

up to 24 chars

listPatch.header.labels.views

string

up to 24 chars

listPatch.header.show

boolean

listPatch.heat

object

listPatch.heat.likes

number[]

0–…

listPatch.heat.replies

number[]

0–…

listPatch.heat.views

number[]

0–…

listPatch.kindChip

boolean

listPatch.meta

enum[]

author, asked, category, state, reputation

listPatch.metaSize

number | string

0–4000

listPatch.newTopicsBar

boolean

listPatch.paging

enum

pages, more, infinite

listPatch.phone

object

listPatch.phone.avatar

boolean

listPatch.phone.avatarSize

number

16–48

listPatch.phone.dividers

boolean

listPatch.phone.replies

enum

number, none

listPatch.phone.titleLines

number | enum

none; 1–3

listPatch.pin

enum

word, glyph

listPatch.pinPlacement

enum

inline, above

listPatch.posterOverlap

boolean

listPatch.rowLink

enum

first, unread

listPatch.stateGlyphs

boolean

listPatch.stats

object

listPatch.stats.acceptedStyle

enum

box, filled

listPatch.stats.fields

enum[]

votes, answers, views

listPatch.stats.phone

enum

strip, hide

listPatch.stats.position

enum

start, end

listPatch.stats.show

enum

box, strip, both, none

listPatch.stats.style

enum

text, pill

listPatch.stats.width

number

64–160

listPatch.statusGlyph

enum

check, checkbox, none

listPatch.tags

enum

text, chips

listPatch.tagsPosition

enum

meta, after-excerpt, inline

listPatch.thumbnails

enum

none, start, end

listPatch.thumbSize

number

40–160

listPatch.titleColor

string

listPatch.titleColorDark

string

listPatch.titleLines

number | object

1–4

listPatch.titleLines.lg

number

1–4

listPatch.titleLines.md

number

1–4

listPatch.titleLines.sm

number

1–4

listPatch.titleSize

number | string

0–4000

listPatch.unpinForMe

boolean

moreButton

object

moreButton.arrow

boolean

moreButton.arrowBox

boolean

moreButton.arrowPosition

enum

end, start

moreButton.background

enum | string

bg, surface, panel, ink, muted, brand, accent

moreButton.border

enum | string

bg, surface, panel, ink, muted, brand, accent

moreButton.color

enum | string

bg, surface, panel, ink, muted, brand, accent

moreButton.height

number | string

0–4000

moreButton.label

string

up to 60 chars

moreButton.radius

number | string

0–4000

moreButton.size

number | string

0–4000

moreButton.style

enum

solid, outline, link

moreButton.textColor

enum | string

bg, surface, panel, ink, muted, brand, accent

moreButton.weight

number

100–900

moreButton.width

number | string

0–4000

moreLink

object

moreLink.arrowBox

boolean

moreLink.arrowPosition

enum

end, start

moreLink.background

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.border

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.height

number | string

0–4000

moreLink.href

string

moreLink.label

string

up to 80 chars

moreLink.position

enum | object

top, below

moreLink.position.lg

enum

top, below

moreLink.position.md

enum

top, below

moreLink.position.sm

enum

top, below

moreLink.radius

number | string

0–4000

moreLink.size

number | string

0–4000

moreLink.style

enum

link, button

moreLink.textColor

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.weight

number

100–900

moreLink.width

number | string

0–4000

offset

number

0–50

pageSize

number

1–50

paginate

boolean | enum

more

path

string

pattern

number[]

1–6

period

enum

day, week, month, year, all

perView

object

perView.lg

number

1–6

perView.md

number

1–6

perView.sm

number

1–6

rest

enum | object

cards, text-only

rest.lg

enum

cards, text-only

rest.sm

enum

cards, text-only

rowGap

number | string | object

rowGap.lg

number | string

0–4000

rowGap.md

number | string

0–4000

rowGap.sm

number | string

0–4000

showOn

enum

front, category, both, landing, sorted

sort

enum

latest, top, hot, oldest, helpful, views, release

source

enum

space, courses

space

string

up to 64 chars

spaceAfter

number | string | object

spaceAfter.lg

number | string

0–4000

spaceAfter.md

number | string

0–4000

spaceAfter.sm

number | string

0–4000

spaceBefore

number | string | object

spaceBefore.lg

number | string

0–4000

spaceBefore.md

number | string

0–4000

spaceBefore.sm

number | string

0–4000

spaces

string[]

up to 64 chars

tabs

object

tabs.activeColor

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.activeFill

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.activeTextColor

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.allLabel

string

up to 60 chars

tabs.case

enum

none, upper, lower, capitalize

tabs.font

enum | string

heading, body, mono

tabs.height

number | string

0–4000

tabs.inactive

enum

pill, text

tabs.inactiveColor

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.inactivePadding

enum

tight, pill

tabs.inactiveWeight

number

100–900

tabs.lanes[]

object[]

tabs.lanes[].filter

object

Same keys as filter.

tabs.lanes[].label

string

1–60 chars

yes

tabs.lanes[].sort

enum

latest, top, hot, oldest, helpful, views, release

tabs.limit

number

1–30

tabs.overflow

enum

wrap, scroll

tabs.padding

number | string

0–4000

tabs.phone

enum

row, dropdown

tabs.phoneFill

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.phoneHeight

number | string

0–4000

tabs.phoneHoist

boolean

tabs.phoneInk

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.phoneStretch

boolean

tabs.radius

number | string

0–4000

tabs.size

number | string

0–4000

tabs.spaceBelow

number | string | object

tabs.spaceBelow.lg

number | string

0–4000

tabs.spaceBelow.md

number | string

0–4000

tabs.spaceBelow.sm

number | string

0–4000

tabs.style

enum

pills, tabs, text, pills-filled, segmented

tabs.tags

string[]

up to 60 chars

tabs.trackColor

enum | string

bg, surface, panel, ink, muted, brand, accent

tabs.weight

number

100–900

timeline

object

timeline.color

enum | string

bg, surface, panel, ink, muted, brand, accent

timeline.colorEnd

enum | string

bg, surface, panel, ink, muted, brand, accent

timeline.dot

number | string

0–4000

timeline.dotStyle

enum

fill, ring

timeline.endDot

boolean

timeline.gradient

enum

item, row

timeline.lineWidth

number

1–12

width

enum

column, wide, full

spaceLeaderboard

Holds nothing. Markdown directive: leaderboard.

Path

Type

Values / range

Required

Notes

fields

enum[]

avatar, level, likes, solutions, posts, points, handle, name

handleStyle

enum

replace, over-name

heading

string

up to 200 chars

limit

number

1–20

moreLink

object | enum

false

moreLink.arrowBox

boolean

moreLink.arrowPosition

enum

end, start

moreLink.background

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.border

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.height

number | string

0–4000

moreLink.href

string

moreLink.label

string

up to 80 chars

moreLink.position

enum | object

top, below

moreLink.position.lg

enum

top, below

moreLink.position.md

enum

top, below

moreLink.position.sm

enum

top, below

moreLink.radius

number | string

0–4000

moreLink.size

number | string

0–4000

moreLink.style

enum

link, button

moreLink.textColor

enum | string

bg, surface, panel, ink, muted, brand, accent

moreLink.weight

number

100–900

moreLink.width

number | string

0–4000

period

enum

week, month, all, points

rank

boolean | enum

start, end

rankSize

number

10–48

showOn

enum

front, category, both, landing, sorted

space

string

up to 64 chars

spacer

Holds nothing. Markdown directive: spacer.

Path

Type

Values / range

Required

Notes

height

enum | number | string | object

none, xs, sm, md, lg, xl

height.lg

enum | number | string

none, xs, sm, md, lg, xl; 0–800

height.md

enum | number | string

none, xs, sm, md, lg, xl; 0–800

height.sm

enum | number | string

none, xs, sm, md, lg, xl; 0–800

stats

Holds nothing. Markdown directive: stats.

Path

Type

Values / range

Required

Notes

animate

boolean

columns

number

2–6

items[]

object[]

yes

items[].decimals

number

0–3

items[].description

string

up to 400 chars

items[].label

string

up to 120 chars

yes

items[].prefix

string

up to 12 chars

items[].suffix

string

up to 12 chars

items[].value

number

-1000000000000–1000000000000

yes

layout

enum

row, grid, cards

step

Holds blocks (required). Markdown directive: step.

Path

Type

Values / range

Required

Notes

aside

boolean

badges

string[]

up to 24 chars

icon

string

up to 80 chars

An icon name from GET /icons?for=card (see the CardIconName enum) or a short glyph such as an emoji, drawn as text. Any other bare word is refused: the reader would print it. A glyph name from GET /icons, or one emoji.

title

string

stepper

Holds blocks (required). Markdown directive: stepper.

Path

Type

Values / range

Required

Notes

collapsible

boolean

headingLevel

enum

2, 3, 4

titleSize

number

12–32

story

Holds blocks (required). Markdown directive: story.

Path

Type

Values / range

Required

Notes

label

string

up to 120 chars

mediaWidth

enum

narrow, half, wide

side

enum

start, end

top

number

0–240

storyStep

Holds blocks (required). Markdown directive: scene.

Path

Type

Values / range

Required

Notes

alt

string

up to 300 chars

caption

string

up to 300 chars

media

string

swatch

Holds nothing. Markdown directive: swatch.

Path

Type

Values / range

Required

Notes

colors[]

object[]

yes

colors[].name

string

up to 40 chars

yes

colors[].note

string

up to 80 chars

colors[].value

string

yes

layout

enum

grid, row

systemStatus

Holds nothing. Markdown directive: systemStatus.

Path

Type

Values / range

Required

Notes

component

string

href

string

up to 2048 chars

orgId

enum | string

``

yes

size

enum

s, m, l

spaceId

enum | string

``

yes

style

enum

status, uptime

theme

enum

light, dark, auto

tab

Holds blocks (required). Markdown directive: tab.

Path

Type

Values / range

Required

Notes

title

string

yes

table

Holds blocks (required).

Path

Type

Values / range

Required

Notes

codeInk

string[]

codeInkDark

string[]

collapseAfter

number

3–200

more

object

more.align

enum

start, center

more.background

string

more.backgroundDark

string

more.case

enum

none, upper

more.fade

boolean

more.font

enum

ui, mono

more.ink

string

more.inkDark

string

more.style

enum

outline, solid

stickyHeader

boolean

wrap

enum

auto, wrap, nowrap

tableCell

Holds blocks (required).

Path

Type

Values / range

Required

Notes

align

enum

left, center, right

colspan

number

colwidth

number[]

header

boolean

rowspan

number

tableHeader

Holds blocks (required).

Path

Type

Values / range

Required

Notes

align

enum

left, center, right

colspan

number

colwidth

number[]

rowspan

number

tableRow

Holds blocks (required).

No attributes of its own.

tabs

Holds blocks (required). Markdown directive: tabs.

Path

Type

Values / range

Required

Notes

active

object

active.color

string

active.colorDark

string

active.underline

boolean

asCodeGroup

enum

auto, false

orientation

enum

horizontal, vertical

overflow

enum

wrap, scroll

style

enum

underline, pill

syncKey

string

tabStyle

enum

underline, pill

variant

enum

underline, card

testimonials

Holds nothing. Markdown directive: testimonials.

Path

Type

Values / range

Required

Notes

autoplay

boolean

columns

number

1–4

interval

number

2000–30000

items[]

object[]

yes

items[].author

string

up to 120 chars

yes

items[].avatar

string

items[].href

string

items[].logo

string

items[].quote

string

up to 2000 chars

yes

items[].rating

number

1–5

items[].role

string

up to 160 chars

layout

enum

grid, carousel, single

update

Holds blocks (required). Markdown directive: update.

Path

Type

Values / range

Required

Notes

date

string

yes

tags

string[]

updates

Holds blocks (required). Markdown directive: updates.

Path

Type

Values / range

Required

Notes

format

enum

full, short, list

video

Holds nothing. Markdown directive: video.

Path

Type

Values / range

Required

Notes

aspectRatio

enum

16:9, 4:3, 1:1, 9:16, 21:9

autoplay

boolean

caption

string

up to 2000 chars

chapters[]

object[]

chapters[].at

number

0–86400

yes

chapters[].title

string

1–120 chars

yes

completeAt

number

0–100

controls

boolean

loop

boolean

muted

boolean

poster

string

resume

boolean

speed

boolean

src

string

yes

transcript

string

up to 200000 chars

transcriptOpen

boolean

walkthrough

Holds blocks (required). Markdown directive: walkthrough.

Path

Type

Values / range

Required

Notes

code

string

up to 100000 chars

yes

language

string

up to 40 chars

title

string

up to 200 chars

walkthroughStep

Holds blocks (required). Markdown directive: step.

Path

Type

Values / range

Required

Notes

lines

string

up to 200 chars

yes

title

string

up to 200 chars

Attributes every block takes

Path

Type

Values / range

Required

Notes

anchor

string

className

string

hook

string

audience

enum

motion

enum

motionDelay

number

goal

string

experiment

string

abVariant

enum

abWeight

number

orderSm

enum

hideAt

enum[]

fxClip

enum

fxHover

enum

fxLayer

number

fxStick

number

fxRotate

number

fxScale

number

fxX

number

fxY

number

fxBlur

number

fxGray

number

fxBright

number

fxOpacity

number

Marks

A mark styles a run of text: {"type": "text", "text": "…", "marks": [{"type": "link", "attrs": {"href": "…"}}]}.

Mark

Attributes

bold

—

italic

—

code

—

strike

—

underline

—

highlight

—

link

href: string, note: string (optional)

spoiler

—

footnote

note: string (optional)

annotation

note: string

kbd

—

sidenote

note: string

textColor

color: string

mathInline

—

badge

variant: default | note | tip | caution | danger | success | brand (optional)

icon

name: string (optional)

localDate

datetime: string, tz: string (optional)

In the API

Every operation below is also reachable from the other surfaces without a dedicated command. forumulate api <Operation> calls it from the CLI, the JavaScript SDK has a typed method for each one (the last column names it; the Python and Go clients are generated from the same spec), and an agent reaches the organization-scoped ones through the MCP call_api tool. Where a CLI command or MCP tool exists too, the last column names it. Operation names link to the API reference.

Icons

Operation

Request

What it does

Shortcuts

Icons_list

GET /icons

List icons

client.meta.icons.list()

The Forumulate teamUpdated