Method: projects.list

Lists Projects that are visible to the user and satisfy the specified filter. This method returns Projects in an unspecified order. This method is eventually consistent with project mutations; this means that a newly created project may not appear in the results or recent updates to an existing project may not be reflected in the results. To retrieve the latest state of a project, use the projects.get method.

HTTP request


The URL uses gRPC Transcoding syntax.

Query parameters



A pagination token returned from a previous call to projects.list that indicates from where listing should continue.




The maximum number of Projects to return in the response. The server can return fewer Projects than requested. If unspecified, server picks an appropriate default.




An expression for filtering the results of the request. Filter rules are case insensitive. The fields eligible for filtering are:

  • name
  • id


where key is the name of a label

Some examples of using labels as filters:

Filter Description
name:how* The project's name starts with "how".
name:Howl The project's name is Howl or howl.
name:HOWL Equivalent to above.
NAME:howl Equivalent to above.
labels.color:* The project has the label color.
labels.color:red The project's label color has the value red.
labels.color:red labels.size:big The project's label color has the value red and its label size has the value big.

If you specify a filter that has both parent.type and, then the resourcemanager.projects.list permission is checked on the parent. If the user has this permission, all projects under the parent will be returned after remaining filters have been applied. If the user lacks this permission, then all projects for which the user has the resourcemanager.projects.get permission will be returned after remaining filters have been applied. If no filter is specified, the call will return projects for which the user has resourcemanager.projects.get permissions.


Request body

The request body must be empty.

Response body

If successful, the response body contains data with the following structure:

A page of the response received from the projects.list method.

A paginated response where more pages are available has nextPageToken set. This token can be used in a subsequent request to retrieve the next request page.

JSON representation
  "projects": [
  "nextPageToken": string


The list of Projects that matched the list filter. This list can be paginated.



Pagination token.

If the result set is too large to fit in a single response, this token is returned. It encodes the position of the current result cursor. Feeding this value into a new list request with the pageToken parameter gives the next page of the results.

When nextPageToken is not filled in, there is no next page and the list returned is the last page in the result set.

Pagination tokens have a limited lifetime.

Authorization Scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.

Was this page helpful? Let us know how we did:

Send feedback about...

Resource Manager