List elements render ordered (numbered) or unordered (bullet) lists with support for nested sub-lists.
Basic list
{
"type": "list",
"ordered": false,
"items": ["First item", "Second item", "Third item"]
}
Ordered list:
{
"type": "list",
"ordered": true,
"items": ["Step one", "Step two", "Step three"]
}
Properties
| Property | Type | Required | Default | Description |
|---|
type | string | Yes | — | Must be "list" |
id | string | No | — | Unique identifier. Auto-generated if not provided. Max: 100 chars. |
ordered | boolean | No | false | true = numbered list, false = bullet list. |
items | array | Yes | — | Array of list items. Min: 1, max: 50 items. |
spacing | object | No | — | Spacing override with before and after in pt (0–100). |
List items
Each item in the items array can be either a simple string or an object with nested sub-items.
Simple string items
{ "type": "list", "items": ["Apple", "Banana", "Cherry"] }
Each string item: 1–1000 characters. Supports inline formatting (**bold**, *italic*, {{varName}}, etc.).
Object items with nesting
Use object items to create nested sub-lists:
{
"type": "list",
"ordered": true,
"items": [
"Simple item",
{
"text": "Item with sub-list",
"items": ["Sub-item A", "Sub-item B"]
},
{
"text": "Item with mixed nesting",
"children": {
"ordered": false,
"items": ["Unordered sub-item", "Another sub-item"]
}
}
]
}
Object item properties
| Property | Type | Required | Description |
|---|
text | string | Yes | Item text content. 1–1000 chars. Supports inline formatting. |
items | array | No | Legacy nested items (inherit parent’s ordered type). Max: 20 items. |
children | object | No | Nested list with its own ordered property (supports mixed ordered/unordered). |
Children object
The children property allows a nested sub-list with a different list type than the parent:
| Property | Type | Required | Description |
|---|
ordered | boolean | Yes | true = numbered, false = bullet. |
items | array | Yes | Array of list items (same format as parent). Max: 20 items. |
Use children instead of items when you need the nested list to have a different type (e.g., bullet sub-list inside a numbered list). The legacy items format always inherits the parent’s ordered type.
List item text supports the same inline formatting as text elements:
{
"type": "list",
"items": [
"This is **bold** and *italic* text",
"This is ++underlined++ and ~~strikethrough~~",
"This is ==highlighted== or ==colored=={#FFCC00}",
"Inline code: `render()`",
"Visit [our website](https://example.com)",
"Variable: {{companyName}}",
"Citation: @[smith2023, p. 42]",
"Abbreviation: ~API~"
]
}
Complete example
{
"document": { "type": "pdf", "size": "A4" },
"variables": { "projectName": "Autype" },
"sections": [
{
"type": "flow",
"content": [
{ "type": "h1", "text": "Project Plan" },
{
"type": "list",
"ordered": true,
"items": [
{
"text": "Phase 1: Research",
"children": {
"ordered": false,
"items": ["Market analysis", "Competitor review", "User interviews"]
}
},
{
"text": "Phase 2: Development",
"children": {
"ordered": false,
"items": ["Backend ~API~", "Frontend UI", "Testing"]
}
},
"Phase 3: Launch {{projectName}}"
]
},
{ "type": "h2", "text": "Key Features" },
{
"type": "list",
"ordered": false,
"items": [
"**Fast** rendering engine",
"*Multiple* output formats (PDF, DOCX, ODT)",
"Template **variable** support"
]
}
]
}
]
}