# Tanod xlsx-build

> Tanod xlsx-build is a paid API for AI agents from tanod.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-10).

Builds and returns a fully formatted Excel (.xlsx) spreadsheet from structured JSON data including typed columns, multiple sheets, auto-filter, and freeze-pane options.

## Facts

- Endpoint: POST https://tanod.dev/v1/docs/xlsx-build?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tanod-xlsx-build-f4fa96f7
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_p8je_QEPCaX0Tof-mocj6

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability tanod-xlsx-build-f4fa96f7 -d '<json body>'
```

Example prompt: Build me an Excel spreadsheet called 'sales-q3.xlsx' with a sheet named 'Sales' that has columns for Product (string), Units Sold (integer), Revenue (currency), and Margin (percent) — freeze the header row and enable autofilter — here's my data: [{"Product":"Widget A","Units Sold":120,"Revenue":4800,"Margin":0.32},{"Product":"Widget B","Units Sold":85,"Revenue":3400,"Margin":0.27}].

## When to prefer this

Choose this endpoint when an AI agent needs to programmatically produce a formatted, typed Excel file from structured data without requiring Excel or any office software on the calling machine. It is ideal for reporting pipelines, data exports, and agent workflows that need to hand off tabular results as a downloadable xlsx. At $0.005 per call with no signup, it suits low-volume agentic tasks better than self-hosted spreadsheet libraries when infrastructure simplicity matters.

## Known failure modes

- 422 if a cell value does not match the declared column type (e.g. string in an integer column)
- 422 if sheet name exceeds 31 characters or is empty
- 422 if rows array exceeds 1,048,575 items
- 422 if columns array exceeds 16,384 items
- 402 Payment Required if x402 micropayment header is missing or insufficient
- 400 if the request body is malformed JSON
- 500 if an internal generation error occurs

## How this service works

One MCP server and HTTP API with 193 pay-per-call tools for AI agents (security checks, chain data, finance, aviation, documents), plus free uptime and MikroTik monitoring and 130+ free browser tools. No signup; free daily tier. Operated by an AI.

## Output

Returns a JSON object containing the generated xlsx file encoded as base64, the file name, content type, byte size, total row and cell counts, number of sheets, a per-sheet summary (name, rows, cells, columns), and a count of formula-like strings detected. The agent can decode the base64 data to retrieve the binary xlsx file.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "output": {
   "enum": [
    "base64",
    "url"
   ],
   "type": "string",
   "default": "base64",
   "description": "base64 (default): the file comes back inline as base64. url: the file is stored for 24 hours and the reply carries a download link (url, expires_at, bytes, content_type, sha256) instead of the base64, which keeps the file out of your context window."
  },
  "sheets": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "name",
     "rows"
    ],
    "properties": {
     "name": {
      "type": "string",
      "maxLength": 31,
      "minLength": 1
     },
     "rows": {
      "type": "array",
      "items": {
       "anyOf": [
        {
         "type": "array",
         "items": {
          "anyOf": [
           {
            "type": "string"
           },
           {
            "type": "integer"
           },
           {
            "type": "number"
           },
           {
            "type": "boolean"
           },
           {
            "type": "null"
           }
          ]
         }
        },
        {
         "type": "object",
         "additionalProperties": {
          "anyOf": [
           {
            "type": "string"
           },
           {
            "type": "integer"
           },
           {
            "type": "number"
           },
           {
            "type": "boolean"
           },
           {
            "type": "null"
           }
          ]
         }
        }
       ]
      },
      "maxItems": 1048575,
      "description": "Array rows (values by position) or object rows (values by header). A value is a string, number, boolean or null (an empty cell)."
     },
     "columns": {
      "anyOf": [
       {
        "type": "array",
        "items": {
         "type": "object",
         "required": [
          "header"
         ],
         "properties": {
          "type": {
           "anyOf": [
            {
             "enum": [
              "string",
              "number",
              "integer",
              "date",
              "datetime",
              "boolean",
              "currency",
              "percent"
             ],
             "type": "string"
            },
            {
             "type": "null"
            }
           ],
           "default": null,
           "description": "string, number, integer, date, datetime, boolean, currency or percent. Sets the cell type and number format; a value that does
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "file": {
   "name": "sales-q3.xlsx",
   "bytes": 5100,
   "data_base64": "UEsDBBQAAAAIAAAA... (trimmed: 6,800 base64 characters in the reply)",
   "content_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
  },
  "rows": 2,
  "cells": 15,
  "sheets": 1,
  "operation": "xlsx-build",
  "output_bytes": 5100,
  "sheet_summary": [
   {
    "name": "Sales",
    "rows": 2,
    "cells": 15,
    "columns": 5
   }
  ],
  "formula_like_strings": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tanod-xlsx-build-f4fa96f7/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tanod.dev](https://www.zero.xyz/host/tanod.dev/llms.txt)
