Iteration Layer
Sheet Generation

Generate XLSX, CSV, and Markdown spreadsheets from structured JSON

Define columns, rows, and cell data as JSON — get back an XLSX workbook with full formatting, a CSV file for data pipelines, or a Markdown table for docs. Pipe document extraction output directly into formatted spreadsheets.

No credit card required — start with free trial credits

Zero data retention · GDPR Made & hosted in the EU $65 free trial credits No credit card required 14-day money-back guarantee

One output feeds the next

Sheet Generation is part of a complete content pipeline. One key, one credit pool, and structured JSON responses designed to chain together.

Fits into your existing stack

Native SDKs for Node, Python, and Go. OpenAPI spec for everything else. MCP server for AI agents and Claude Code skills. n8n community node for visual workflows.

Mix and match freely

Extract data from a document, generate visuals from the results, then compile everything into a finished report. Mix, match, and build your own pipeline.

Three steps to your first spreadsheet

01

Define your columns

Specify column names and optional widths. Columns define the header row and set the structure for your spreadsheet.

  • Column names as display headers
  • Optional column widths for XLSX
  • Multiple sheets for XLSX and Markdown
02

Add row data

Provide rows as positional arrays of cells. Each cell has a value, optional format (currency, percentage, date, etc.), optional style overrides, and optional row/column spans.

  • 9 cell formats: text, number, decimal, currency, percentage, date, datetime, time, custom
  • Per-cell style overrides for font, color, alignment
  • Row and column spans for merged cells, plus Excel formulas
03

Get your spreadsheet

Receive the generated spreadsheet as base64-encoded JSON. CSV for data pipelines, Markdown for documentation, XLSX for Excel with full formatting.

  • CSV: single sheet, RFC 4180 compliant
  • Markdown: multiple sheets as headed tables
  • XLSX: native formulas, merged cells, formatting, custom fonts

Templates As Code

Define columns, rows, and styles as JSON. The same input produces identical spreadsheets every time — deterministic output you can rely on.

Three Output Formats

Generate CSV for data interchange, Markdown tables for docs and LLMs, or XLSX for Excel with full formatting — all from the same input.

Rich Formatting

Cell-level styles with fonts, colors, alignment, and number formats. Base styles plus per-cell overrides. Custom fonts via base64 upload.

Formulas & Merged Cells

Native Excel formulas in XLSX, server-evaluated formulas for CSV and Markdown. Merge cells for headers and grouped data.

Real-world pipelines, ready to ship

Each recipe chains multiple APIs into a complete workflow. Pick one, tweak it, and deploy — or use it as a starting point for your own pipeline.

One n8n node for your entire pipeline

Most n8n document workflows chain three or four separate services. The Iteration Layer community node covers extraction, transformation, and generation in a single install — wire up multi-step pipelines visually instead of writing glue code.

Start building right now

One API call, one credit deducted. Chains naturally with our other APIs — pipe the output of one into the next without glue code. You'll be up and running in minutes.

  • Full OpenAPI 3.1 specification available for code generation and IDE integration.
  • MCP server support for seamless integration with AI agents and tools.
  • Comprehensive documentation with examples for every field type and edge case.
