--- title: 'POST /docs/{docId}/tables/{tableIdOrName}/rows' description: 'Insert or update rows' --- # POST /docs/{docId}/tables/{tableIdOrName}/rows Insert or update rows | Detail | Value | |---|---| | Operation ID | `data.upsertRows` | | Method | `POST` | | Path | `/docs/{docId}/tables/{tableIdOrName}/rows` | | Connector | [Coda](./) | ## Parameters | Name | Location | Type | Required | |---|---|---|---| | `docId` | path | string | **Yes** | | `tableIdOrName` | path | string | **Yes** | ## Request Body | Field | Type | |---|---| | `rows` | array | | `keyColumns` | array | ## Using this endpoint in a workflow 1. Add an **API Call** node to your workflow. 2. Pick your Coda connection from the Connection dropdown. 3. In the Operation dropdown, select `data.upsertRows`. 4. Fill in the parameter fields that appear. Use `{{...}}` to reference upstream values. **Required fields are marked — fill them or the call will fail at runtime.** ## What it returns The `API Call` node writes the response to the workflow context: ``` { status: 200, success: true, data: { ...response body from the API... }, latencyMs: 142 } ``` Reference response fields downstream as {{nodeId.data.path}}. The exact response shape is documented on the upstream Coda API reference.