---
title: "Get view schema"
method: GET
path: "/api/v3/meta/bases/{baseId}/views/{viewId}"
tags: ["Views"]
---

# Get view schema

`GET /api/v3/meta/bases/{baseId}/views/{viewId}`

## Request

- Base URL: `https://app.nocodb.com`
- URL: `https://app.nocodb.com/api/v3/meta/bases/{baseId}/views/{viewId}`
- Auth: one of:
  - API key in header `xc-token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/nocodb/apis/nocodb-v3/docs/api/v3/meta/bases/:baseId/views/:viewId/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve the details of a specific view.

**Note**: View APIs are available on cloud-hosted **Enterprise** plans, and on licensed self-hosted deployments (**Business** plan and above).

## Path parameters

- `baseId` string, required
- `viewId` string, required

## Response `200`

View details are retrieved.

- union
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'grid', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsGrid
      - `groups` object[]: List of groups to be applied on the grid view. At most five grouping levels are supported.
        - `field_id` string, required: Identifier for the field being sorted.
        - `direction` 'asc' | 'desc': Direction of the group, either 'asc' (ascending) or 'desc' (descending).
      - `row_height` 'short' | 'medium' | 'tall' | 'extra': Height of the rows in the grid view.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'gallery', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsGallery
      - `cover_field_id` string: Attachment field ID to be used as cover image in gallery view. Is optional, if not provided, the first attachment field will be used.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'kanban', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsKanban, required
      - `stack_by` object, required
        - `field_id` string, required: Single select field ID to be used for stacking cards in kanban view.
        - `stack_order` string[]: Order of the stacks in kanban view. If not provided, the order will be determined by options listed in associated field. Example: ```stack_order: ['option1', 'option2', 'option3']```
      - `cover_field_id` string: Attachment field ID to be used as cover image in kanban view. If not provided, cover field configuration is skipped.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'calendar', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsCalendar, required
      - `date_ranges` object[], required
        - `start_date_field_id` string, required: Date field ID to be used as start date in calendar view.
        - `end_date_field_id` string: Date field ID to be used as end date in calendar view.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'timeline', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsTimeline, required: Timeline view configuration. A timeline may have multiple date ranges (e.g. "planned" vs "actual"); each range has a required start field and an optional end field.
      - `date_ranges` object[]
        - `start_date_field_id` string, required: Field ID of the start date column.
        - `end_date_field_id` string, nullable: Field ID of the end date column. Null means the range is a single point in time.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'gantt', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsGantt: Gantt view configuration. Bundles the per-view DateDependency rule with presentation settings stored on the view's meta JSON.
      - `date_dependency` DateDependency: Date dependency rule for a gantt view. Top-level properties are all optional; supplying a child object (`dates`, `dependency`) commits to providing every property inside it.
        - `dates` object: Date column pair. Atomic — supply both or omit the block entirely.
          - `start_field_id` string, required: Field ID of the start date column.
          - `end_field_id` string, required: Field ID of the end date column.
        - `duration_field_id` string, nullable: Optional standalone duration field; independent of the `dates` block.
        - `dependency` object: Predecessor/successor link configuration. Atomic — supply all five properties or omit the block entirely.
          - `linkrow_field_id` string, required: Link-to-another-record field that connects predecessor/successor records.
          - `linkrow_role` 'predecessors' | 'successors', required
          - `connection_type` 'end-to-start' | 'end-to-end' | 'start-to-end' | 'start-to-start', required
          - `buffer_type` 'flexible' | 'fixed' | 'none', required
          - `buffer_days` integer, required: Buffer in days. Meaningful when `buffer_type` is `fixed`; pass 0 when buffer_type is `flexible` or `none`.
        - `include_weekends` boolean
        - `is_active` boolean: Soft-disable the rule without deleting it.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'map', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsMap
      - `geo_data_field_id` string: Field ID of the GeoData column plotted on the map.
    - `sorts` SortCreate[]: List of sorts to be applied to the view.
      - `field_id` string, required: Identifier for the field being sorted.
      - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
      - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
    - `filters` union
      - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
        - `id` string: Unique identifier for the filter.
        - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
        - `field_id` string, required: Field ID to which this filter applies.
        - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
        - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
        - `value` string, nullable: Value for comparison, always returned as a string: a filter created with `100` reads back as `"100"`, and `true` as `"true"`.
        - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
      - FilterGroupResponse: A filter group as returned by the API. Nested filters are `FilterResponse`, so their `value` is always a string (or `null`).
        - `id` string, required: Unique identifier for the group.
        - `parent_id` string: Parent ID of this filter-group.
        - `group_operator` 'AND' | 'OR', required: Logical operator for combining filters in the group.
        - `enabled` boolean: Whether the group is switched on. A switched-off group is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated group comes back switched on.
        - `filters` union[], required: Nested filters or filter groups.
          - union
            - FilterResponse: A filter as returned by the API. Same shape as `Filter`, except that `value` always comes back as a string (or `null`).
              - …
            - FilterGroupResponse (recursive)
    - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
      - `field_id` string, required: Unique identifier for the field.
      - `show` boolean, required: Indicates whether the field should be displayed in the view.
      - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
      - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
    - `row_coloring` union
      - object
        - `mode` 'filter', required: Mode of row coloring. In this mode, the color is selected based on conditions applied to the fields.
        - `conditions` object[], required
          - `apply_as_row_background` boolean
          - `color` string
          - `filters` union
            - object
              - …
            - object
              - …
      - object
        - `mode` 'select', required: Mode of row coloring. In this mode, the color is selected based on a single select field.
        - `field_id` string, required: Single select field ID to be used for colouring rows in the view.
        - `apply_as_row_background` boolean: Whether to additionally apply the color as row background.
  - object
    - `id` string, required: Unique identifier for the view.
    - `table_id` string: Id of table associated with the view.
    - `title` string, required: Title of the view.
    - `type` 'list', required: Type of the view.
    - `lock_type` 'collaborative' | 'locked' | 'personal': Lock type of the view. Note: Assigning view as personal using API is not supported currently
    - `description` string: Description of the view.
    - `created_by` string: User ID of the creator.
    - `owned_by` string: User ID of the owner.
    - `created_at` string, date-time: Timestamp of creation.
    - `updated_at` string, date-time: Timestamp of last update.
    - `options` ViewOptionsList: List view configuration. Records are organised into a hierarchy of levels; each level is a table linked to its parent through a link field.
      - `levels` object[]: Ordered levels of the list. Level 1 is the root table; deeper levels connect to their parent via link_field_id.
        - `level` number, required: 1-based depth of this level (1 = root).
        - `table_id` string, required: Table shown at this level.
        - `link_field_id` string, nullable: Link field connecting this level to its parent. Omitted/null for the root level.
        - `filters` union
          - object
            - `id` string: Unique identifier for the filter.
            - `parent_id` string: Parent ID of the filter, specifying this filters group association. Defaults to **root**.
            - `field_id` string, required: Field ID to which this filter applies.
            - `operator` string, required: Primary comparison operator (e.g., eq, gt, lt).
            - `sub_operator` string, nullable: Secondary comparison operator (if applicable).
            - `value` union: Value for comparison. Numbers and booleans are accepted, but stored and returned as strings (see `FilterResponse`).
              - …
            - `enabled` boolean: Whether the filter is switched on. A switched-off filter is skipped only when the plan includes toggle filters; otherwise it is still applied. Returned on reads; ignored on create, update and replace, so a recreated filter comes back switched on.
          - object
            - `group_operator` 'AND' | 'OR', required: Logical operator for the group.
            - `filters` union[], required: List of filters or nested filter groups at level 2.
              - …
        - `sorts` SortCreate[]: Sorts applied at this level.
          - `field_id` string, required: Identifier for the field being sorted.
          - `direction` 'asc' | 'desc': Sorting direction, either 'asc' (ascending) or 'desc' (descending).
          - `order_by` 'alphabetical' | 'option_order': How a SingleSelect field is ordered: 'alphabetical' (default, by option text) or 'option_order' (by the field's option order). Only SingleSelect fields support 'option_order'.
        - `fields` object[]: List of fields to be displayed in the view. - If not specified, all fields are displayed by default. - If an empty array is provided, only the display value field will be shown (form views hide it as well). - On every view type except form the display value field is pinned visible, so its position in the list is not applied. - In case of partial list, fields not included in the list will be excluded from the view. - A `field_id` that does not exist on the table is rejected with `422` (`ERR_FIELD_NOT_FOUND`).
          - `field_id` string, required: Unique identifier for the field.
          - `show` boolean, required: Indicates whether the field should be displayed in the view.
          - `width` integer: Width of the field in pixels. **Applicable to grid views, and to list views when sent per level under `options.levels[].fields`.** Accepted but not stored on other view types.
          - `aggregation` 'sum' | 'min' | 'max' | 'avg' | 'median' | 'std_dev' | 'range' | 'count' | 'count_empty' | 'count_filled' | 'count_unique' | 'percent_empty' | 'percent_filled' | 'percent_unique' | 'none' | 'attachment_size' | 'checked' | 'unchecked' | 'percent_checked' | 'percent_unchecked' | 'earliest_date' | 'latest_date' | 'date_range' | 'month_range'
      - `show_empty_parents` boolean: Show parent rows that have no child records.
      - `row_height` 'short' | 'medium' | 'tall' | 'extra': Height of the rows in the list view.

## Other responses

- `404`: View not found.
- `500`: Server error.

## Changes

- **2026-11-06** `62a735aaf849`: 7 breaking, 40 info
  - added `#/components/schemas/FilterResponse, #/components/schemas/FilterGroupResponse` to the `allOf[subschema #4]/oneOf[subschema #1: grid]/filters` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/FilterResponse, #/components/schemas/FilterGroupResponse` to the `allOf[subschema #4]/oneOf[subschema #2: gallery]/filters` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/FilterResponse, #/components/schemas/FilterGroupResponse` to the `allOf[subschema #4]/oneOf[subschema #3: kanban]/filters` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/FilterResponse, #/components/schemas/FilterGroupResponse` to the `allOf[subschema #4]/oneOf[subschema #4: calendar]/filters` response property `oneOf` list for the response status `200`
  - …43 more
- …earlier changes not shown

[Operation history](https://skmtc.dev/nocodb/apis/nocodb-v3/changes/api/v3/meta/bases/:baseId/views/:viewId/get.md)

---

[API](https://skmtc.dev/nocodb/apis/nocodb-v3.md) - [All operations](https://skmtc.dev/nocodb/apis/nocodb-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/nocodb/apis/nocodb-v3/revisions/62a735aaf849?raw)