Input Preview
{
  "format": "xlsx",
  "styles": {
    "header": {
      "is_bold": true,
      "background_color": "#4472C4",
      "font_color": "#FFFFFF"
    }
  },
  "sheets": [
    {
      "name": "FY2026 Pipeline",
      "columns": [
        { "name": "Region", "width": 18 },
        { "name": "Account Executive", "width": 24 },
        { "name": "Plan", "width": 18 },
        { "name": "Stage", "width": 16 },
        { "name": "ARR", "width": 16 },
        { "name": "Renewal", "width": 16 }
      ],
      "rows": [
        [{ "value": "Germany" }, { "value": "Mia Fischer" }, { "value": "Enterprise" }, { "value": "Contract" }, { "value": 182000, "format": "currency", "currency_code": "EUR" }, { "value": "2026-11-30", "format": "date" }],
        [{ "value": "France" }, { "value": "Lucas Moreau" }, { "value": "Growth" }, { "value": "Security Review" }, { "value": 96000, "format": "currency", "currency_code": "EUR" }, { "value": "2026-09-15", "format": "date" }],
        [{ "value": "Spain" }, { "value": "Sofia Ramos" }, { "value": "Growth" }, { "value": "Negotiation" }, { "value": 74000, "format": "currency", "currency_code": "EUR" }, { "value": "2026-10-04", "format": "date" }],
        [{ "value": "United States" }, { "value": "Ava Thompson" }, { "value": "Enterprise" }, { "value": "Pilot" }, { "value": 265000, "format": "currency", "currency_code": "USD" }, { "value": "2026-12-20", "format": "date" }],
        [{ "value": "Canada" }, { "value": "Noah Bennett" }, { "value": "Startup" }, { "value": "Proposal" }, { "value": 42000, "format": "currency", "currency_code": "USD" }, { "value": "2026-08-05", "format": "date" }],
        [{ "value": "Mexico" }, { "value": "Camila Ortiz" }, { "value": "Growth" }, { "value": "Qualified" }, { "value": 58000, "format": "currency", "currency_code": "USD" }, { "value": "2026-09-21", "format": "date" }],
        [{ "value": "Singapore" }, { "value": "Ethan Tan" }, { "value": "Enterprise" }, { "value": "Procurement" }, { "value": 118000, "format": "currency", "currency_code": "USD" }, { "value": "2026-10-12", "format": "date" }],
        [{ "value": "Australia" }, { "value": "Chloe Walsh" }, { "value": "Growth" }, { "value": "Discovery" }, { "value": 64000, "format": "currency", "currency_code": "USD" }, { "value": "2026-07-28", "format": "date" }],
        [{ "value": "Japan" }, { "value": "Haruto Sato" }, { "value": "Enterprise" }, { "value": "Legal" }, { "value": 143000, "format": "currency", "currency_code": "USD" }, { "value": "2026-11-08", "format": "date" }],
        [{ "value": "South Korea" }, { "value": "Min Seo Park" }, { "value": "Growth" }, { "value": "Demo" }, { "value": 51000, "format": "currency", "currency_code": "USD" }, { "value": "2026-08-19", "format": "date" }]
      ]
    }
  ]
}
Output Preview
Region Account Executive Plan Stage ARR Renewal
GermanyMia FischerEnterpriseContractEUR 182,0002026-11-30
FranceLucas MoreauGrowthSecurity ReviewEUR 96,0002026-09-15
SpainSofia RamosGrowthNegotiationEUR 74,0002026-10-04
United StatesAva ThompsonEnterprisePilotUSD 265,0002026-12-20
CanadaNoah BennettStartupProposalUSD 42,0002026-08-05
MexicoCamila OrtizGrowthQualifiedUSD 58,0002026-09-21
SingaporeEthan TanEnterpriseProcurementUSD 118,0002026-10-12
AustraliaChloe WalshGrowthDiscoveryUSD 64,0002026-07-28
JapanHaruto SatoEnterpriseLegalUSD 143,0002026-11-08
South KoreaMin Seo ParkGrowthDemoUSD 51,0002026-08-19
Request
curl -X POST \
  https://api.iterationlayer.com/sheet-generation/v1/generate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "format": "xlsx",
  "styles": {
    "header": {
      "is_bold": true,
      "background_color": "#4472C4",
      "font_color": "#FFFFFF"
    }
  },
  "sheets": [
    {
      "name": "FY2026 Pipeline",
      "columns": [
        {
          "name": "Region",
          "width": 18
        },
        {
          "name": "Account Executive",
          "width": 24
        },
        {
          "name": "Plan",
          "width": 18
        },
        {
          "name": "Stage",
          "width": 16
        },
        {
          "name": "ARR",
          "width": 16
        },
        {
          "name": "Renewal",
          "width": 16
        }
      ],
      "rows": [
        [
          {
            "value": "Germany"
          },
          {
            "value": "Mia Fischer"
          },
          {
            "value": "Enterprise"
          },
          {
            "value": "Contract"
          },
          {
            "value": 182000,
            "format": "currency",
            "currency_code": "EUR"
          },
          {
            "value": "2026-11-30",
            "format": "date"
          }
        ],
        [
          {
            "value": "France"
          },
          {
            "value": "Lucas Moreau"
          },
          {
            "value": "Growth"
          },
          {
            "value": "Security Review"
          },
          {
            "value": 96000,
            "format": "currency",
            "currency_code": "EUR"
          },
          {
            "value": "2026-09-15",
            "format": "date"
          }
        ],
        [
          {
            "value": "United States"
          },
          {
            "value": "Ava Thompson"
          },
          {
            "value": "Enterprise"
          },
          {
            "value": "Pilot"
          },
          {
            "value": 265000,
            "format": "currency",
            "currency_code": "USD"
          },
          {
            "value": "2026-12-20",
            "format": "date"
          }
        ],
        [
          {
            "value": "Canada"
          },
          {
            "value": "Noah Bennett"
          },
          {
            "value": "Startup"
          },
          {
            "value": "Proposal"
          },
          {
            "value": 42000,
            "format": "currency",
            "currency_code": "USD"
          },
          {
            "value": "2026-08-05",
            "format": "date"
          }
        ],
        [
          {
            "value": "Singapore"
          },
          {
            "value": "Ethan Tan"
          },
          {
            "value": "Enterprise"
          },
          {
            "value": "Procurement"
          },
          {
            "value": 118000,
            "format": "currency",
            "currency_code": "USD"
          },
          {
            "value": "2026-10-12",
            "format": "date"
          }
        ],
        [
          {
            "value": "Australia"
          },
          {
            "value": "Chloe Walsh"
          },
          {
            "value": "Growth"
          },
          {
            "value": "Discovery"
          },
          {
            "value": 64000,
            "format": "currency",
            "currency_code": "USD"
          },
          {
            "value": "2026-07-28",
            "format": "date"
          }
        ]
      ]
    }
  ]
}'
Response
{
  "success": true,
  "data": {
    "buffer": "UEsDBBQAAAAIAA...",
    "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  }
}
Request
import { IterationLayer } from "iterationlayer";

const client = new IterationLayer({
  apiKey: "YOUR_API_KEY",
});

const result = await client.generateSheet({
  format: "xlsx",
  styles: {
    header: {
      is_bold: true,
      background_color: "#4472C4",
      font_color: "#FFFFFF",
    },
  },
  sheets: [
    {
      name: "FY2026 Pipeline",
      columns: [
        {
          name: "Region",
          width: 18,
        },
        {
          name: "Account Executive",
          width: 24,
        },
        {
          name: "Plan",
          width: 18,
        },
        {
          name: "Stage",
          width: 16,
        },
        {
          name: "ARR",
          width: 16,
        },
        {
          name: "Renewal",
          width: 16,
        },
      ],
      rows: [
        [
          {
            value: "Germany",
          },
          {
            value: "Mia Fischer",
          },
          {
            value: "Enterprise",
          },
          {
            value: "Contract",
          },
          {
            value: 182000,
            format: "currency",
            currency_code: "EUR",
          },
          {
            value: "2026-11-30",
            format: "date",
          },
        ],
        [
          {
            value: "France",
          },
          {
            value: "Lucas Moreau",
          },
          {
            value: "Growth",
          },
          {
            value: "Security Review",
          },
          {
            value: 96000,
            format: "currency",
            currency_code: "EUR",
          },
          {
            value: "2026-09-15",
            format: "date",
          },
        ],
        [
          {
            value: "Spain",
          },
          {
            value: "Sofia Ramos",
          },
          {
            value: "Growth",
          },
          {
            value: "Negotiation",
          },
          {
            value: 74000,
            format: "currency",
            currency_code: "EUR",
          },
          {
            value: "2026-10-04",
            format: "date",
          },
        ],
        [
          {
            value: "United States",
          },
          {
            value: "Ava Thompson",
          },
          {
            value: "Enterprise",
          },
          {
            value: "Pilot",
          },
          {
            value: 265000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-12-20",
            format: "date",
          },
        ],
        [
          {
            value: "Canada",
          },
          {
            value: "Noah Bennett",
          },
          {
            value: "Startup",
          },
          {
            value: "Proposal",
          },
          {
            value: 42000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-08-05",
            format: "date",
          },
        ],
        [
          {
            value: "Mexico",
          },
          {
            value: "Camila Ortiz",
          },
          {
            value: "Growth",
          },
          {
            value: "Qualified",
          },
          {
            value: 58000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-09-21",
            format: "date",
          },
        ],
        [
          {
            value: "Singapore",
          },
          {
            value: "Ethan Tan",
          },
          {
            value: "Enterprise",
          },
          {
            value: "Procurement",
          },
          {
            value: 118000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-10-12",
            format: "date",
          },
        ],
        [
          {
            value: "Australia",
          },
          {
            value: "Chloe Walsh",
          },
          {
            value: "Growth",
          },
          {
            value: "Discovery",
          },
          {
            value: 64000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-07-28",
            format: "date",
          },
        ],
        [
          {
            value: "Japan",
          },
          {
            value: "Haruto Sato",
          },
          {
            value: "Enterprise",
          },
          {
            value: "Legal",
          },
          {
            value: 143000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-11-08",
            format: "date",
          },
        ],
        [
          {
            value: "South Korea",
          },
          {
            value: "Min Seo Park",
          },
          {
            value: "Growth",
          },
          {
            value: "Demo",
          },
          {
            value: 51000,
            format: "currency",
            currency_code: "USD",
          },
          {
            value: "2026-08-19",
            format: "date",
          },
        ],
      ],
    },
  ],
});
Response
{
  "success": true,
  "data": {
    "buffer": "UEsDBBQAAAAIAA...",
    "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  }
}
Request
from iterationlayer import IterationLayer

client = IterationLayer(
    api_key="YOUR_API_KEY"
)

result = client.generate_sheet(
    format="xlsx",
    styles={
        "header": {
            "is_bold": True,
            "background_color": "#4472C4",
            "font_color": "#FFFFFF",
        },
    },
    sheets=[
        {
            "name": "FY2026 Pipeline",
            "columns": [
                {
                    "name": "Region",
                    "width": 18,
                },
                {
                    "name": "Account Executive",
                    "width": 24,
                },
                {
                    "name": "Plan",
                    "width": 18,
                },
                {
                    "name": "Stage",
                    "width": 16,
                },
                {
                    "name": "ARR",
                    "width": 16,
                },
                {
                    "name": "Renewal",
                    "width": 16,
                },
            ],
            "rows": [
                [
                    {
                        "value": "Germany",
                    },
                    {
                        "value": "Mia Fischer",
                    },
                    {
                        "value": "Enterprise",
                    },
                    {
                        "value": "Contract",
                    },
                    {
                        "value": 182000,
                        "format": "currency",
                        "currency_code": "EUR",
                    },
                    {
                        "value": "2026-11-30",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "France",
                    },
                    {
                        "value": "Lucas Moreau",
                    },
                    {
                        "value": "Growth",
                    },
                    {
                        "value": "Security Review",
                    },
                    {
                        "value": 96000,
                        "format": "currency",
                        "currency_code": "EUR",
                    },
                    {
                        "value": "2026-09-15",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Spain",
                    },
                    {
                        "value": "Sofia Ramos",
                    },
                    {
                        "value": "Growth",
                    },
                    {
                        "value": "Negotiation",
                    },
                    {
                        "value": 74000,
                        "format": "currency",
                        "currency_code": "EUR",
                    },
                    {
                        "value": "2026-10-04",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "United States",
                    },
                    {
                        "value": "Ava Thompson",
                    },
                    {
                        "value": "Enterprise",
                    },
                    {
                        "value": "Pilot",
                    },
                    {
                        "value": 265000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-12-20",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Canada",
                    },
                    {
                        "value": "Noah Bennett",
                    },
                    {
                        "value": "Startup",
                    },
                    {
                        "value": "Proposal",
                    },
                    {
                        "value": 42000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-08-05",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Mexico",
                    },
                    {
                        "value": "Camila Ortiz",
                    },
                    {
                        "value": "Growth",
                    },
                    {
                        "value": "Qualified",
                    },
                    {
                        "value": 58000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-09-21",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Singapore",
                    },
                    {
                        "value": "Ethan Tan",
                    },
                    {
                        "value": "Enterprise",
                    },
                    {
                        "value": "Procurement",
                    },
                    {
                        "value": 118000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-10-12",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Australia",
                    },
                    {
                        "value": "Chloe Walsh",
                    },
                    {
                        "value": "Growth",
                    },
                    {
                        "value": "Discovery",
                    },
                    {
                        "value": 64000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-07-28",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "Japan",
                    },
                    {
                        "value": "Haruto Sato",
                    },
                    {
                        "value": "Enterprise",
                    },
                    {
                        "value": "Legal",
                    },
                    {
                        "value": 143000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-11-08",
                        "format": "date",
                    },
                ],
                [
                    {
                        "value": "South Korea",
                    },
                    {
                        "value": "Min Seo Park",
                    },
                    {
                        "value": "Growth",
                    },
                    {
                        "value": "Demo",
                    },
                    {
                        "value": 51000,
                        "format": "currency",
                        "currency_code": "USD",
                    },
                    {
                        "value": "2026-08-19",
                        "format": "date",
                    },
                ],
            ],
        },
    ],
)
Response
{
  "success": true,
  "data": {
    "buffer": "UEsDBBQAAAAIAA...",
    "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  }
}
Request
import il "github.com/iterationlayer/sdk-go"

client := il.NewClient("YOUR_API_KEY")

result, err := client.GenerateSheet(
  il.GenerateSheetRequest{
    Format: "xlsx",
    Styles: &il.SheetStyles{
      Header: &il.CellStyle{
        IsBold:          true,
        BackgroundColor: "#4472C4",
        FontColor:       "#FFFFFF",
      },
    },
    Sheets: []il.Sheet{
      {
        Name: "FY2026 Pipeline",
        Columns: []il.SheetColumn{
          {
            Name:  "Region",
            Width: 18,
          },
          {
            Name:  "Account Executive",
            Width: 24,
          },
          {
            Name:  "Plan",
            Width: 18,
          },
          {
            Name:  "Stage",
            Width: 16,
          },
          {
            Name:  "ARR",
            Width: 16,
          },
          {
            Name:  "Renewal",
            Width: 16,
          },
        },
        Rows: [][]il.SheetCell{
          {
            {
              Value: "Germany",
            },
            {
              Value: "Mia Fischer",
            },
            {
              Value: "Enterprise",
            },
            {
              Value: "Contract",
            },
            {
              Value:        182000,
              Format:       "currency",
              CurrencyCode: "EUR",
            },
            {
              Value:  "2026-11-30",
              Format: "date",
            },
          },
          {
            {
              Value: "France",
            },
            {
              Value: "Lucas Moreau",
            },
            {
              Value: "Growth",
            },
            {
              Value: "Security Review",
            },
            {
              Value:        96000,
              Format:       "currency",
              CurrencyCode: "EUR",
            },
            {
              Value:  "2026-09-15",
              Format: "date",
            },
          },
          {
            {
              Value: "Spain",
            },
            {
              Value: "Sofia Ramos",
            },
            {
              Value: "Growth",
            },
            {
              Value: "Negotiation",
            },
            {
              Value:        74000,
              Format:       "currency",
              CurrencyCode: "EUR",
            },
            {
              Value:  "2026-10-04",
              Format: "date",
            },
          },
          {
            {
              Value: "United States",
            },
            {
              Value: "Ava Thompson",
            },
            {
              Value: "Enterprise",
            },
            {
              Value: "Pilot",
            },
            {
              Value:        265000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-12-20",
              Format: "date",
            },
          },
          {
            {
              Value: "Canada",
            },
            {
              Value: "Noah Bennett",
            },
            {
              Value: "Startup",
            },
            {
              Value: "Proposal",
            },
            {
              Value:        42000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-08-05",
              Format: "date",
            },
          },
          {
            {
              Value: "Mexico",
            },
            {
              Value: "Camila Ortiz",
            },
            {
              Value: "Growth",
            },
            {
              Value: "Qualified",
            },
            {
              Value:        58000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-09-21",
              Format: "date",
            },
          },
          {
            {
              Value: "Singapore",
            },
            {
              Value: "Ethan Tan",
            },
            {
              Value: "Enterprise",
            },
            {
              Value: "Procurement",
            },
            {
              Value:        118000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-10-12",
              Format: "date",
            },
          },
          {
            {
              Value: "Australia",
            },
            {
              Value: "Chloe Walsh",
            },
            {
              Value: "Growth",
            },
            {
              Value: "Discovery",
            },
            {
              Value:        64000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-07-28",
              Format: "date",
            },
          },
          {
            {
              Value: "Japan",
            },
            {
              Value: "Haruto Sato",
            },
            {
              Value: "Enterprise",
            },
            {
              Value: "Legal",
            },
            {
              Value:        143000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-11-08",
              Format: "date",
            },
          },
          {
            {
              Value: "South Korea",
            },
            {
              Value: "Min Seo Park",
            },
            {
              Value: "Growth",
            },
            {
              Value: "Demo",
            },
            {
              Value:        51000,
              Format:       "currency",
              CurrencyCode: "USD",
            },
            {
              Value:  "2026-08-19",
              Format: "date",
            },
          },
        },
      },
    },
  },
)
Response
{
  "success": true,
  "data": {
    "buffer": "UEsDBBQAAAAIAA...",
    "mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  }
}

Official SDKs for every major language

Install the SDK, set your API key, and start chaining requests. Full type safety, automatic retries, and idiomatic error handling included.

Your data stays in the EU

Your data is processed on EU servers and never stored beyond temporary logs. Zero retention, GDPR-compliant by design, with a Data Processing Agreement available for every customer. Learn more about our security practices .

No data storage, no model training

We don't store your files or processing results, and your data is never used to train or improve AI models. Logs are automatically deleted after 90 days.

EU-hosted infrastructure

All processing runs on servers located in the European Union. Your data never leaves the EU.

GDPR-compliant by design

Full compliance with EU data protection regulations. Data Processing Agreement available for all customers.

Pricing

Start with free trial credits. No credit card required.

Developer

For individuals & small projects

$29.99 /month
1,000 credits included
Most Popular

Startup

Save 40%

For growing teams

$119.99 /month
5,000 credits included

Business

Save 47%

For high-volume workloads

$319.99 /month
15,000 credits included

Or pay as you go from $0.022/credit with automatic volume discounts.

All APIs included Free trial credits per API Project-based budget caps Auto overage billing

Still evaluating?

Compare Iteration Layer against the biggest alternatives at a glance, then open the full head-to-head pages when you want the details.

Feature Iteration Layer SheetJS ExcelJS OpenPyXL
Formula support
Yes
Generate spreadsheets with Excel-compatible formulas
Limited
Formula support is limited in the free Community Edition — Pro required for full support
Yes
Full formula support through programmatic API calls
Yes
Full formula support through programmatic API calls
Multi-sheet support
Yes
Generate workbooks with multiple named sheets
Yes
Full multi-sheet workbook support
Yes
Full multi-sheet workbook support with programmatic API
Yes
Full multi-sheet workbook support with programmatic API
Output formats
3 formats
XLSX, CSV, and Markdown output
4+ formats
XLSX, CSV, HTML, and ODS output supported
2 formats
XLSX and CSV output supported
1 format
XLSX output only
Sheet definition style
Declarative JSON
Entire spreadsheet described declaratively in a single JSON payload with styling included
Low-level cells
Low-level cell object manipulation — styling requires the paid Pro edition
Imperative API
Spreadsheets built row by row, cell by cell with imperative API calls
Imperative API
Spreadsheets built row by row with imperative cell-by-cell iteration

Frequently asked questions

What output formats are supported?
The API generates CSV, Markdown, and XLSX spreadsheets. CSV is ideal for data interchange, Markdown for documentation and LLMs, and XLSX for Excel with full formatting support.
Can I create multiple sheets?
Yes, for XLSX and Markdown output. XLSX creates native multi-sheet workbooks. Markdown renders each sheet as a headed table. CSV supports only a single sheet.
How do formulas work?
For XLSX, formulas are written natively and evaluated by Excel. For CSV and Markdown, simple aggregation formulas (SUM, AVERAGE, COUNT, MIN, MAX) are computed server-side and the result is written as a value.
Can I use custom fonts?
Yes, for XLSX output. Embed any TTF, OTF, WOFF, or WOFF2 font by including its base64-encoded buffer in the request. Specify weight and style for each font variant.
How does cell formatting work?
Each cell can have a format (currency, percentage, date, etc.) and style overrides (font, color, alignment). Set base styles at the sheet level and override per cell.
Can I merge cells?
Yes, for XLSX output. Define merged cell ranges with start/end row and column coordinates. Merged cells can contain a value that spans the range.

Built for how you work

Whether you're building pipelines in code, automating workflows, orchestrating AI agents, or shipping client projects — Iteration Layer fits your process.