{"openapi":"3.0.3","info":{"title":"TableJSON — PDF Table to JSON","description":"Upload a text-layer PDF (up to 500MB) and receive structured tables as JSON. Digital PDFs only — scanned or image-only files are not OCR’d. Playground: https://tablejson.com","version":"1.0.0","contact":{"name":"TableJSON","url":"https://tablejson.com"},"x-category":"Data","x-website":"https://tablejson.com"},"servers":[{"url":"https://tablejson.com","description":"Production"},{"url":"http://localhost:3000","description":"Local Server"}],"components":{"securitySchemes":{}},"security":[],"paths":{"/v1/extract-tables":{"post":{"summary":"Extract Tables from PDF File","description":"Upload a text-layer PDF as multipart/form-data field \"file\". Live calls return every row, plus page_number, page_end, and total_pages. RapidAPI Hub testers can run GET /v1/example for a 2-row sample that will not freeze Chrome. Small PDF: https://tablejson.com/sample-mini.pdf","security":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"PDF file to process. Use https://tablejson.com/sample-mini.pdf in the Hub playground."}},"required":["file"]}},"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"uri","description":"Public PDF URL. Zapier and webhooks can send this instead of a multipart upload."}},"required":["file"]}}}},"responses":{"200":{"description":"Successful extraction","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success"},"filename":{"type":"string","example":"example.pdf"},"total_pages":{"type":"number","example":1},"tables_found":{"type":"number","example":1},"metadata":{"type":"object"},"tables":{"type":"array"}},"example":{"status":"success","filename":"example.pdf","total_pages":1,"tables_found":1,"metadata":{"execution_time_ms":12,"extraction_mode":"text"},"tables":[{"table_id":1,"page_number":1,"page_end":1,"headers":["date","item","amount"],"total_rows":2,"rows":[{"row_index":1,"data":{"date":"2026-01-05","item":"Hosting","amount":"1250.00"},"raw_cells":["2026-01-05","Hosting","1250.00"]},{"row_index":2,"data":{"date":"2026-01-12","item":"Licenses","amount":"4500.00"},"raw_cells":["2026-01-12","Licenses","4500.00"]}]}]}}}}},"400":{"description":"Missing file, invalid type, empty file, or request is not multipart/form-data"},"401":{"description":"Missing or invalid API key"},"413":{"description":"Payload Too Large"},"429":{"description":"Rate limited"}}}},"/v1/example":{"get":{"summary":"Example extract response","description":"No file required. Returns a tiny 2-row JSON example so RapidAPI Hub testers can click Run without uploading a PDF or freezing the tab.","security":[],"responses":{"200":{"description":"Static example table JSON"}}}},"/v1/health":{"get":{"summary":"Health Check","description":"No file or extra headers required. Use this to confirm the Hub playground can show a Response.","security":[],"responses":{"200":{"description":"System Status"}}}}}}