---
title: "GET /v1/origin/namespaces"
method: GET
path: "/v1/origin/namespaces"
tags: ["OriginService"]
---

# GET /v1/origin/namespaces

`GET /v1/origin/namespaces`

## Request

- Base URL: `https://api.cursor.com`
- URL: `https://api.cursor.com/v1/origin/namespaces`
- Auth: HTTP bearer

Lists the namespaces the caller can list repos in, ordered by slug.

 Candidates are the namespaces of the caller's teams, the caller's personal
 namespace, and namespaces holding repos the caller was granted. Only those
 on which the caller holds `namespace:repositories:read` are returned, so
 every result is a valid `owner_slug` for `ListRepos`.

## Query parameters

- `pageSize` integer
- `pageToken` string

## Response `200`

OK

- ListNamespacesResponse
  - `namespaces` NamespaceListing[]
    - `namespace` Owner: The owner of a repo.
      - `slug` string: Unique URL-friendly name of the owner.
      - `id` string: Unique ID of the owner namespace.
      - `type` 'team' | 'user': `team` or `user`. Output-only; unset when unknown.
    - `viewerCanCreateRepositories` boolean: Whether `CreateRepo` in this namespace would pass authorization and the namespace owner's plan and settings checks for the caller.
  - `nextPageToken` string: Opaque cursor for the next page; empty when there are no more pages.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests
- `default`: Default error response

---

[API](https://skmtc.dev/cursor/apis/cursor-origin-api.md) - [All operations](https://skmtc.dev/cursor/apis/cursor-origin-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cursor/apis/cursor-origin-api/revisions/cbc1547d6ef7?raw)
