# `api.views.create` > `POST /views` — ACPortal **Python** ```python api.views.create(*, data: GridViewCreateRequest | dict) -> GridViewDetails ``` **CLI** ```bash ab views create [--data ...] ``` POST /views. Args: data: View creation payload with name, dataset_sp, and columns. Accepts a :class:`GridViewCreateRequest` instance or a dict. Request model: :class:`GridViewCreateRequest` ## Request body — `GridViewCreateRequest` | Field | Type | Required | Description | |---|---|---|---| | `name` | `Optional[str]` | no | View name | | `datasetSp` | `Optional[str]` | no | Dataset stored procedure | | `columns` | `Optional[list[dict]]` | no | Column definitions | ## Response Returns `GridViewDetails`. | Field | Type | Required | Description | |---|---|---|---| | `viewId` | `Optional[str]` | no | View ID | | `name` | `Optional[str]` | no | View name | | `datasetSp` | `Optional[str]` | no | Dataset stored procedure | | `columns` | `Optional[list[dict]]` | no | Column definitions | | `filters` | `Optional[list[dict]]` | no | Filter configurations | | `access` | `Optional[dict]` | no | Access control settings | --- [← Back to api.views](../views.md)