---
title: "Read a view bundle"
method: GET
path: "/v2/prism/{teamId}/organization/views/{viewId}"
---

# Read a view bundle

`GET /v2/prism/{teamId}/organization/views/{viewId}`

Returns the view bundle. Pass `?include=records` to also fetch a page of records selected by the view in the same call; the response is then wrapped as `{view, records}`.

## Path parameters

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

## Query parameters

- `include` string
- `cursor` string
- `page` integer
- `limit` integer

## Response `200`

OK. Returns the view bundle by default; returns `{view, records}` when `include=records` is passed.

- union
  - 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
  - ViewBundleWithRecords — Returned by `GET /views/{viewId}?include=records`. Same `records` shape as the standalone list-view-records endpoint.
    - `view` ViewBundle, required — 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
    - `records` object, required
      - `data` object[], required
      - `has_more` boolean, required
      - `next_cursor` string, nullable

## Other responses

- `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/organization/views/:viewId/get.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)
