The table extraction API for rows trapped in documents.
Extract table rows from PDFs, scans, photos, and forms. Define the row shape in your schema and get structured arrays back without layout-specific parsing.
Get started today for free. No credit card required.
See a checklist table become row data.
Repeated rows in inspections, statements, invoices, and reports can be returned as structured arrays with the column names your app needs.

{
"data": {
"document_type": "Site safety inspection report",
"site": "Northbrook Plant Upgrade",
"rows": [
{
"item": "Scaffolding securely erected",
"status": "Pass",
"notes": "Valid certificate displayed"
},
{
"item": "Walkways clear of debris",
"status": "Fail",
"notes": "debris blocking main access path"
}
]
}
}Describe the row shape. Get arrays back.
Table extraction uses the same structured mode as every OCRWell workflow. Ask for the columns your app needs and receive consistent JSON for each repeated row.
# Extract repeating rows from a table
$ curl https://api.ocrwell.com/v1/documents \
-H "X-API-Key: $OCRWELL_KEY" \
-d '{
"upload_id":"upl_01H7",
"mode":"structured",
"schema":{
"document_type":"string",
"table_name":"string",
"rows":[
{
"item":"string",
"status":"string",
"reference":"string",
"notes":"string"
}
]
}
}'{
"job": {
"id": "019539a6-6c3d-7e5f",
"status": "completed",
"mode": "structured"
},
"result": {
"data": {
"document_type": "Inspection report",
"table_name": "Safety checklist",
"rows": [
{
"item": "Fire exits clear",
"status": "Pass",
"reference": "A1",
"notes": "Rear exit clear"
},
{
"item": "Emergency lights tested",
"status": "Review",
"reference": "B3",
"notes": "One fitting flickers"
}
]
}
}
}Where teams use table extraction.
Invoice and receipt rows
Extract line items from invoices, receipts, purchase orders, and bills without writing table-coordinate parsing for every layout.
Statements and reports
Turn transaction tables, schedule tables, and report summaries into rows your app can index, reconcile, validate, or review.
Forms with repeated answers
Inspection checklists, audit worksheets, and clinical forms often behave like tables. Define the row shape and get repeatable JSON back.
Table extraction questions.
Can the API extract tables as JSON?
Yes. Define the row object you want in your schema, then place it inside an array. OCRWell returns one object for each detected row.
Does it only work on bordered tables?
No. Structured mode is useful for bordered tables, spaced columns, repeated form sections, and line-item lists that behave like tables.
Can I choose the table columns?
Yes. The schema controls the fields in each returned row, so your app receives the column names and types it expects.
Start free. Pay only when you scale.
- No credit card required.
- Hard cap, no overage charges.
- Paid plans from $20/mo when you grow.
Explore nearby OCR workflows.
Extract table rows today.
Generate an API key, upload your first table-heavy document, and get structured rows back in seconds. Free forever tier covers 200 OCR pages per month.