# 402utils XLSX Extractor

> 402utils XLSX Extractor is a paid API for AI agents from 402utils.com, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-15).

Extracts sheet data and workbook metadata from an .xlsx spreadsheet supplied as raw bytes or a public URL

## Facts

- Endpoint: POST https://402utils.com/v1/xlsx-extract
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402utils-xlsx-extractor-57c7dc60
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_oRxuegdWib7_7XvWnQiNP

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 402utils-xlsx-extractor-57c7dc60 -d '<json body>'
```

Example prompt: Can you pull the data out of this Excel file at https://example.com/reports/Q3.xlsx and give me the rows as objects with headers from the first row?

## When to prefer this

Use this endpoint when you need to programmatically read data from an .xlsx Excel file — either supplied as raw bytes or fetched from a public URL — and get the contents as structured JSON rows. It handles multi-sheet workbooks, optional header row promotion, and returns cached formula values without needing Excel installed. Prefer this over CSV-based alternatives when the source is definitively an .xlsx workbook.

## Known failure modes

- File exceeds 10 MB limit — request rejected
- Spreadsheet contains more than 500,000 cells — extraction capped or rejected
- URL is not publicly accessible or returns a non-200 status — fetch failure
- File is not a valid .xlsx format (e.g. .xls, .csv, or corrupt file) — parse error
- Sheet name or index does not exist in the workbook — sheet not found error
- Network timeout fetching remote URL
- Payment not included or insufficient — 402 payment required response

## How this service works

Extract data from an .xlsx spreadsheet: send the bytes directly or a JSON body with a public {url}. Returns each sheet as rows (array-of-arrays) with its name and used range, plus workbook metadata. Query: sheet (name or 0-based index) for a single sheet, headers=true for array-of-objects. Formula cells return their cached computed value. Capped at 500000 cells. Max 10 MB.

## Output

Returns each sheet (or a single requested sheet) as an array-of-arrays of row data, with the sheet name and used range. If headers=true is set, rows are returned as array-of-objects keyed by the first row. Also includes workbook-level metadata. Formula cells return their cached computed value. Capped at 500,000 cells; max file size 10 MB.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "Public http(s) URL of an .xlsx file (alternative to sending bytes)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "meta": {
   "cellCount": 9,
   "sheetCount": 1,
   "sheetNames": [
    "Q2"
   ]
  },
  "sheets": [
   {
    "name": "Q2",
    "rows": [
     [
      "item",
      "qty",
      "total"
     ],
     [
      "widgets",
      10,
      42.5
     ],
     [
      "gadgets",
      3,
      12.75
     ]
    ],
    "range": "A1:C3"
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402utils-xlsx-extractor-57c7dc60/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
