---
title: "GET /v1/origin/repos/{ownerSlug}"
method: GET
path: "/v1/origin/repos/{ownerSlug}"
tags: ["OriginService"]
---

# GET /v1/origin/repos/{ownerSlug}

`GET /v1/origin/repos/{ownerSlug}`

## Request

- Base URL: `https://api.cursor.com`
- URL: `https://api.cursor.com/v1/origin/repos/{ownerSlug}`
- Auth: HTTP bearer

Lists repos belonging to an owner entity.

## Path parameters

- `ownerSlug` string, required

## Query parameters

- `pageSize` integer
- `pageToken` string
- `filter` string

## Response `200`

OK

- ListReposResponse
  - `repositories` Repo[]
    - `id` string
    - `name` string, required: The repo name, unique to its owner. Required on create.
    - `fullName` string: "{owner.login}/{name}". Derived.
    - `owner` 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.
    - `defaultBranch` string: Default branch name. Always set on responses. On create, omitting this field or leaving it empty defaults to "main".
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `pushedAt` string, date-time: Most-recent-push timestamp on any branch; absent until the first push.
    - `cloneUrl` string: HTTPS URL for cloning the repository.
    - `mirror` RepositoryMirror: The external source and lifecycle state of a mirrored repository.
      - `source` 'github'
      - `sourceId` string: Opaque repository identifier assigned by the source.
      - `status` 'inbound': Effective direction during a transition, until cutover completes.
    - `visibility` 'internal' | 'private': Repository visibility, `internal` or `private`.
    - `allowMergeCommit` boolean: Whether pull requests may land as merge commits.
    - `allowSquashMerge` boolean: Whether pull requests may land as squash merges.
    - `deleteBranchOnMerge` boolean: Whether the head branch is deleted automatically on merge.
    - `webUrl` string: Web URL for this repository on Cursor.
  - `nextPageToken` string: Opaque cursor for the next page; empty when there are no more pages.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: The addressed resource, or its repository, does not exist or is not visible to the caller. Not-found and no-access are deliberately indistinguishable; a 404 never confirms that the resource does not exist.
- `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)
