Skip to content
Get started

Structured Sheets

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

List structured sheets
GET/v1/structured-sheets
Create structured sheet
POST/v1/structured-sheets
Delete structured sheet
DELETE/v1/structured-sheets/{structured_sheet_id}
Retrieve structured sheet
GET/v1/structured-sheets/{structured_sheet_id}
Cancel structured sheet processing
POST/v1/structured-sheets/{structured_sheet_id}/cancel
Download structured sheet export
GET/v1/structured-sheets/{structured_sheet_id}/download
ModelsExpand Collapse
StructuredSheetResponse = 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.

formatdate-time
file_id: string

The unique identifier for the source file.

object: "structured_sheet"

The object type, which is always 'structured_sheet'.

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

The current processing status.

One of the following:
"queued"
"in_progress"
"completed"
"failed"
"cancelled"
updated_at: string

The timestamp when the conversion was last updated.

formatdate-time
last_error: optional object { code, message }

Error information when processing fails.

code: string

A machine-readable error code.

maxLength64
message: string

A human-readable description of the error.

maxLength1024
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'.

minimum0

Structured SheetsTables

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

List tables in structured sheet
GET/v1/structured-sheets/{structured_sheet_id}/tables
Retrieve a table
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}
Download table data
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}/download
ModelsExpand Collapse
TableResponse = 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.

formatdate-time
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'.

maxLength255
object: "table"

The object type, which is always 'table'.

sheet_name: string

The original Excel sheet name this table came from.

maxLength100
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).

One of the following:
"relational"
"aggregation"
"tableless"
"metadata"