# TableGrab

> TableGrab is a paid API for AI agents from tablegrab.onrender.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-15).

Extracts clean, typed JSON tables or Markdown content from a public URL pointing to an HTML page, CSV, XLSX, or text PDF.

## Facts

- Endpoint: POST https://tablegrab.onrender.com/v1/extract?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/tablegrab-37239f67
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AorUHAPShXY9Iq-3iE3gn

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 tablegrab-37239f67 -d '<json body>'
```

Example prompt: Can you grab all the tables from this Wikipedia page — https://en.wikipedia.org/wiki/List_of_countries_by_GDP — and give them back as clean JSON with typed columns and ISO-formatted dates?

## When to prefer this

Choose TableGrab when you need to extract structured tabular data or article content from a public URL without running a full browser or JS renderer. It's ideal for HTML pages, CSVs, XLSX files, and text-based PDFs where you need clean, typed JSON tables with resolved colspan/rowspan or clean Markdown article content. Prefer it over raw HTTP fetchers when you need normalization (ISO dates, real numbers, snake_case keys) out of the box. Not suitable for JS-heavy SPAs or image-based scanned PDFs.

## Known failure modes

- Page requires JavaScript rendering — returns js_required flag instead of content
- URL is not publicly accessible or returns a non-200 status
- File exceeds 5 MiB size limit
- PDF is image-based (scanned) rather than text-based — not parseable
- URL is blocked by SSRF safety checks (private/internal addresses rejected)
- No tables found on page when mode=tables — may fall back to markdown if mode=auto
- Malformed or unsupported file format returns an error

## How this service works

TableGrab: give a public URL and get clean, typed JSON tables (headers, row objects, inferred column types, caption/heading context; colspan/rowspan handled; ISO dates and real numbers) or the page's main content as Markdown with title, byline, date and links. Handles HTML, CSV, XLSX and text PDFs. SSRF-safe, no JS rendering (returns js_required). $0.01 per call. Feedback/support: POST /feedback (free) or js4336638@gmail.com.

## Output

Returns either an array of table objects (each with headers, row objects, inferred column types, and caption/heading context with colspan/rowspan resolved) or the page's main content as Markdown including title, byline, date, and links. Numbers are real numeric types, dates are ISO-formatted, leading-zero codes are preserved, and keys are snake_cased. If the page requires JavaScript rendering, returns a js_required signal instead.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "public https URL of an HTML page, CSV, XLSX or text PDF (max 5 MiB)"
  },
  "mode": {
   "enum": [
    "tables",
    "markdown",
    "auto"
   ],
   "type": "string",
   "default": "auto",
   "description": "tables = JSON tables; markdown = main article content; auto = tables if any, else markdown"
  },
  "clean": {
   "type": "boolean",
   "default": true,
   "description": "normalize cells: ISO dates, real numbers, nulls, whitespace; leading-zero codes kept; snake_case keys"
  },
  "max_tables": {
   "type": "integer",
   "default": 20,
   "maximum": 100,
   "minimum": 1
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/tablegrab-37239f67/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tablegrab.onrender.com](https://www.zero.xyz/host/tablegrab.onrender.com/llms.txt)
