Skip to main content
Tables returns every table in a completed parse, and joins a table that continues across pages back into one. Use it when rows and columns are the output you need. To pull a few values out of tables, use Extract instead. Tables reads the parse by its parse_id, so the document isn’t read again:

Get a parse’s tables

This example parses the sample bank statement, then reads its tables as JSON and Markdown:
For a long document, send async: true and poll the job: see Jobs and results. Tables can’t read an expired or deleted parse.
Tables must be turned on for your organization. Until it is, POST /tables returns 404, as a route that doesn’t exist, and a pipeline with a Tables step returns 400. To turn it on, contact support.
Tables works from the parse’s tables as they are. To fix misread cells first, parse with the tables refine pass.

Choose formats and pages

config.format picks the formats each table comes back in, ["html"] by default. Send "all" for all three. In the Python SDK, json is content.json_. config.page_range takes tables from some pages only, such as "3-7", numbered as the parse numbers them. If you leave it out, Tables reads every page of the parse. A table joins only with tables on the selected pages. A range past the parse’s last page is refused with a 400.

Read the result

GET /tables/{tables_id}/result (client.tables.get_result) returns the tables in reading order, one entry per joined table. Here, one table continues from page 1 to page 2:
source_element_ids names the parse’s Table elements the table was built from, first part first. Look them up in the parse’s elements to find each part’s page and box: Every cell is text, even when it holds a number, so convert values yourself.

Check merge warnings

If a pass that finds or checks joins across pages fails, the job still completes and warnings names what it did without: If you see one, check the joins against the source before you rely on them.

Pricing

Tables costs 0.5 credits per table returned, and a table joined from several pages counts as one (Pricing).

Next steps

Extract

Pull a few values out of a parse.

Pipelines

Parse and read tables in one call.

Tables API reference

Every option, field and limit.