---
title: "List saved views"
method: GET
path: "/projects/{project_id}/saved-views"
tags: ["saved-views"]
---

# List saved views

`GET /projects/{project_id}/saved-views`

## Request

- Base URL: `https://eu.bisibility.com/api/v1`
- URL: `https://eu.bisibility.com/api/v1/projects/{project_id}/saved-views`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `/api/auth/oauth2/authorize`, token URL `/api/auth/oauth2/token`, scopes: `api:read`)

## Path parameters

- `project_id` string, required: Public project ID; membership and token scope are enforced.

## Query parameters

- `surface` 'keywords' | 'competitors'

## Headers

- `Bisibility-API-Version` 'v1'
- `X-Bisibility-Source` 'sdk' | 'cli' | 'mcp'

## Response `200`

JSON response

- object
  - `data` object[], required
    - `can_delete` boolean, required
    - `created_at` string, date-time, required
    - `definition` union, required
      - object
        - `filters` object, required
          - `change` 'any' | 'up' | 'down' | 'new' | 'lost', required
          - `contains` string, required
          - `intents` string[], required
          - `last_check` 'any' | 'completed' | 'failed' | 'not_checked' | 'running', required
          - `position` string[], required
          - `serp` string[], required
          - `tags` string[], required
          - `topics` string[], required
          - `url_changed` boolean, required
          - `vol_max` number, required
          - `vol_min` number, required
          - `wrong_url` boolean, required
        - `lens` object, required
          - `device` 'all' | 'desktop' | 'mobile', required
          - `location_id` string, nullable, required
        - `search` string, required
        - `surface` 'keywords', required
        - `version` 1, required
      - object
        - `filters` object, required
          - `excluded_keyword_ids` string[], required
          - `position` 'all' | 'top3' | 'top10', required
          - `tag` string, nullable, required
        - `scope` object, required
          - `device` 'desktop' | 'mobile', required
          - `engine` 'google', required
          - `location_id` string, required
        - `surface` 'competitors', required
        - `version` 1, required
      - object
        - `report_scope` object, required
          - `view` 'general' | 'local', required
          - `subject` object, nullable, required
            - `scope` union, required
              - …
            - `location_id` string, required
            - `identity_revision_id` string, required
            - `assignment_revision` integer, required
          - `comparison_days` union, required
            - 7
            - 28
            - 90
          - `as_of` string, date-time, nullable, required
        - `filters` object, required
          - `change` 'any' | 'up' | 'down' | 'new' | 'lost', required
          - `contains` string, required
          - `intents` string[], required
          - `last_check` 'any' | 'completed' | 'failed' | 'not_checked' | 'running', required
          - `position` string[], required
          - `serp` string[], required
          - `tags` string[], required
          - `topics` string[], required
          - `url_changed` boolean, required
          - `vol_max` number, required
          - `vol_min` number, required
          - `wrong_url` boolean, required
        - `grouped` boolean, required
        - `lens` object, required
          - `device` 'all' | 'desktop' | 'mobile', required
          - `location_id` string, nullable, required
        - `page_size` union, required
          - 25
          - 50
          - 100
        - `presentation` object, required
          - `column_order` string[], required
          - `registry_version` integer, required
          - `sizing` object, required
          - `version` 1, required
          - `visibility` object, required
        - `search` string, required
        - `sort` object, required
          - `direction` 'asc' | 'desc', required
          - `field` 'keyword' | 'device' | 'position' | 'change' | 'volume' | 'difficulty' | 'sparkline' | 'clicks' | 'impressions' | 'ctr' | 'lastChecked' | 'frequency' | 'location' | 'targetRanking' | 'tags' | 'topic' | 'intent', required
        - `surface` 'keywords', required
        - `version` 2, required
      - object
        - `filters` object, required
          - `excluded_keyword_ids` string[], required
          - `position` 'all' | 'top3' | 'top10', required
          - `tag` string, nullable, required
        - `grouped` boolean, required
        - `page_size` union, required
          - 25
          - 50
          - 100
        - `presentation` object, required
          - `column_order` string[], required
          - `registry_version` integer, required
          - `sizing` object, required
          - `version` 1, required
          - `visibility` object, required
        - `scope` object, required
          - `device` 'desktop' | 'mobile', required
          - `engine` 'google', required
          - `location_id` string, required
        - `sort` object, required
          - `direction` 'asc' | 'desc', required
          - `field` string, required
        - `surface` 'competitors', required
        - `version` 2, required
    - `revision` integer, required
    - `visibility` 'project', required
    - `config` object, required
    - `id` string, required
    - `name` string, required
    - `surface` 'keywords' | 'competitors', required
  - `meta` object, required
    - `next_cursor` string, nullable, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Unsupported API version
- `429`: Rate limited

## Changes

- **2026-10-19** `a6e1ec0dec82`: 1 breaking, 6 info
  - added the new path request parameter `project_id`
  - the endpoint scheme security `AppOAuth` was added to the API
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `400`
  - media type `application/json` was changed to a more specific media type `application/problem+json` for the response status `401`
  - …3 more

[Operation history](https://skmtc.dev/bisibility/apis/bisibility-public-api/changes/projects/:project_id/saved-views/get.md)

---

[API](https://skmtc.dev/bisibility/apis/bisibility-public-api.md) · [All operations](https://skmtc.dev/bisibility/apis/bisibility-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bisibility/apis/bisibility-public-api/revisions/a6e1ec0dec82?raw)
