# Fields

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

Add fields and change their names, types, or workflow access.

## Add field

```http
POST /v1/lookup-tables/{table_id}/fields

```

Adds a field to a table, at the version you read. Its key is made from its name when you leave it out.

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

MCP action: `create_lookup_field`. 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                                                                                                                        |       |
| `name`              | JSON body                 | Yes      | string                                                                                                                        |       |
| `key`               | JSON body                 | No       | string                                                                                                                        |       |
| `type`              | JSON body                 | Yes      | `"text"`, `"number"`, `"boolean"`, `"date"`, `"timestamp"`, `"email"`, `"phone"`, `"domain"`, `"url"`, `"member"`, `"record"` |       |
| `workflow_readable` | JSON body                 | No       | boolean                                                                                                                       |       |
| `expected_version`  | JSON body                 | Yes      | integer                                                                                                                       |       |
| `request_key`       | Header: `Idempotency-Key` | Yes      | string                                                                                                                        |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `201`       | The requested result. Asynchronous work returns an operation to poll. |

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`                            | object                                                                                                                        | Yes                |                                                                             |
| `data.object`                     | `"lookup_table_configuration"`                                                                                                | Yes                |                                                                             |
| `data.id`                         | string                                                                                                                        | Yes                |                                                                             |
| `data.name`                       | string                                                                                                                        | Yes                |                                                                             |
| `data.kind`                       | `"generic"`, `"member_metadata"`, `"status_metadata"`, `"app_owned"`                                                          | Yes                |                                                                             |
| `data.version`                    | integer                                                                                                                       | Yes                |                                                                             |
| `data.fields`                     | array of object                                                                                                               | Yes                |                                                                             |
| `data.fields[].object`            | `"lookup_field"`                                                                                                              | Yes                |                                                                             |
| `data.fields[].id`                | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].key`               | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].name`              | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].type`              | `"text"`, `"number"`, `"boolean"`, `"date"`, `"timestamp"`, `"email"`, `"phone"`, `"domain"`, `"url"`, `"member"`, `"record"` | Yes                |                                                                             |
| `data.fields[].workflow_readable` | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].managed_by`        | `"customer"`, `"attio"`, `"slack"`, `"system"`                                                                                | Yes                |                                                                             |
| `data.fields[].type_locked`       | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].version`           | integer                                                                                                                       | Yes                |                                                                             |
| `data.lookups`                    | array of object                                                                                                               | Yes                |                                                                             |
| `data.lookups[].object`           | `"lookup_definition"`                                                                                                         | Yes                |                                                                             |
| `data.lookups[].id`               | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].field_id`         | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].default`          | boolean                                                                                                                       | Yes                |                                                                             |
| `data.pending_work`               | object or null                                                                                                                | Yes                |                                                                             |
| `data.pending_work.kind`          | `"starter"`, `"lookup_key"`, `"field_type"`                                                                                   | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.state`         | `"running"`, `"failed"`                                                                                                       | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.problem`       | string or null                                                                                                                | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.import_id`                  | string or null                                                                                                                | Yes                |                                                                             |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter, invalid_request.                                                                 |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `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.

## Change field

```http
PATCH /v1/lookup-tables/{table_id}/fields/{field_id}

```

Changes a field's name, type or workflow access, at the field's version you read. A field used by a workflow or a lookup keeps its type. Changing the type converts every value, and a large table's change is answered with 202: get the settings until pending_work is null. Values a type change replaces are not kept, so it can't be undone.

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

MCP action: `update_lookup_field`. 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                                                                                                                        |       |
| `field_id`          | path      | Yes      | string                                                                                                                        |       |
| `expected_version`  | JSON body | Yes      | integer                                                                                                                       |       |
| `name`              | JSON body | No       | string                                                                                                                        |       |
| `type`              | JSON body | No       | `"text"`, `"number"`, `"boolean"`, `"date"`, `"timestamp"`, `"email"`, `"phone"`, `"domain"`, `"url"`, `"member"`, `"record"` |       |
| `workflow_readable` | JSON body | No       | boolean                                                                                                                       |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |
| `202`       | The requested result. Asynchronous work returns an operation to poll. |

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`                            | object                                                                                                                        | Yes                |                                                                             |
| `data.object`                     | `"lookup_table_configuration"`                                                                                                | Yes                |                                                                             |
| `data.id`                         | string                                                                                                                        | Yes                |                                                                             |
| `data.name`                       | string                                                                                                                        | Yes                |                                                                             |
| `data.kind`                       | `"generic"`, `"member_metadata"`, `"status_metadata"`, `"app_owned"`                                                          | Yes                |                                                                             |
| `data.version`                    | integer                                                                                                                       | Yes                |                                                                             |
| `data.fields`                     | array of object                                                                                                               | Yes                |                                                                             |
| `data.fields[].object`            | `"lookup_field"`                                                                                                              | Yes                |                                                                             |
| `data.fields[].id`                | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].key`               | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].name`              | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].type`              | `"text"`, `"number"`, `"boolean"`, `"date"`, `"timestamp"`, `"email"`, `"phone"`, `"domain"`, `"url"`, `"member"`, `"record"` | Yes                |                                                                             |
| `data.fields[].workflow_readable` | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].managed_by`        | `"customer"`, `"attio"`, `"slack"`, `"system"`                                                                                | Yes                |                                                                             |
| `data.fields[].type_locked`       | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].version`           | integer                                                                                                                       | Yes                |                                                                             |
| `data.lookups`                    | array of object                                                                                                               | Yes                |                                                                             |
| `data.lookups[].object`           | `"lookup_definition"`                                                                                                         | Yes                |                                                                             |
| `data.lookups[].id`               | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].field_id`         | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].default`          | boolean                                                                                                                       | Yes                |                                                                             |
| `data.pending_work`               | object or null                                                                                                                | Yes                |                                                                             |
| `data.pending_work.kind`          | `"starter"`, `"lookup_key"`, `"field_type"`                                                                                   | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.state`         | `"running"`, `"failed"`                                                                                                       | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.problem`       | string or null                                                                                                                | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.import_id`                  | string or null                                                                                                                | Yes                |                                                                             |

Accepted work can continue after the request returns. Follow its returned status or operation until it finishes; accepting work does not mean every item succeeded. See [operation status](https://neondeerdata.com/docs/api/operations/).

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `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.

