> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summation.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tables & views

> Read, write, and compute Summation tables and views over the API.

Summation tables come in several flavors: hand-authored data tables, connector-backed source tables, computed calculation and dimension tables, and views over them. The API surface splits across three areas: `/v1/tables` for tables and rows, `/v1/views` for views, and `/v1/grid` for the computed graph.

Row appends and ingestion batches need the `tables:append` scope, not `agent:write` (see [Authentication](/api/authentication#scopes)). Product-side docs: [Tables](/features/tables).

## Find and open a table

<CardGroup cols={2}>
  <Card title="GET /v1/tables" icon="code" href="/api-reference/tables/list-tables" horizontal>
    List tables in the data grid.
  </Card>

  <Card title="GET /v1/tables/{table_id}" icon="code" href="/api-reference/tables/show-table" horizontal>
    Show a table's definition: its columns, types, and source, plus an `appendable` annotation for whether it accepts row appends. (Catalog metadata is a separate endpoint, below.)
  </Card>

  <Card title="GET /v1/tables/{table_id}/data" icon="code" href="/api-reference/tables/fetch-table-data" horizontal>
    Preview a table's rows.
  </Card>
</CardGroup>

## Catalog

<CardGroup cols={2}>
  <Card title="GET /v1/tables/catalog" icon="code" href="/api-reference/tables/list-table-catalog" horizontal>
    List table catalog metadata across the tenant.
  </Card>

  <Card title="GET /v1/tables/{table_id}/catalog" icon="code" href="/api-reference/tables/show-table-catalog" horizontal>
    Show a table's catalog.
  </Card>

  <Card title="PATCH /v1/tables/{table_id}/catalog" icon="code" href="/api-reference/tables/update-table-catalog" horizontal>
    Update a table's catalog (description, owner, source system, modeling tier, agent description).
  </Card>
</CardGroup>

## Lineage

<Card title="GET /v1/grid/tables/{table_id}/lineage" icon="code" href="/api-reference/grid/show-table-lineage" horizontal>
  Show a table's lineage.
</Card>

## Delete a table

<Card title="DELETE /v1/tables/{table_id}" icon="code" href="/api-reference/tables/delete-table" horizontal>
  Delete a table. Requires the `agent:write` scope and `confirm=true` (a `400` otherwise); optional `force` and `metadata_only` query params.
</Card>

## Create a calculation table

<CardGroup cols={2}>
  <Card title="POST /v1/grid/tables" icon="code" href="/api-reference/grid/create-grid-table" horizontal>
    Create a calculation table from a SELECT query. This is the default (`kind: "calc"`); the same route also creates [data tables](/features/tables/data) with `kind: "data"`.
  </Card>

  <Card title="POST /v1/grid/tables/{table_id}/materialize" icon="code" href="/api-reference/grid/materialize-calculation-table" horizontal>
    Materialize the table so it can be queried.
  </Card>

  <Card title="POST /v1/grid/tables/{table_id}/synchronizations" icon="code" href="/api-reference/grid/synchronize-materialized-table" horizontal>
    Refresh it from the latest source data.
  </Card>
</CardGroup>

## Create a data table

<CardGroup cols={2}>
  <Card title="POST /v1/grid/tables" icon="code" href="/api-reference/grid/create-grid-table" horizontal>
    Create an empty data table from a column schema with `kind: "data"` and `columns`. The API adds an integer `s_id` primary key and an `_sm_created_at` timestamp for you, so don't declare them. The id it returns accepts appends immediately. Use this rather than [`POST /v1/table-imports`](/api-reference/tables/create-table-import), which loads a table from an uploaded file and produces an import table that does *not* accept appends.
  </Card>

  <Card title="POST /v1/tables/{table_id}/rows" icon="code" href="/api-reference/tables/append-rows-to-a-table" horizontal>
    Append 1–500 rows per request; every row must include the table's primary key column(s) (a `400` otherwise). Returns `200` when all rows apply, `207` for a partial result, or `422`; a `409` means the table isn't promoted yet. Requires the `tables:append` scope.
  </Card>

  <Card title="PUT /v1/tables/{table_id}/rows" icon="code" href="/api-reference/tables/upsert-rows-into-a-table" horizontal>
    Upsert rows (insert or update by key), with the same 1–500 row limit and `tables:append` scope.
  </Card>

  <Card title="POST /v1/tables/{table_id}/ingestion-batches" icon="code" href="/api-reference/tables/create-an-ingestion-batch" horizontal>
    Start a batched (multipart) ingestion for larger loads.
  </Card>

  <Card title="POST .../ingestion-batches/{batch_id}/parts/{part_number}/upload-url" icon="code" href="/api-reference/tables/create-a-batch-part-upload-url" horizontal>
    Get a presigned URL to upload one part of a batch.
  </Card>

  <Card title="POST .../ingestion-batches/{batch_id}/commit" icon="code" href="/api-reference/tables/commit-an-ingestion-batch" horizontal>
    Commit the batch to apply its rows.
  </Card>

  <Card title="DELETE .../ingestion-batches/{batch_id}" icon="code" href="/api-reference/tables/abort-an-ingestion-batch" horizontal>
    Abort a batch and discard its parts. Requires the `tables:append` scope and `confirm=true`.
  </Card>

  <Card title="GET .../ingestion-batches/{batch_id}" icon="code" href="/api-reference/tables/get-an-ingestion-batch" horizontal>
    Check a batch's status.
  </Card>
</CardGroup>

## Create a source table

<Card title="POST /v1/table-imports" icon="code" href="/api-reference/tables/create-table-import" horizontal>
  Import a file into a new source table, or refresh an existing one: set `import_type` to `FULL_REFRESH` or `INCREMENTAL_REFRESH` to re-import into a table that already exists (the API counterpart of the refresh above).
</Card>

<Card title="GET /v1/table-imports/{import_id}" icon="code" href="/api-reference/tables/show-table-import" horizontal>
  Poll an import's status.
</Card>

## Create and manage

<CardGroup cols={2}>
  <Card title="GET /v1/views" icon="code" href="/api-reference/views/list-views" horizontal>
    List views (optionally for one table).
  </Card>

  <Card title="GET /v1/views/{view_id}" icon="code" href="/api-reference/views/show-view" horizontal>
    Show a view's definition.
  </Card>

  <Card title="GET /v1/views/{view_id}/data" icon="code" href="/api-reference/views/fetch-view-data" horizontal>
    Fetch a page of the view's rows.
  </Card>

  <Card title="DELETE /v1/views/{view_id}" icon="code" href="/api-reference/views/delete-view" horizontal>
    Delete a view.
  </Card>
</CardGroup>

## Catalog

<Card title="GET /v1/views/{view_id}/catalog" icon="code" href="/api-reference/views/show-view-catalog" horizontal>
  Show a view's catalog.
</Card>

<Card title="PATCH /v1/views/{view_id}/catalog" icon="code" href="/api-reference/views/update-view-catalog" horizontal>
  Update a view's catalog (description, owner, agent description).
</Card>
