# Structura Table Extractor

> Structura Table Extractor is a paid API for AI agents from structura.x.c00l.site, paid per call via x402, $0.012/call, status unknown (last checked 2026-09-15).

Extracts tabular data from a URL, HTML, text, or PDF-like blob and returns structured, typed JSON with column metadata and CSV representation

## Facts

- Endpoint: POST https://structura.x.c00l.site/table
- Price: $0.012/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/structura-table-extractor-bfda6674
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_U57uJckH9G3ZelcuxQkpK

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 structura-table-extractor-bfda6674 -d '<json body>'
```

Example prompt: Pull the pricing table from https://example.com/pricing and give me the rows and column types as structured JSON — I need the plan names, monthly cost, and seat counts cleanly typed.

## When to prefer this

Choose this endpoint when you need to extract one or more tables from a live URL, pasted HTML, raw text, or a PDF-like text blob and get back strongly-typed JSON rows with column metadata and CSV output — especially when you need column types (string, number, integer), units, and null counts automatically inferred. Prefer this over generic scraping endpoints when tabular structure is the primary output goal and schema conformance matters.

## Known failure modes

- No tables detected in the input — tableCount returns 0 and tables array is empty
- URL is unreachable or returns a non-200 response — extraction fails
- Input contains only images of tables (non-machine-readable) — no structured data returned
- Malformed HTML or unsupported blob format causes parse failure
- Merged cells in complex HTML tables may degrade row/column alignment (mergedCells flag set to true)
- Payment not submitted or insufficient USDC balance — request rejected by x402 payment gate

## How this service works

Turn a URL, HTML, text or a PDF-ish blob into JSON that provably validates against your JSON Schema. Paid per call over x402.

## Output

Returns a JSON object containing an array of tables, each with: rows (array of typed key-value objects), columns (array with name, type, unit, and nullCount), a CSV string representation, row count, column count, orientation, and a top-level detection object describing how the table was found (mode, htmlTables count, mergedCells flag, skipped count).

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "tables": [
   {
    "csv": "Plan,Monthly,Seats\r\nStarter,12,3\r\nTeam,49,25\r\n",
    "name": "Pricing",
    "rows": [
     {
      "Plan": "Starter",
      "Seats": 3,
      "Monthly": 12
     },
     {
      "Plan": "Team",
      "Seats": 25,
      "Monthly": 49
     }
    ],
    "notes": "",
    "columns": [
     {
      "name": "Plan",
      "type": "string",
      "unit": null,
      "nullCount": 0
     },
     {
      "name": "Monthly",
      "type": "number",
      "unit": "USD",
      "nullCount": 0
     },
     {
      "name": "Seats",
      "type": "integer",
      "unit": null,
      "nullCount": 0
     }
    ],
    "rowCount": 2,
    "columnCount": 3,
    "orientation": "row"
   }
  ],
  "detected": {
   "mode": "html-grid",
   "skipped": 0,
   "htmlTables": 1,
   "mergedCells": false
  },
  "tableCount": 1
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/structura-table-extractor-bfda6674/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from structura.x.c00l.site](https://www.zero.xyz/host/structura.x.c00l.site/llms.txt)
