---
title: "Update a view"
method: PATCH
path: "/v1/views/{viewId}"
tags: ["Views"]
---

# Update a view

`PATCH /v1/views/{viewId}`

## Request

- Base URL: `https://api.folk.app`
- URL: `https://api.folk.app/v1/views/{viewId}`
- Auth: HTTP bearer

Update the settings of a view of a group, or of one of your personal views. Only the settings sent are changed; `filter`, `visibleFields`, `sort` and `columns` replace the current value. A view never changes group, entity type or type.

## Path parameters

- `viewId` string, required

## Headers

- `Idempotency-Key` string: A unique key, such as a UUID, that makes retrying this request safe: a retry with the same key and body returns the original response without running the operation again. Keys are kept for 24 hours after the request completes.

## Request body

- UpdateViewInput: The settings of the view to change. The others are kept. A view never changes group, entity type or type.
  - `name` string
  - `filter` object, nullable: The filter of the view, `null` or absent for no filter. Unlike the search endpoints, the filter is a list of conditions.
    - `combinator` 'and' | 'or', required: The logical operator combining the conditions.
    - `conditions` object[], required: The conditions of the filter, in order, at most 50. The same field can appear in several conditions. An empty list means no filter.
      - `field` string, required: The field the condition applies to, with the same keys as the filters of the search endpoints, e.g. `jobTitle`, `company.industry` or `customFieldValues.<groupId>.<Field name>`.
      - `operator` 'eq' | 'not_eq' | 'like' | 'not_like' | 'gt' | 'lt' | 'in' | 'all' | 'not_in' | 'empty' | 'not_empty', required
      - `value` union: The value of the condition: - a single value for `eq`, `not_eq`, `like`, `not_like`, `gt` and `lt` on text, number and date fields; - a list for `in`, `all` and `not_in`, and for `eq` and `not_eq` on select, user and reference fields, where they mean "exactly these values"; - absent for `empty` and `not_empty`. Select options are given by label, users by `{ id }` or `{ email }`, people, companies and groups by `{ id }`, dates as `YYYY-MM-DD` or relative dates (`today`, `yesterday`, `tomorrow`, `7-days-ago`, `in-3-months`).
        - string
        - string[]
        - union[]
          - union
            - object
              - …
            - object
              - …
  - `visibleFields` string[]: The fields shown by the view, in display order, with the same keys as the filter, at most 100. The name column is always shown and is never listed.
  - `sort` object: Table views only.
    - `field` string, required
    - `direction` 'asc' | 'desc', required
  - `groupBy` string: Kanban views only. Without `columns`, the columns are kept when the field is the current one, and reset to the options of the new field otherwise, with the "No value" column hidden if it was.
  - `columns` object[]: Kanban views only. The columns, in display order: every option of the `groupBy` field once, plus `null` for the "No value" column.
    - `option` string, nullable, required: The label of the option of the `groupBy` field, `null` for the "No value" column.
    - `hidden` boolean
  - `position` union: Where the view goes among the views of its group: `{ "after": <viewId> }`, `{ "before": <viewId> }`, `{ "after": null }` for the first position or `{ "before": null }` for the last one.
    - object
      - `after` string, nullable, required
    - object
      - `before` string, nullable, required

## Response `200`

The updated view.

