---
title: "ListSCMOrganizations"
method: POST
path: "/gitpod.v1.RunnerService/ListSCMOrganizations"
tags: ["gitpod.v1.RunnerService"]
---

# ListSCMOrganizations

`POST /gitpod.v1.RunnerService/ListSCMOrganizations`

Lists SCM organizations the user belongs to.

 Use this method to:
 - Get all organizations for a user on a specific SCM host
 - Check organization admin permissions for webhook creation

 ### Examples

 - List GitHub organizations:

   Lists all organizations the user belongs to on GitHub.

   ```yaml
   runnerId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   scmHost: "github.com"
   ```

 - Search GitLab groups:

   Returns the first page of GitLab groups matching the substring.

   ```yaml
   runnerId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   scmHost: "gitlab.com"
   query: "platform"
   pagination:
     pageSize: 25
   ```

## Query parameters

- `pageSize` integer
- `token` string

## Request body

- GitpodV1ListSCMOrganizationsRequest
  - `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
  - `query` string — Optional substring filter applied to the organization name. - GitLab: forwarded to the upstream `search` parameter (server-side, case-insensitive substring on name/path). - GitHub and Bitbucket: not implemented as they don't support searching Empty value means no filter.
  - `runnerId` string, uuid
  - `scmHost` string — The SCM host to list organizations from (e.g., "github.com", "gitlab.com")

## Response `200`

Success

- GitpodV1ListSCMOrganizationsResponse
  - `organizations` GitpodV1ListSCMOrganizationsResponseSCMOrganization[] — List of organizations the user belongs to
    - `isAdmin` boolean — Deprecated: this field is unused by all known consumers and is scheduled for removal in a future release. Do not read it. Originally intended to gate organization-level webhook creation in the dashboard, but that gating was never implemented. Populating this field on the GitLab path requires a second fully-paginated ListGroups call, which is the main reason we are deprecating it.
    - `name` string — Organization name/slug (e.g., "gitpod-io")
    - `url` string — Organization URL (e.g., "https://github.com/gitpod-io")
  - `pagination` GitpodV1PaginationResponse
    - `nextToken` string — Token passed for retrieving the next set of results. Empty if there are no more results

## Other responses

- `default` — Error

---

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