Skip to content
Get started

Structured Sheets

Convert uploaded spreadsheets into structured data. Creates relational tables from messy spreadsheet data.

List structured sheets
$ deeptable structured-sheets list
GET/v1/structured-sheets
Create structured sheet
$ deeptable structured-sheets create
POST/v1/structured-sheets
Delete structured sheet
$ deeptable structured-sheets delete
DELETE/v1/structured-sheets/{structured_sheet_id}
Retrieve structured sheet
$ deeptable structured-sheets retrieve
GET/v1/structured-sheets/{structured_sheet_id}
Cancel structured sheet processing
$ deeptable structured-sheets cancel
POST/v1/structured-sheets/{structured_sheet_id}/cancel
Download structured sheet export
$ deeptable structured-sheets download
GET/v1/structured-sheets/{structured_sheet_id}/download
ModelsExpand Collapse
structured_sheet_response: object { id, created_at, file_id, 6 more }

Response representing a structured sheet conversion job.

This is returned from POST (create), GET (retrieve), and list endpoints.

id: string

The unique identifier for this structured sheet conversion.

created_at: string

The timestamp when the conversion was started.

file_id: string

The unique identifier for the source file.

object: "structured_sheet"

The object type, which is always 'structured_sheet'.

"structured_sheet"
status: "queued" or "in_progress" or "completed" or 2 more

The current processing status.

"queued"
"in_progress"
"completed"
"failed"
"cancelled"
updated_at: string

The timestamp when the conversion was last updated.

last_error: optional object { code, message }

Error information when processing fails.

code: string

A machine-readable error code.

message: string

A human-readable description of the error.

sheet_names: optional array of string

List of sheet names included in this conversion.

table_count: optional number

Number of tables extracted from the workbook. Only present when status is 'completed'.

Structured SheetsTables

Convert uploaded spreadsheets into structured data. Creates relational tables from messy spreadsheet data.

List tables in structured sheet
$ deeptable structured-sheets:tables list
GET/v1/structured-sheets/{structured_sheet_id}/tables
Retrieve a table
$ deeptable structured-sheets:tables retrieve
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}
Download table data
$ deeptable structured-sheets:tables download
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}/download
ModelsExpand Collapse
table_response: object { id, created_at, name, 4 more }

Response representing a table extracted from a structured sheet.

This is returned from GET (retrieve) and list table endpoints. Table names use a composite format: {normalized_sheet_name}__{table_name}.

id: string

The unique identifier for this table.

created_at: string

The timestamp when this table was created.

name: string

Composite table name: {normalized_sheet_name}__{table_name}. Uses lowercase snake_case. Aggregation tables end with '__aggregations'. Two special metadata tables exist per structured sheet: '__deeptable_workbook_metadata' (workbook provenance info) and '__deeptable_table_overview' (summary of all tables). Example: 'staffing__head_count' or 'staffing__head_count__aggregations'.

object: "table"

The object type, which is always 'table'.

"table"
sheet_name: string

The original Excel sheet name this table came from.

structured_sheet_id: string

The ID of the structured sheet this table belongs to.

type: "relational" or "aggregation" or "tableless" or "metadata"

The type of table (relational, aggregation, tableless, or metadata).

"relational"
"aggregation"
"tableless"
"metadata"