- object
  - `data` union, required
    - object: A view displaying the entities as rows.
      - `id` string, required
      - `groupId` string, nullable, required: The group the view belongs to, `null` for personal views, which belong to no group.
      - `name` string, required
      - `entityType` string, required: The entity type of the view: `person`, `company`, or the name of an object type of the group.
      - `filter` object, nullable, required: The filter of the view, `null` when the view has no filter. Unlike the search endpoints, the filter is a list of conditions.
        - `combinator` 'and' | 'or', required: The logical operator combining the conditions.
        - `conditions` object[], required: The conditions of the filter, in order. The same field can appear in several conditions.
          - `field` string, required: The field the condition applies to, with the same keys as the filters of the search endpoints, e.g. `jobTitle`, `company.industry` or `customFieldValues.<groupId>.<Field name>`.
          - `operator` 'eq' | 'not_eq' | 'like' | 'not_like' | 'gt' | 'lt' | 'in' | 'all' | 'not_in' | 'empty' | 'not_empty', required
          - `value` union: The value of the condition: - a single value for `eq`, `not_eq`, `like`, `not_like`, `gt` and `lt` on text, number and date fields; - a list for `in`, `all` and `not_in`, and for `eq` and `not_eq` on select, user and reference fields, where they mean "exactly these values"; - absent for `empty` and `not_empty`. Select options are given by label, users, people, companies and groups by `{ id }`, dates as `YYYY-MM-DD` or relative dates (`today`, `yesterday`, `tomorrow`, `7-days-ago`, `in-3-months`).
            - string
            - string[]
            - object[]
              - …
      - `visibleFields` string[], required: The fields shown by the view, in display order, with the same keys as the filter. The name column is always shown and never listed.
      - `position` object, required: The position of the view in the list of views of its group, or among the user's personal views, as in the app's sidebar.
        - `after` string, nullable, required: The id of the view just before this one in its group, or among the personal views, `null` for the first view.
      - `createdAt` string, date-time, required
      - `createdBy` object, nullable, required: The user who created the view, `null` when it was created by folk.
        - `id` string, required
        - `fullName` string, required
        - `email` string, required
      - `type` 'table', required
      - `sort` object, required: The sort of the view. When the sorted field no longer exists, the default sort of the entity type is returned.
        - `field` string, required
        - `direction` 'asc' | 'desc', required
    - object: A view displaying the entities as cards, in columns.
      - `id` string, required
      - `groupId` string, nullable, required: The group the view belongs to, `null` for personal views, which belong to no group.
      - `name` string, required
      - `entityType` string, required: The entity type of the view: `person`, `company`, or the name of an object type of the group.
      - `filter` object, nullable, required: The filter of the view, `null` when the view has no filter. Unlike the search endpoints, the filter is a list of conditions.
        - `combinator` 'and' | 'or', required: The logical operator combining the conditions.
        - `conditions` object[], required: The conditions of the filter, in order. The same field can appear in several conditions.
          - `field` string, required: The field the condition applies to, with the same keys as the filters of the search endpoints, e.g. `jobTitle`, `company.industry` or `customFieldValues.<groupId>.<Field name>`.
          - `operator` 'eq' | 'not_eq' | 'like' | 'not_like' | 'gt' | 'lt' | 'in' | 'all' | 'not_in' | 'empty' | 'not_empty', required
          - `value` union: The value of the condition: - a single value for `eq`, `not_eq`, `like`, `not_like`, `gt` and `lt` on text, number and date fields; - a list for `in`, `all` and `not_in`, and for `eq` and `not_eq` on select, user and reference fields, where they mean "exactly these values"; - absent for `empty` and `not_empty`. Select options are given by label, users, people, companies and groups by `{ id }`, dates as `YYYY-MM-DD` or relative dates (`today`, `yesterday`, `tomorrow`, `7-days-ago`, `in-3-months`).
            - string
            - string[]
            - object[]
              - …
      - `visibleFields` string[], required: The fields shown by the view, in display order, with the same keys as the filter. The name column is always shown and never listed.
      - `position` object, required: The position of the view in the list of views of its group, or among the user's personal views, as in the app's sidebar.
        - `after` string, nullable, required: The id of the view just before this one in its group, or among the personal views, `null` for the first view.
      - `createdAt` string, date-time, required
      - `createdBy` object, nullable, required: The user who created the view, `null` when it was created by folk.
        - `id` string, required
        - `fullName` string, required
        - `email` string, required
      - `type` 'kanban', required
      - `groupBy` string, required: The single select field the columns come from.
      - `columns` object[], required: The columns, in display order: one per option of the `groupBy` field, plus the "No value" column.
        - `option` string, nullable, required: The label of the option of the `groupBy` field, `null` for the "No value" column.
        - `hidden` boolean, required
  - `deprecations` string[]

## Other responses

- `400`: The request was unacceptable, often due to missing an invalid parameter.
- `401`: No valid API key provided.
- `403`: The API key doesn’t have permissions to perform the request.
- `404`: The requested resource doesn’t exist.
- `409`: A request with the same `Idempotency-Key` is still being processed, or the resource is in a state that does not allow the operation.
- `422`: The request was unacceptable, often due to missing or invalid parameters.
- `429`: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
- `500`: Something went wrong on our end.
- `503`: The server is overloaded or down for maintenance.

## Changes

- **2026-11-03** `c6818f3ba60d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/folk/apis/folk-external-api/changes/v1/views/:viewId/patch.md)

---

[API](https://skmtc.dev/folk/apis/folk-external-api.md) - [All operations](https://skmtc.dev/folk/apis/folk-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/folk/apis/folk-external-api/revisions/c6818f3ba60d?raw)
