---
canonical_url: "https://docs.composio.dev/toolkits/seatable"
markdown_url: "https://docs.composio.dev/toolkits/seatable.md"
product: "platform"
version: null
last_updated: null
---

# SeaTable

SeaTable is a collaborative no-code database and spreadsheet platform for managing structured base data, rows, tables, views, and files.

- **Category:** databases
- **Auth:** API_KEY
- **Composio-managed OAuth available?** N/A
- **Tools:** 8
- **Triggers:** 0
- **Slug:** `SEATABLE`
- **Version:** 00000000_00

## Tools

### Append Rows

**Slug:** `SEATABLE_APPEND_ROWS`

Append one or more rows to a table in the connected SeaTable base using exact human-readable column names. Requires a read-write per-base API token.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `rows` | array | Yes | One or more row objects keyed by exact human-readable column names. Every name is validated against the table schema before insertion. |
| `table_name` | string | Yes | Exact destination table name. Use Get Base Schema to discover it. |
| `apply_default` | boolean | No | Whether to apply configured column defaults to omitted fields. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Rows

**Slug:** `SEATABLE_DELETE_ROWS`

Permanently delete one or more rows by row ID from a named table in the connected SeaTable base.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `row_ids` | array | Yes | One or more SeaTable row _id values to permanently delete. |
| `table_name` | string | Yes | Exact table name containing the rows. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Base Schema

**Slug:** `SEATABLE_GET_BASE_SCHEMA`

Return the connected base identity and its complete table, column, view, and settings metadata without returning authentication tokens.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Download Link

**Slug:** `SEATABLE_GET_DOWNLOAD_LINK`

Generate a short-lived download URL for an existing file or image attachment in the connected SeaTable base. This tool returns a link and does not download the file bytes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `path` | string | Yes | Attachment path extracted from a SeaTable row attachment URL. It must begin with /files/YYYY-MM/ or /images/YYYY-MM/. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Row

**Slug:** `SEATABLE_GET_ROW`

Get one row by its SeaTable _id from a named table in the connected base. Returns human-readable column names by default and preserves all dynamic row fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `row_id` | string | Yes | SeaTable row identifier from the row's _id field. |
| `table_name` | string | Yes | Exact name of the table containing the row. |
| `convert_keys` | boolean | No | Return human-readable column names instead of internal column keys. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Rows

**Slug:** `SEATABLE_LIST_ROWS`

List one page of rows from a table or view in the connected SeaTable base, returning human-readable column names by default.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Maximum number of rows to return in this page (1-1000). |
| `start` | integer | No | Zero-based row offset for this page. |
| `view_name` | string | No | Optional exact view name. When set, return the rows visible in that view. |
| `table_name` | string | Yes | Exact table name from Get Base Schema. |
| `convert_keys` | boolean | No | Return human-readable column names instead of internal column keys. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Query Rows with SQL

**Slug:** `SEATABLE_QUERY_ROWS_WITH_SQL`

Run one strictly read-only SELECT query against the connected SeaTable base for filtering, sorting, grouping, aggregation, or implicit linked-record traversal. Explicit JOIN, subqueries, and UNION are unsupported.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sql` | string | Yes | A single read-only SELECT statement. Quote table names containing spaces with backticks, use ? placeholders for values, and include LIMIT (maximum documented SELECT result is 10000). |
| `parameters` | array | No | String or integer values replacing ? placeholders in order. Use these instead of interpolating untrusted values into SQL. |
| `server_only` | boolean | No | Query only normal server storage and exclude Big Data storage. |
| `convert_keys` | boolean | No | Return human-readable column names instead of internal column keys. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Rows

**Slug:** `SEATABLE_UPDATE_ROWS`

Update one or more existing SeaTable rows by row ID. Use exact table and column names from Get Base Schema; every column name is validated before the update, and only supplied columns are changed.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `updates` | array | Yes | One or more row updates. Each entry identifies a row and its changed columns. |
| `table_name` | string | Yes | Exact table name containing the rows. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
