About
Who runs TableJSON, and why it exists
TableJSON is run by Venkata Naidu. It is a small independent tool, not a company with a support department behind a ticket wall. The contact page is the place for a broken extract, a key request, or a privacy question. The code lives with the same person who answers that mail.
The site exists because tables keep showing up frozen inside PDFs. An invoice, a price list, a statement, a report someone exported with "Print" because the real export button was hidden. The numbers are right there on the page, and copying them into a sheet scrambles the columns. Highlight the text and it is real characters. It still will not land in cells. TableJSON is the small step in between: read the text layer, return rows as JSON, and for a normal invoice, check the arithmetic before the Excel file downloads.
What it is willing to do
The playground takes a PDF and returns tables. Headers become keys. Each row keeps an object and the original cells. Page start and page end come along so a statement that repeats its header does not have to be stitched by hand. Invoices can come back as a workbook with a PASS or FAIL checksum, and FAIL still downloads, because a silent empty file is worse than a red cell. Files can be large. The upload limit is 500 MB. A URL you send instead of the bytes stops at 50 MB.
You can do the same thing from POST /v1/extract-tables and POST /v1/invoice-xlsx, from Zapier, or from RapidAPI. The playground on this host does not ask you to log in. A script does need a key, which is issued to the caller rather than tied to an account page. The API reference and the guides are the long version of how to use it without surprises.
What it will not pretend to do
It does not OCR. A scanned page has no text layer, and inventing digits from a photograph is a different product with a different privacy story. If you cannot highlight a price in Chrome or Preview, TableJSON will not type it for you. It also does not watch ruling lines. Columns come from tabs, pipes, wide spaces, or commas in the text. Merged cells and side-by-side tables can come out messy, and the guides say so instead of calling every extract clean.
Uploads are not a document library. A multipart PDF is written to a temporary file for that request and deleted when the response is sent. That is a narrower claim than "we never touch disk," which would be false. The privacy page is the precise version, including cookies and the Google AdSense disclosure.
A different product
TableJSON is not HidePDF Content. HidePDF is about hiding sensitive values inside a PDF. This site is about reading tables out. They share a person, not a pipeline. Do not send a file here expecting it to be redacted, and do not send a file there expecting JSON rows back.
If something extracted wrong, use the contact page. Include the time, any error code, and a description of the layout. Leave out live API keys and, unless we ask, the PDF itself.