# Create a view

> `POST` `/v1/views`

URL: https://www.agencytitan.com/docs/tag/views/POST/v1/views

Operation ID: `views_create`

Tag: [views](https://www.agencytitan.com/docs/tag/views.md)

## Description

Create or add a top-level view object using the richer live editor settings surface.
Use this when the user wants:
- a global, client, or process view
- a dashboard or custom data workspace
- object-level settings like visibility, slug, or refresh behavior
- optionally a complete published view layout in the same call

Dashboard guidance:
- infer the questions a manager should answer from the process/domain context
- do not default to a headline plus one table when the user clearly wants a dashboard
- include actual dashboard structure when the request calls for KPIs, process health, progress, deliverable oversight, monitoring, or reporting

IMPORTANT:
- Client-scoped views do not use scope_id.
- Process-scoped views require scope_id.
- The top-level view object and the layout tree remain separate contracts even when created together.

## Parameters

_None_

## Request body

- Required: yes
- Content-Type: `application/json`
  - Type: `object`
  - Properties:
    - `auto_refresh_interval` (`anyOf`) — Optional auto-refresh interval in seconds.
    - `default_date_range` (`anyOf`) — Initial preset for the view-level date-range picker. Only meaningful when enable_date_range = true. Defaults to last_30…
    - `description` (`string`) — Optional description of what this view shows
    - `enable_date_range` (`boolean`) — Show the view-level date-range picker on the header. Widgets with a configured date_field follow it by default.
    - `folder_id` (`string|null`) — Optional folder ID. Use null to create in the root folder.
    - `folder_name` (`string|null`) — Alternative exact folder name.
    - `icon` (`string`) — Icon name. Optional.
    - `layout` (`object`) — Optional full canonical view layout to save and publish immediately after creating the view.
    - `name` (`string`, required) — Name of the view (e.g., "Active Projects Dashboard", "Client Overview")
    - `real_time_updates` (`boolean`) — Enable real-time updates.
    - `scope` (`string`) — Where this view is available. Client scope is section-wide and does not use scope_id.
    - `scope_id` (`string`) — Required for process views. Do not pass for global or client views.
    - `slug` (`string|null`) — Optional pretty URL slug. Only supported for process-scoped views.
    - `visibility` (`string`) — Who can access the view.

## Responses

- `200` (`application/json`): Successful response.
  - Type: `object`
  - Properties:
    - `data` (`object`, required)
- `400` (`application/json`): Request validation failed (unknown or out-of-range parameters/properties are rejected).
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `401` (`application/json`): Missing, invalid, expired, or revoked bearer token.
  - Type: `object`
  - Properties:
    - `error` (`string`, required)
    - `error_description` (`string`, required)
- `403` (`application/json`): The authenticated user does not have permission for this operation.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `404` (`application/json`): The requested resource was not found.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `409` (`application/json`): The request conflicts with an existing record or partially applied.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `429` (`application/json`): Per-tenant rate limit exceeded (600 requests/minute across all /v1 REST endpoints). The Retry-After header indicates how many seconds to wait.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)
- `500` (`application/json`): An unexpected internal error occurred.
  - Type: `object`
  - Properties:
    - `error` (`object`, required)

## Authentication

- `bearerAuth` — http (bearer) — All /v1 endpoints (except `/v1/openapi.json` and `/v1/llms.txt`) require a bearer token. Two equal first-class paths: (1) an OAuth 2.0 access token from the au…

## Useful links

- Interactive page: https://www.agencytitan.com/docs/tag/views/POST/v1/views
- API reference home: https://www.agencytitan.com/docs/
- Tag page: https://www.agencytitan.com/docs/tag/views.md
- This operation as Markdown: https://www.agencytitan.com/docs/tag/views/POST/v1/views.md
- OpenAPI JSON: https://www.agencytitan.com/docs/openapi.json
- Full API Markdown: https://api.agencytitan.com/v1/llms.txt
- API keys: https://app.agencytitan.com/settings/api-mcp
