# HTML Table Extractor (x402 / Zaden Works)

> HTML Table Extractor (x402 / Zaden Works) is a paid API for AI agents from x402-zadenworks.zaden-gaming.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Fetches a URL and extracts all HTML tables as structured JSON, returning headers, row arrays, and (when headers are unique) row objects keyed by header name.

## Facts

- Endpoint: POST https://x402-zadenworks.zaden-gaming.workers.dev/tables
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/html-table-extractor-x402-zaden-works-f524f340
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Em7NkVb3YLY6w_xcwV_MH

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 html-table-extractor-x402-zaden-works-f524f340 -d '<json body>'
```

Example prompt: Can you extract all the tables from https://example.com/pricing as structured JSON — I need the headers and rows so I can compare the plan tiers?

## When to prefer this

Choose this endpoint when you need structured data from one or more HTML tables on a specific page — such as pricing grids, spec sheets, comparison tables, or schedules — and want clean JSON (headers + rows) without writing custom HTML parsing code. It is especially useful when the table structure is relatively standard and you need both array-of-arrays and keyed-object representations. For JavaScript-rendered pages or highly dynamic content, consider a sibling endpoint that uses a full headless browser render first.

## Known failure modes

- URL is unreachable or returns non-200 status — table extraction fails with an error
- Page has no HTML tables — returns an empty array
- Tables use rowspan/colspan in complex ways that may not parse cleanly into flat row arrays
- JavaScript-rendered tables may not be captured if the page requires JS execution to populate table data
- Duplicate header names prevent the keyed row-object representation from being generated for that table
- Malformed HTML may cause incomplete or incorrect table parsing

## How this service works

Fourteen pay-per-call web tools for AI agents, billed in USDC on Base with no account or API key. START WITH /audit -- one call returns a complete page health check (SEO + structured data + accessibility, optionally plus links and sitemap) with a single score and one worst-first findings list. The parts are also sold individually. SITE AUDIT: /seo (on-page SEO and meta tags), /links (broken links), /sitemap (robots.txt and XML sitemap crawlability), /structured (JSON-LD and social preview tags), /a11y (WCAG accessibility) -- each scored 0-100 with a prioritised issue list. READING: /read (clean markdown), /snap (screenshot, PDF or rendered HTML), /tables (every HTML table as structured JSON), /verify (does a claim actually appear on this page). MONITORING: /watch (has this page changed), /compare (what differs between two pages). Plus /rank (best x402 service for a task) and /batch (several operations behind one payment).

## Output

Returns a JSON array of table objects, each containing: an array of header strings, an array of row arrays (each row is a list of cell values), and (when all headers are unique) an array of row objects where each key is a header name and the value is the corresponding cell content. Covers all tables found on the page.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "url": {
       "type": "string",
       "description": "Public http/https URL to extract tables from"
      },
      "selector": {
       "type": "string",
       "description": "Optional CSS selector to scope the search for tables to"
      },
      "maxTables": {
       "type": "integer",
       "minimum": 1,
       "maximum": 20
      },
      "maxRowsPerTable": {
       "type": "integer",
       "minimum": 1,
       "maximum": 500
      },
      "waitMs": {
       "type": "integer",
       "minimum": 0,
       "maximum": 5000
      }
     },
     "required": [
      "url"
     ]
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "tableCount": {
       "type": "integer"
      },
      "tablesTruncated": {
       "type": "boolean"
      },
      "tables": {
       "type": "array",
       "items": {
        "type": "object"
       }
      }
     }
    }
   },
   "required": [
    "type"
   ]
  }
 },
 "required": [
  "input"
 ]
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "tables": [
   {
    "rows": [
     [
      "1",
      "2"
     ],
     [
      "3",
      "4"
     ]
    ],
    "index": 0,
    "caption": "Example table",
    "headers": [
     "A",
     "B"
    ],
    "rowCount": 2,
    "rowObjects": [
     {
      "A": "1",
      "B": "2"
     },
     {
      "A": "3",
      "B": "4"
     }
    ]
   }
  ],
  "tableCount": 3,
  "tablesTruncated": false
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/html-table-extractor-x402-zaden-works-f524f340/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-zadenworks.zaden-gaming.workers.dev](https://www.zero.xyz/host/x402-zadenworks.zaden-gaming.workers.dev/llms.txt)
