Skip to main content

Documentation Index

Fetch the complete documentation index at: https://duomi.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Text Blocks

Use a text block when the template slide contains a textbox region and your request needs to fill it with a heading, paragraph, bullet list, or a combination of those elements. The template supplies placement and default styling. The payload supplies the text content and optional text-block formatting.

Text Surfaces

There are three places text can appear in a generation request.
SurfacePayload locationUse
Slide-level texttitle, subtitle, header, footer, footnotePopulate standard slide placeholders
Text blockscontent.blocks[].textPopulate textbox regions with section text or bullets
Table-cell textcontent.blocks[].table.table.rows[].cells[].valuePut text, paragraphs, or bullets inside table cells
Table-cell text is part of a Table Block. It is not a type: "text" block, even when a table cell contains multiple paragraphs or bullets.

Basic Shape

Inside slide_data.content.blocks, a text block looks like this:
{
  "type": "text",
  "text": {
    "header": "Management Focus",
    "text": "The renewal plan is stable, but the team should prioritize accounts with sponsor gaps.",
    "bullets": [
      "Confirm executive sponsors before renewal conversations",
      "Pull forward adoption reviews for at-risk accounts",
      "Use expansion-ready accounts for Q2 pipeline creation"
    ]
  }
}
A text block can use any combination of header, text, and bullets.
ShapeResult
header onlySection heading
text onlyParagraph
bullets onlyBullet list
header + bulletsTitled bullet list
header + text + bulletsFull text section
Text renders in this order: header, then text, then bullets.

Bullets

bullets is an array of strings. Each string renders as one bullet paragraph in the matching textbox region.
{
  "type": "text",
  "text": {
    "bullets": [
      "Revenue beat plan",
      "Gross retention improved",
      "Expansion pipeline increased"
    ]
  }
}
For bullets inside a table cell, use the table-cell value shape documented in Table Blocks.

Text Blocks With Tables

Some template layouts contain both a table placeholder and a textbox placeholder. In that case, send one table block and one text block in the same content.blocks array.
{
  "content": {
    "blocks": [
      {
        "type": "table",
        "table": {
          "table": {
            "rows": []
          }
        }
      },
      {
        "type": "text",
        "text": {
          "header": "Commentary",
          "bullets": [
            "At-risk accounts need sponsor alignment",
            "Expansion-ready accounts should move into pipeline review"
          ]
        }
      }
    ]
  }
}
The table block owns the row and cell content. The text block owns the separate textbox content.

Slide-Level Text

Top-level text fields populate matching slide placeholders.
{
  "title": "Q2 2026 Portfolio Review",
  "subtitle": "Investment Committee Draft",
  "header": "Internal",
  "footer": "Confidential",
  "footnote": "Source: CRM export, April 2026"
}
FieldTypical use
titleMain slide title
subtitleSubtitle or supporting title-slide text
headerHeader area text
footerFooter area text
footnoteSource, caveat, or footnote text

Text Block Formatting

Use block-level formatting when one text block should differ from the rest of the slide.
{
  "type": "text",
  "text": {
    "header": "Management Actions",
    "text": "The team should focus on accounts with renewal risk.",
    "bullets": [
      "Schedule renewal risk review",
      "Pull forward adoption readout",
      "Confirm executive sponsor"
    ],
    "header_format": {
      "font_name": "Arial",
      "font_size": 12,
      "bold": true
    },
    "text_format": {
      "font_name": "Arial",
      "font_size": 10
    },
    "bullets_format": {
      "font_name": "Arial",
      "font_size": 10
    }
  }
}
For text blocks, use header_format, text_format, and bullets_format. The current text-block renderer applies font_name, font_size, and bold overrides. Unspecified values inherit from the template textbox where available. Use slide_format.textbox to set defaults for all text blocks on the slide.
{
  "slide_format": {
    "textbox": {
      "header": {
        "font_name": "Arial",
        "font_size": 12,
        "bold": true
      },
      "text": {
        "font_name": "Arial",
        "font_size": 10
      },
      "bullets": {
        "font_name": "Arial",
        "font_size": 10
      }
    }
  }
}
For richer table-cell text styling, including per-cell and per-paragraph format templates, use Table Blocks.

Layouts

For a single-column layout, content is one column object:
{
  "title": "Executive Summary",
  "content": {
    "blocks": [
      {
        "type": "text",
        "text": {
          "header": "Key Findings",
          "bullets": [
            "Revenue beat plan",
            "Gross retention improved",
            "Expansion pipeline increased"
          ]
        }
      }
    ]
  }
}
For a two-column layout, content is an array. Each object is one column. The optional column header renders only when the template has matching LHS_header and RHS_header marker textboxes. LHS means left-hand side; RHS means right-hand side.
{
  "title": "Management Priorities",
  "content": [
    {
      "header": "Near term",
      "blocks": [
        {
          "type": "text",
          "text": {
            "bullets": [
              "Close Q2 renewal plan",
              "Escalate at-risk accounts"
            ]
          }
        }
      ]
    },
    {
      "header": "Next quarter",
      "blocks": [
        {
          "type": "text",
          "text": {
            "bullets": [
              "Expand sponsor mapping",
              "Refresh adoption reporting"
            ]
          }
        }
      ]
    }
  ]
}

