{"uid":"cap_qWriMiZ-mKENCf13tUcu7","slug":"html-tables-to-json-converter-810e081d","name":"HTML Tables to JSON Converter","description":"HTML tables to JSON. POST an HTML page; the response is {\"tables\": [{caption, columns, rows}]} — every <table> read into row objects keyed by its header cells, in the same shape whether the page has one table or nine. Values stay strings with whitespace collapsed. colspan and rowspan are NOT expanded, and a page with no table is refused.","url":"https://toolshed.lemon-agent.dev/convert/html-json","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"string","maxLength":262144,"description":"the raw HTML file as the request body, up to 256 KB"},"type":{"type":"string","const":"http"},"method":{"type":"string","const":"POST"},"bodyType":{"type":"string","const":"text"}},"additionalProperties":false},"output":{"type":"object","required":["type","format"],"properties":{"type":{"type":"string","const":"text"},"format":{"type":"string","const":"application/json","description":"the converted JSON file as the response body (application/json)"},"example":{"type":"string","description":"the sample request body above, converted — what a the converted JSON file as the response body (application/json) looks like"}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.006","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.006/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.006","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_CYzwJIjbcVNMbxnpwdhBZ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.006","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts HTML pages into structured JSON by extracting all <table> elements into row objects keyed by header cells","exampleAgentPrompt":"I have an HTML page with product pricing tables — can you extract all the tables from it and give me the data as JSON, with each row as an object keyed by the column headers?","exampleUseCases":[{"title":"Scraping financial data from web pages","prompt":"I downloaded this HTML from a financial report page and it has several tables with quarterly revenue figures — can you pull all of those tables out as JSON so I can process the numbers?"},{"title":"Migrating CMS table content to a database","prompt":"Here's the raw HTML from our old CMS page with feature comparison tables — please convert all the tables into JSON objects keyed by the header columns so I can import the data into our new system."},{"title":"Extracting structured data from scraped HTML","prompt":"I scraped this Wikipedia-style HTML page that has a bunch of stat tables on it — convert every table into JSON rows with the column headers as keys so I can analyze the data programmatically."}],"resultDescription":"A JSON object with a top-level 'tables' array. Each element contains 'caption' (the table's caption text or null), 'columns' (an array of header cell strings), and 'rows' (an array of objects where each key is a column header and each value is the cell's string content with whitespace collapsed). All tables on the page are returned in document order. Pages with no tables are rejected with an error.","failureModes":["No <table> element found in the submitted HTML — endpoint refuses the request with an error","HTML body exceeds 256 KB limit — request rejected","Malformed or non-HTML input body — parsing may fail or return empty tables array","colspan and rowspan cells are not expanded — merged cells may produce missing or misaligned keys in row objects","Tables without <th> header cells may yield empty or numeric column keys","Input HTML with deeply nested or non-standard table markup may produce unexpected column assignments"],"whenToPreferThis":"Use this endpoint when you need to extract one or more HTML tables from a page into machine-readable JSON in a single call, with each row represented as a named-key object. It is especially useful for web scraping pipelines, data migration, or any workflow where HTML table content needs to be consumed programmatically. Prefer it over general HTML-to-text converters when you specifically need structured row/column data rather than prose. Note that it does not expand colspan/rowspan, so prefer alternative approaches for complex merged-cell tables.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T06:40:57.600Z","isFirstParty":false}