---
title: "List projects"
method: GET
path: "/projects"
tags: ["Projects"]
---

# List projects

`GET /projects`

## Query parameters

- `pageSize` integer — Maximum number of items to return. Defaults to 50. Maximum: 100.
- `pageToken` string — Opaque token returned by the previous page. Omit for the first page.
- `nameContains` string — Filter projects whose name contains this value (case-insensitive).

## Response `200`

Paginated list of projects

- ListProjectsResponse
  - `projects` ListProjectsItem[], required
    - `id` string, uuid, required
    - `name` string, required
    - `projectType` 'standard' | 'notebook' | 'agent', required — Project type.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, nullable, required
    - `folder` ProjectFolder, required
      - `id` string, uuid, required
      - `name` string, required
      - `path` ProjectFolderPathSegment[], required — Folders from the workspace root to this folder, inclusive. Folder names are not unique — identify folders by segment `id`.
        - `id` string, uuid, required
        - `name` string, required
      - `isPathComplete` boolean, required — Whether `path` reaches the workspace root. False when the chain is cut short — an ancestor is not visible to the caller, or the hierarchy is inconsistent. Do not treat an incomplete path as the full hierarchy.
    - `notebooks` ListNotebooksItem[], required — Notebooks in the project.
      - `id` string, required — Opaque notebook identifier.
      - `projectId` string, uuid, required
      - `name` string, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time
      - `isInit` boolean, required — Whether this notebook is the init notebook for the project, which can run as a prelude to other notebooks in it. Naming a notebook "Init" designates it.
      - `isScheduled` boolean, required — Whether this notebook is the scheduled notebook for the project.
      - `lastRunAt` string, date-time, nullable, required — When the notebook last ran, or null if it has not run yet.
  - `pagination` CursorPagination, required
    - `pageSize` integer, required
    - `nextPageToken` string, nullable, required — Token for the next page, or null at the end.
    - `hasMore` boolean, required — Whether more items are available after this page.

## Other responses

- `400` — Validation error
- `401` — Unauthorized
- `403` — Insufficient permissions
- `429` — Rate limit exceeded

---

[API](https://skmtc.net/deepnote/apis/deepnote-public-api.md) · [All operations](https://skmtc.net/deepnote/apis/deepnote-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/deepnote/deepnote-public-api/revisions/726970fd2992/schema)
