Rows
Read and write rows on a table surface. Single-row CRUD, atomic bulk ops up to 500 changes per call, cross-surface moves, and per-cell change history.
Generated from src/lib/api-paths/rows.ts. The body schemas come straight from CreateRowSchema, UpdateRowSchema, and MoveRowsSchema in the runtime, so what's documented here is what's enforced.
get/api/workspaces/{slug}/rows
List rows in a workspace
Returns rows from the workspace's primary table surface unless `?surface=<slug>` is passed. Newest-first by default.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
surface | string | no | Surface slug to scope to. Omit for the primary table surface. |
limit | string | no | Page size. Default 50, max 500. |
offset | string | no | Offset-based pagination cursor. |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Row list with total count. |
403 | Error | Forbidden. |
post/api/workspaces/{slug}/rows
Create a row
Add a new row to a table surface. `data` keys must match column ids on the surface; values are coerced to the column type.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
data | object | yes | |
position | integer | no | |
surfaceId | string | no | |
surface | string | no |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Created. |
400 | Error | Invalid body. |
402 | Error | Row cap reached for the current plan. |
403 | Error | Forbidden. |
get/api/workspaces/{slug}/rows/{id}
Get a single row
Fetch one row by id, including its current cell values.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes | |
id | string | yes |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Row detail. |
404 | Error | Row not found. |
patch/api/workspaces/{slug}/rows/{id}
Update a row
Patch the `data` field on an existing row. Only the column keys you include get updated; other cells are left alone.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes | |
id | string | yes |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
data | object | yes | |
position | integer | no | |
surfaceId | string | no | |
surface | string | no |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Updated. |
delete/api/workspaces/{slug}/rows/{id}
Delete a row
Permanent. No soft-delete on individual rows.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes | |
id | string | yes |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Deleted. |
post/api/workspaces/{slug}/rows/bulk
Bulk row operations
Atomic create + update + delete in a single request. Up to 500 ops per call. All ops apply in one Prisma transaction so partial-success scenarios don't happen.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
create | object[] | no | |
patch | object[] | no | |
delete | string[] | no |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Bulk applied. |
post/api/workspaces/{slug}/rows/move
Move rows to a different surface
Atomic batch move. All rows move to the target surface (specified by `surfaceId` or `surface` slug). Positions are recomputed at the destination tail.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
rowIds | string[] | yes | |
surfaceId | string | no | |
surface | string | no |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | Moved. |
get/api/workspaces/{slug}/rows/{id}/history
Row change history
Per-cell change history for one row. Returns chronological diffs with author + timestamp.
Auth: Bearer token (API key or OAuth access token).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
slug | string | yes | |
id | string | yes |
Responses
| Status | Body | Description |
|---|---|---|
200 | object | History entries. |
Related
- Web → Table mode — UI for the same cells (find/replace, drag-fill, CSV export, keyboard nav).
- Surfaces API — manage the table tabs that hold rows.
- Comments API — anchor a comment to a row or cell.
- Error codes — including the 402 row-cap error per plan.