---
title: "Update a view bundle (select/filter/sort arrays are replaced wholesale when supplied)"
method: PATCH
path: "/v2/prism/{teamId}/contact/views/{viewId}"
---

# Update a view bundle (select/filter/sort arrays are replaced wholesale when supplied)

`PATCH /v2/prism/{teamId}/contact/views/{viewId}`

## Path parameters

- `teamId` string, uuid, required
- `viewId` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- ViewBundlePatch — Partial update. Any of select/filter/sort, when present, replaces that group wholesale.
  - `name` string
  - `icon` string, nullable
  - `view_type` string
  - `combinator` 'AND' | 'OR'
  - `sort_order` integer, nullable
  - `column_layout` object, nullable
  - `team_id` string, uuid, nullable
  - `list_id` string, uuid, nullable
  - `user_id` string, nullable
  - `group_by` string, nullable
  - `group_sort` string, nullable
  - `group_hide_empty` boolean, nullable
  - `group_hidden_option_ids` object, nullable
  - `aggregation_type` string, nullable
  - `aggregation_prop_def_id` string, uuid, nullable
  - `select` string[]
  - `filter` object[]
  - `sort` object[]

## Response `200`

OK

- ViewBundle — A view (saved configuration for displaying records of a given object type) plus its select/filter/sort children. Properties in select/filter/sort are referenced by slug.
  - `id` string, uuid
  - `team_id` string, uuid, nullable
  - `list_id` string, uuid, nullable
  - `user_id` string, nullable
  - `name` string, required
  - `icon` string, nullable
  - `view_type` string, required
  - `combinator` 'AND' | 'OR'
  - `sort_order` integer, nullable
  - `column_layout` object, nullable
  - `group_by` string, nullable — Property slug to group by
  - `group_sort` string, nullable
  - `group_hide_empty` boolean, nullable
  - `group_hidden_option_ids` object, nullable
  - `aggregation_type` string, nullable
  - `aggregation_prop_def_id` string, uuid, nullable
  - `select` string[] — Property slugs (dot-paths permitted for refs)
  - `filter` object[] — Each entry is { slug: { comparator: value } }
  - `sort` object[] — Each entry is { slug: 'asc' | 'desc' }
  - `created_at` string
  - `updated_at` string, nullable

## Other responses

- `400` — Request validation failed. Inspect `error.errors` for field-level details.
- `401` — Missing or invalid credentials. API Gateway maps a missing or invalid `x-api-key` to HTTP 401 with this envelope (including `request_id`). A 403 here means the key was accepted but the caller is not permitted.
- `403` — Authenticated but not permitted to perform this action.
- `404` — Resource or route does not exist.
- `500` — Unexpected server error. Retry with backoff; report `request_id` if persistent.

## Changes

- **2026-07-24** `6f70fe8ca396` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/micro-so/apis/prism/changes/v2/prism/:teamId/contact/views/:viewId/patch.md)

---

[API](https://skmtc.dev/micro-so/apis/prism.md) · [All operations](https://skmtc.dev/micro-so/apis/prism/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/micro-so/prism/revisions/2b55e7c05657/schema)
