---
title: "ListProjects"
method: POST
path: "/gitpod.v1.ProjectService/ListProjects"
tags: ["gitpod.v1.ProjectService"]
---

# ListProjects

`POST /gitpod.v1.ProjectService/ListProjects`

Lists projects with optional filtering.

 Use this method to:
 - View all accessible projects
 - Browse project configurations
 - Monitor project status

 ### Examples

 - List projects:

   Shows all projects with pagination.

   ```yaml
   pagination:
     pageSize: 20
   ```

## Query parameters

- `pageSize` integer
- `token` string

## Request body

- GitpodV1ListProjectsRequest
  - `filter` GitpodV1ListProjectsRequestFilter
    - `projectIds` string[] — project_ids filters the response to only projects with these IDs
    - `runnerIds` string[] — runner_ids filters the response to only projects that use environment classes from these runners
    - `runnerKinds` GitpodV1RunnerKind[] — runner_kinds filters the response to only projects that use environment classes from runners of these kinds
    - `search` string — search performs case-insensitive search across project name, project ID, and repository name
  - `pagination` GitpodV1PaginationRequest
    - `pageSize` integer — Page size is the maximum number of results to retrieve per page. Defaults to 25. Maximum 100.
    - `token` string — Token for the next set of results that was returned as next_token of a PaginationResponse

## Response `200`

Success

- GitpodV1ListProjectsResponse
  - `pagination` GitpodV1PaginationResponse
    - `nextToken` string — Token passed for retrieving the next set of results. Empty if there are no more results
  - `projects` GitpodV1Project[] — unresolved $ref

## Other responses

- `default` — Error

## Changes

- **2026-01-09** `3935e467f9c1` — 2 info
  - added the new optional request property `filter/runnerKinds`
  - added the optional property `projects/items/recommendedEditors` to the response with the `200` status
- **2025-12-15** `d62ef4b9187c` — 3 warning, 7 info
  - added the new `CLONE_TARGET_MODE_REMOTE_TAG` enum value to the `projects/items/initializer/specs/items/git/targetMode` response property for the response status `200`
  - added the new `PRINCIPAL_AGENT_EXECUTION` enum value to the `projects/items/metadata/creator/principal` response property for the response status `200`
  - added the new `PRINCIPAL_AGENT_EXECUTION` enum value to the `projects/items/usedBy/subjects/items/principal` response property for the response status `200`
  - added the new optional request property `filter/runnerIds`
  - …6 more
- **2025-06-10** `ca9a49ac7fbb` — 2 warning, 2 info
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the `projects/items/metadata/creator/principal` response property for the response status `200`
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the `projects/items/usedBy/subjects/items/principal` response property for the response status `200`
  - added the new optional request property `filter`
  - added the optional property `projects/items/technicalDescription` to the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/gitpod-io/apis/gitpod-v1/changes/gitpod.v1.ProjectService/ListProjects/post.md)

---

[API](https://skmtc.dev/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.dev/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/revisions/b97dcde84128/schema)
