# Update a row

Source: https://neondeerdata.com/docs/api/lookup-tables/update-row/

Change selected values in an existing lookup-table row.

## Request

```http
PATCH /v1/lookup-tables/{table_id}/rows/{row_id}

```

Changes some of a row's values: a field left out keeps its value and null empties it. Send the row's version as expected_version so the change applies only if the row has not changed since you read it. Needs an API key that can write. What this replaces is not kept, so it can't be undone.

Requires `lookup_tables:write`. The connection also needs access to the relevant tables, objects, or workflows.

MCP action: `update_lookup_row`. Its argument names match the fields below; an HTTP header is passed using its argument name in MCP.

## Parameters

| Name               | Send in   | Required | Type or allowed values | Notes |
| ------------------ | --------- | -------- | ---------------------- | ----- |
| `table_id`         | path      | Yes      | string                 |       |
| `row_id`           | path      | Yes      | string                 |       |
| `values`           | JSON body | Yes      | object                 |       |
| `expected_version` | JSON body | No       | integer                |       |

## Response

| HTTP status | Result                |
| ----------- | --------------------- |
| `200`       | The row as it is now. |

Required fields are required within their containing object. Notes identify fields that apply only to a particular response alternative.

| Response field            | Type               | Required in object | Notes |
| ------------------------- | ------------------ | ------------------ | ----- |
| `data`                    | LookupRow          | Yes                |       |
| `data.id`                 | string (uuid)      | Yes                |       |
| `data.object`             | `"lookup_row"`     | Yes                |       |
| `data.values`             | object             | Yes                |       |
| `data.version`            | integer            | Yes                |       |
| `data.roster_verified_at` | string (date-time) | No                 |       |

## Errors

| HTTP status | Meaning                                                                                                                                                   |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: invalid_request, invalid_filter, invalid_value, invalid_cursor, credential_in_url.                                                                |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                                   |
| `402`       | One of: payment_overdue.                                                                                                                                  |
| `403`       | One of: plan_required, not_available, insufficient_scope, operation_not_allowed, field_not_writable, plan_capacity_exceeded.                              |
| `404`       | One of: resource_not_found.                                                                                                                               |
| `409`       | One of: table_filling, table_fill_failed, lookup_key_required, key_conflict, version_conflict, table_busy, table_capacity_exceeded, idempotency_conflict. |
| `413`       | One of: request_too_large.                                                                                                                                |
| `422`       | One of: batch_rejected.                                                                                                                                   |
| `423`       | One of: organization_reopening.                                                                                                                           |
| `428`       | One of: customer_agreement_required.                                                                                                                      |
| `429`       | One of: rate_limited.                                                                                                                                     |
| `503`       | One of: service_unavailable.                                                                                                                              |

See [errors and recovery](https://neondeerdata.com/docs/api/errors/) and [safe retries](https://neondeerdata.com/docs/api/requests/) before repeating a write.

The [public OpenAPI document](https://neondeerdata.com/docs/api/meta/openapi/) lists generally available API families. Alpha operations may not appear in that document; their request and response fields are listed on this page. Use the [API Playground](https://neondeerdata.com/docs/api/testing/) to inspect a real response with your connection's access.
