---
title: "Create or replace view"
method: PUT
path: "/v1/view"
tags: ["Views"]
---

# Create or replace view

`PUT /v1/view`

Create or replace view. If there is an existing view with the same name as the one specified in the request, will replace the existing view with the provided fields

## Request body

- CreateView
  - `object_type` 'organization' | 'project' | 'experiment' | 'dataset' | 'prompt' | 'prompt_session' | 'group' | 'role' | 'org_member' | 'project_log' | 'org_project', required — The object type that the ACL applies to
  - `object_id` string, uuid, required — The id of the object the view applies to
  - `view_type` string, required — Type of table that the view corresponds to.
  - `name` string, required — Name of the view
  - `view_data` ViewData, nullable — The view definition
    - `search` ViewDataSearch, nullable
      - `filter` unknown[], nullable
        - unknown
      - `tag` unknown[], nullable
        - unknown
      - `match` unknown[], nullable
        - unknown
      - `sort` unknown[], nullable
        - unknown
  - `options` ViewOptions, nullable — Options for the view in the app
    - `columnVisibility` object, nullable
    - `columnOrder` string[], nullable
    - `columnSizing` object, nullable
  - `user_id` string, uuid, nullable — Identifies the user who created the view
  - `deleted_at` string, date-time, nullable — Date of role deletion, or null if the role is still active

## Response `200`

Returns the new view object

- View
  - `id` string, uuid, required — Unique identifier for the view
  - `object_type` 'organization' | 'project' | 'experiment' | 'dataset' | 'prompt' | 'prompt_session' | 'group' | 'role' | 'org_member' | 'project_log' | 'org_project', required — The object type that the ACL applies to
  - `object_id` string, uuid, required — The id of the object the view applies to
  - `view_type` string, required — Type of table that the view corresponds to.
  - `name` string, required — Name of the view
  - `created` string, date-time, nullable — Date of view creation
  - `view_data` ViewData, nullable — The view definition
    - `search` ViewDataSearch, nullable
      - `filter` unknown[], nullable
        - unknown
      - `tag` unknown[], nullable
        - unknown
      - `match` unknown[], nullable
        - unknown
      - `sort` unknown[], nullable
        - unknown
  - `options` ViewOptions, nullable — Options for the view in the app
    - `columnVisibility` object, nullable
    - `columnOrder` string[], nullable
    - `columnSizing` object, nullable
  - `user_id` string, uuid, nullable — Identifies the user who created the view
  - `deleted_at` string, date-time, nullable — Date of role deletion, or null if the role is still active

## Other responses

- `400` — The request was unacceptable, often due to missing a required parameter
- `401` — No valid API key provided
- `403` — The API key doesn’t have permissions to perform the request
- `429` — Too many requests hit the API too quickly. We recommend an exponential backoff of your requests
- `500` — Something went wrong on Braintrust's end. (These are rare.)

---

[API](https://skmtc.net/braintrustdata/apis/braintrust-api.md) · [All operations](https://skmtc.net/braintrustdata/apis/braintrust-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/braintrustdata/braintrust-api/revisions/9d216c8243fe/schema)
