Skip to content
Get started

Structured Sheets

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

List structured sheets
structured_sheets.list(StructuredSheetListParams**kwargs) -> SyncCursorIDPage[StructuredSheetResponse]
GET/v1/structured-sheets
Create structured sheet
structured_sheets.create(StructuredSheetCreateParams**kwargs) -> StructuredSheetResponse
POST/v1/structured-sheets
Delete structured sheet
structured_sheets.delete(strstructured_sheet_id) -> StructuredSheetDeleteResponse
DELETE/v1/structured-sheets/{structured_sheet_id}
Retrieve structured sheet
structured_sheets.retrieve(strstructured_sheet_id) -> StructuredSheetResponse
GET/v1/structured-sheets/{structured_sheet_id}
Cancel structured sheet processing
structured_sheets.cancel(strstructured_sheet_id) -> StructuredSheetResponse
POST/v1/structured-sheets/{structured_sheet_id}/cancel
Download structured sheet export
structured_sheets.download(strstructured_sheet_id, StructuredSheetDownloadParams**kwargs) -> BinaryResponseContent
GET/v1/structured-sheets/{structured_sheet_id}/download
ModelsExpand Collapse
class StructuredSheetResponse:

Response representing a structured sheet conversion job.

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

id: str

The unique identifier for this structured sheet conversion.

created_at: datetime

The timestamp when the conversion was started.

formatdate-time
file_id: str

The unique identifier for the source file.

object: Literal["structured_sheet"]

The object type, which is always 'structured_sheet'.

status: Literal["queued", "in_progress", "completed", 2 more]

The current processing status.

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

The timestamp when the conversion was last updated.

formatdate-time
last_error: Optional[LastError]

Error information when processing fails.

code: str

A machine-readable error code.

maxLength64
message: str

A human-readable description of the error.

maxLength1024
sheet_names: Optional[List[str]]

List of sheet names included in this conversion.

table_count: Optional[int]

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
structured_sheets.tables.list(strstructured_sheet_id, TableListParams**kwargs) -> SyncCursorIDPage[TableResponse]
GET/v1/structured-sheets/{structured_sheet_id}/tables
Retrieve a table
structured_sheets.tables.retrieve(strtable_id, TableRetrieveParams**kwargs) -> TableResponse
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}
Download table data
structured_sheets.tables.download(strtable_id, TableDownloadParams**kwargs) -> BinaryResponseContent
GET/v1/structured-sheets/{structured_sheet_id}/tables/{table_id}/download
ModelsExpand Collapse
class TableResponse:

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: str

The unique identifier for this table.

created_at: datetime

The timestamp when this table was created.

formatdate-time
name: str

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: Literal["table"]

The object type, which is always 'table'.

sheet_name: str

The original Excel sheet name this table came from.

maxLength100
structured_sheet_id: str

The ID of the structured sheet this table belongs to.

type: Literal["relational", "aggregation", "tableless", "metadata"]

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

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