Fitting

Generation can shrink textbox fonts when text is too long for the available space.
{
  "options": {
    "textbox_min_font_size": 8,
    "auto_paginate_tables": false
  }
}
textbox_min_font_size sets the smallest allowed font size during fit optimization. Set auto_paginate_tables: false for layouts that combine a table block and a text block. Table auto-pagination is only for table-only layouts.

Complete Example

{
  "title": "Customer Health Summary",
  "footnote": "Source: CRM export, April 2026",
  "slide_format": {
    "textbox": {
      "header": {
        "font_name": "Arial",
        "font_size": 12,
        "bold": true
      },
      "text": {
        "font_name": "Arial",
        "font_size": 10
      },
      "bullets": {
        "font_name": "Arial",
        "font_size": 10
      }
    }
  },
  "content": {
    "blocks": [
      {
        "type": "table",
        "table": {
          "table": {
            "table_format": {
              "default": {
                "text": {
                  "font_name": "Arial",
                  "font_size": 10,
                  "color": "#111827"
                }
              },
              "header_row": {
                "text": {
                  "font_name": "Arial",
                  "font_size": 10,
                  "bold": true,
                  "color": "#FFFFFF"
                },
                "cell": {
                  "background_color": "#DC0000"
                }
              }
            },
            "rows": [
              {
                "is_header": true,
                "cells": [
                  { "value": "Customer" },
                  { "value": "Health" },
                  { "value": "Signal" },
                  { "value": "Action" }
                ]
              },
              {
                "cells": [
                  { "value": "Acme Corp" },
                  { "value": "Healthy" },
                  { "value": "Expansion-ready" },
                  { "value": "Send proposal" }
                ]
              },
              {
                "cells": [
                  { "value": "TechFlow Inc" },
                  { "value": "Neutral" },
                  { "value": "Sponsor gap" },
                  { "value": "Schedule review" }
                ]
              },
              {
                "cells": [
                  { "value": "DataSync Ltd" },
                  { "value": "At risk" },
                  { "value": "Usage down" },
                  { "value": "Escalate owner" }
                ]
              },
              {
                "cells": [
                  { "value": "CloudFirst" },
                  { "value": "Healthy" },
                  { "value": "New champion" },
                  { "value": "Expand use case" }
                ]
              },
              {
                "cells": [
                  { "value": "Innovate Labs" },
                  { "value": "Healthy" },
                  { "value": "High adoption" },
                  { "value": "Confirm expansion" }
                ]
              },
              {
                "cells": [
                  { "value": "SecureNet" },
                  { "value": "Neutral" },
                  { "value": "Procurement delay" },
                  { "value": "Align timeline" }
                ]
              },
              {
                "cells": [
                  { "value": "GrowthMetrics" },
                  { "value": "At risk" },
                  { "value": "Low engagement" },
                  { "value": "Create rescue plan" }
                ]
              },
              {
                "cells": [
                  { "value": "Nexus Digital" },
                  { "value": "Healthy" },
                  { "value": "Expansion-ready" },
                  { "value": "Send proposal" }
                ]
              },
              {
                "cells": [
                  { "value": "Velocity Systems" },
                  { "value": "Neutral" },
                  { "value": "Security review" },
                  { "value": "Unblock buyer" }
                ]
              },
              {
                "cells": [
                  { "value": "PrimeStack" },
                  { "value": "At risk" },
                  { "value": "Champion left" },
                  { "value": "Map sponsor" }
                ]
              },
              {
                "cells": [
                  { "value": "Quantum Analytics" },
                  { "value": "Healthy" },
                  { "value": "Usage growth" },
                  { "value": "Scope add-on" }
                ]
              },
              {
                "cells": [
                  { "value": "BlueWave Tech" },
                  { "value": "Neutral" },
                  { "value": "Budget review" },
                  { "value": "Confirm timing" }
                ]
              },
              {
                "cells": [
                  { "value": "Apex Solutions" },
                  { "value": "Healthy" },
                  { "value": "New team rollout" },
                  { "value": "Track adoption" }
                ]
              }
            ]
          }
        }
      },
      {
        "type": "text",
        "text": {
          "header": "Management Focus",
          "text": "The renewal plan is stable, but the team should prioritize accounts with sponsor gaps or declining usage.",
          "bullets": [
            "Confirm executive sponsors before renewal conversations",
            "Pull forward adoption reviews for at-risk accounts",
            "Use expansion-ready accounts for Q2 pipeline creation"
          ],
          "header_format": {
            "font_name": "Arial",
            "font_size": 12,
            "bold": true
          },
          "text_format": {
            "font_name": "Arial",
            "font_size": 10
          },
          "bullets_format": {
            "font_name": "Arial",
            "font_size": 10
          }
        }
      }
    ]
  }
}
The visual example below is generated from the complete payload above. It shows a table block filling the table region and a separate text block filling the bottom textbox region.
Template slide with a table placeholder and a bullet placeholder below it.
Generated customer health slide with a table and a Management Focus text block with bullets below it.

Presentation Generation

Generate one slide or a full deck.

Table Blocks

Author table-cell text, rows, formatting, and pagination.

Chart Blocks

Author bar and column charts.