---
title: "GET /v1/orgs/{orgId}/integrations/{integrationId}/repositories"
method: GET
path: "/v1/orgs/{orgId}/integrations/{integrationId}/repositories"
tags: ["Orgs", "Integrations"]
---

# GET /v1/orgs/{orgId}/integrations/{integrationId}/repositories

`GET /v1/orgs/{orgId}/integrations/{integrationId}/repositories`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/v1/orgs/{orgId}/integrations/{integrationId}/repositories`
- Auth: none declared

Lists repositories the org connection can see, for the scan-scope and Create Project repo pickers. Given an optional `q`, runs a provider-side name search when `q` is present (so a large connection need not be enumerated to find a repo) or lists the first page of the account otherwise. Returns the bare repo `name`, the `owner/repo` `fullName`, the repo `url`, whether the repo is archived, and when it was last pushed to (`pushedAt`, null when the provider does not report it). Results are capped; `hasMore` signals the caller to narrow with `q` instead of scrolling. Reads connection metadata only (no tokens), so it is gated on `view_integrations` (any org member) rather than `manage_integrations`: a Project creator can pick a repository without gaining integration-management access. Returns 422 (not_scannable_integration) for non-scannable integration types, and 502 when the provider is unreachable or rate-limited — distinct from an empty list, so a load failure never reads as "this connection has no repos". With `scope=account` on a GitHub App connection and `github-helper-reads` on for the org, lists what every Tessl GitHub App connection on the same GitHub account can see, once each, so a repository only Tessl App can see is included.

## Path parameters

- `orgId` string, uuid, required
- `integrationId` string, uuid, required

## Query parameters

- `q` string
- `scope` union
  - 'connection'
  - 'account'

## Headers

- `Authorization` string

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
    - `next` string, uri, nullable, required
    - `prev` string, uri, nullable, required
  - `meta` object, required
    - `count` number, required
  - `data` object[], required
    - `id` string, required
    - `type` 'repository', required
    - `attributes` object, required
      - `name` string, required
      - `fullName` string, required
      - `archived` boolean, required
      - `url` string, nullable, required
      - `sourceUri` string, required
      - `pushedAt` string, nullable, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Unprocessable Entity
- `500`: Internal Server Error
- `502`: Bad Gateway

## Changes

- **2026-10-21** `2bb36fc8cf11`: 1 info
  - added the required property `data/items/attributes/pushedAt` to the response with the `200` status
- **2026-10-20** `5e5fdf4a6def`: 1 info
  - added the new optional `query` request parameter `scope`
- **2026-09-15** `d50a02b79ad3`: 2 info
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/url` to the response with the `403` status
- **2026-09-04** `62bb86f8aa90`: 2 info
  - added the required property `data/items/attributes/sourceUri` to the response with the `200` status
  - added the required property `data/items/attributes/url` to the response with the `200` status
- **2026-08-13** `9be5c2a862b7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/orgs/:orgId/integrations/:integrationId/repositories/get.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tessl/apis/tessl-api/revisions/7386f1e6295b?raw)
