---
title: "Create View"
method: POST
path: "/api/v1/project/{project_id}/views"
tags: ["project"]
---

# Create View

`POST /api/v1/project/{project_id}/views`

Create a new view for a project.

Args:
    project_id: UUID of the project (validated to be owned by current user)
    request: Request containing the view to create
    view_service: View service for business logic

Returns:
    Response with success status and created view data

Raises:
    HTTPException: 404 if project not found or user doesn't own it

## Request body

- ViewCreateRequest — Request model for creating a new view. Attributes: view: The view to create
  - `view` ViewModelInput, required — Model for a view
    - `id` string, required
    - `name` string, required
    - `description` string, nullable
    - `layerFilters` object
    - `mapFilters` MapFilterModel — Model for a map filter (spatial filter)
      - `geometries` object[], required
      - `type` 'intersects', required
    - `layerColumnVisibility` object
    - `layerColumnOrder` object
    - `layerColumnPinned` object
    - `layerColumnSort` object
    - `layerColumnWidths` object
    - `layerGroupByColumn` object
    - `layerVisibility` object, nullable
    - `layerViz` object, nullable
    - `basemap` string, nullable
    - `currentLayerId` string, nullable
    - `isEditable` boolean, nullable
    - `showFavoritesOnly` boolean
    - `version` integer

## Response `200`

Successful Response

- ViewCreateResponse — Response model for creating a new view. Attributes: success: Boolean indicating if the creation was successful view: The created view model
  - `success` boolean, required
  - `view` ViewModelOutput, required — Model for a view
    - `id` string, required
    - `name` string, required
    - `description` string, nullable
    - `layerFilters` object
    - `mapFilters` MapFilterModel — Model for a map filter (spatial filter)
      - `geometries` object[], required
      - `type` 'intersects', required
    - `layerColumnVisibility` object
    - `layerColumnOrder` object
    - `layerColumnPinned` object
    - `layerColumnSort` object
    - `layerColumnWidths` object
    - `layerGroupByColumn` object
    - `layerVisibility` object, nullable
    - `layerViz` object, nullable
    - `basemap` string, nullable
    - `currentLayerId` string, nullable
    - `isEditable` boolean, nullable
    - `showFavoritesOnly` boolean
    - `version` integer

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/maia-analytics/apis/maia-api.md) · [All operations](https://skmtc.net/maia-analytics/apis/maia-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/maia-analytics/maia-api/versions/ba2b8d962161/schema)