## Archive field

```http
POST /v1/lookup-tables/{table_id}/fields/{field_id}/archive

```

Archives a field, at the field's version you read: workflows and API keys stop seeing it, and it can't be restored. This can't be undone.

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

MCP action: `archive_lookup_field`. 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                 |       |
| `field_id`         | path      | Yes      | string                 |       |
| `expected_version` | JSON body | Yes      | integer                |       |

### Response

| HTTP status | Result                                                                |
| ----------- | --------------------------------------------------------------------- |
| `200`       | The requested result. Asynchronous work returns an operation to poll. |

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`                            | object                                                                                                                        | Yes                |                                                                             |
| `data.object`                     | `"lookup_table_configuration"`                                                                                                | Yes                |                                                                             |
| `data.id`                         | string                                                                                                                        | Yes                |                                                                             |
| `data.name`                       | string                                                                                                                        | Yes                |                                                                             |
| `data.kind`                       | `"generic"`, `"member_metadata"`, `"status_metadata"`, `"app_owned"`                                                          | Yes                |                                                                             |
| `data.version`                    | integer                                                                                                                       | Yes                |                                                                             |
| `data.fields`                     | array of object                                                                                                               | Yes                |                                                                             |
| `data.fields[].object`            | `"lookup_field"`                                                                                                              | Yes                |                                                                             |
| `data.fields[].id`                | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].key`               | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].name`              | string                                                                                                                        | Yes                |                                                                             |
| `data.fields[].type`              | `"text"`, `"number"`, `"boolean"`, `"date"`, `"timestamp"`, `"email"`, `"phone"`, `"domain"`, `"url"`, `"member"`, `"record"` | Yes                |                                                                             |
| `data.fields[].workflow_readable` | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].managed_by`        | `"customer"`, `"attio"`, `"slack"`, `"system"`                                                                                | Yes                |                                                                             |
| `data.fields[].type_locked`       | boolean                                                                                                                       | Yes                |                                                                             |
| `data.fields[].version`           | integer                                                                                                                       | Yes                |                                                                             |
| `data.lookups`                    | array of object                                                                                                               | Yes                |                                                                             |
| `data.lookups[].object`           | `"lookup_definition"`                                                                                                         | Yes                |                                                                             |
| `data.lookups[].id`               | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].field_id`         | string                                                                                                                        | Yes                |                                                                             |
| `data.lookups[].default`          | boolean                                                                                                                       | Yes                |                                                                             |
| `data.pending_work`               | object or null                                                                                                                | Yes                |                                                                             |
| `data.pending_work.kind`          | `"starter"`, `"lookup_key"`, `"field_type"`                                                                                   | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.state`         | `"running"`, `"failed"`                                                                                                       | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.pending_work.problem`       | string or null                                                                                                                | Yes                | When data.pending_work.kind is `"starter"`, `"lookup_key"`, `"field_type"`. |
| `data.import_id`                  | string or null                                                                                                                | Yes                |                                                                             |

### Errors

| HTTP status | Meaning                                                                                                                                           |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`       | One of: credential_in_url, invalid_parameter, unknown_parameter.                                                                                  |
| `401`       | One of: missing_credential, invalid_credential, credential_expired, credential_revoked.                                                           |
| `402`       | One of: payment_overdue.                                                                                                                          |
| `403`       | The current permissions, plan or policy do not allow this request.                                                                                |
| `404`       | One of: not_found.                                                                                                                                |
| `409`       | The request conflicts with current resource state, authorization or an earlier request. Read the error code and current resource before retrying. |
| `410`       | The requested resource or retained recovery data has expired.                                                                                     |
| `413`       | One of: request_too_large.                                                                                                                        |
| `422`       | A field, filter or selection cannot be used for this request.                                                                                     |
| `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.
