Skip to main content
POST
/
v1
/
views
TypeScript SDK
import { Client } from "@notionhq/client"

const notion = new Client({ auth: process.env.NOTION_API_KEY })

const response = await notion.views.create({
  database_id: "248104cd-477e-80fd-b757-e945d38000bd",
  data_source_id: "248104cd-477e-80af-bc30-000bd28de8f9",
  name: "High priority items",
  type: "table"
})
{
  "object": "<string>",
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "parent": {
    "type": "<string>",
    "database_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
  },
  "type": "table"
}
For a successful request, the response is a View object. Provide exactly one of the following to specify where the view is created:
  • database_id — create a view directly on an existing database.
  • view_id — add a widget view inside an existing dashboard view.
  • create_database — create a new linked database block on a page and add the view to it.
Integration capabilitiesThis endpoint requires an integration to have insert content and update content capabilities. For more information on integration capabilities, see the capabilities guide.

Errors

Returns a 404 HTTP response if the database or view doesn’t exist, or if the integration doesn’t have access. Returns a 400 HTTP response if more than one of database_id, view_id, or create_database is provided, or if none is provided. Returns a 400 or 429 HTTP response if the request exceeds the request limits.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

Notion-Version
enum<string>
required

The API version to use for this request. The latest version is 2026-03-11.

Available options:
2026-03-11

Body

application/json
data_source_id
string
required

The ID of the data source this view should be scoped to.

name
string
required

The name of the view.

type
enum<string>
required

The type of view to create.

Available options:
table,
board,
list,
calendar,
timeline,
gallery,
form,
chart,
map,
dashboard
database_id
string

The ID of the database to create a view in. Mutually exclusive with view_id and create_database.

view_id
string

The ID of a dashboard view to add this view to as a widget. Mutually exclusive with database_id and create_database.

filter
object

Filter to apply to the view. Uses the same format as the data source query filter.

sorts
object[]

Sorts to apply to the view. Uses the same format as the data source query sorts.

Maximum array length: 100
quick_filters
object

Quick filters to pin in the view's filter bar. Keys are property names or IDs. Values are filter conditions (same shape as a property filter but without the property field). Each quick filter appears as a clickable pill above the view, independent of the advanced filter.

create_database
object

Create a new linked database block on a page and add the view to it. Mutually exclusive with database_id and view_id.

configuration
object

View presentation configuration. The type field must match the view type.

position
object

Where to place the new view in the database's view tab bar. Only applicable when database_id is provided. Defaults to "end" (append).

placement
object

Where to place the new widget in a dashboard view. Only applicable when view_id is provided. Defaults to creating a new row at the end.

Response

object
string
required

The object type name.

Allowed value: "view"
id
string<uuid>
required

The ID of the view.

parent
object
required

The parent database of the view.

type
enum<string>
required

The view type.

Available options:
table,
board,
list,
calendar,
timeline,
gallery,
form,
chart,
map,
dashboard