---
title: "GET /v1/orgs/{orgId}/projects/{projectId}/loops"
method: GET
path: "/v1/orgs/{orgId}/projects/{projectId}/loops"
tags: ["Loops", "Projects"]
---

# GET /v1/orgs/{orgId}/projects/{projectId}/loops

`GET /v1/orgs/{orgId}/projects/{projectId}/loops`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/v1/orgs/{orgId}/projects/{projectId}/loops`
- Auth: none declared

Read eligible opinionated loop definitions and their project configuration. Schedule execution and repository settings use their existing APIs.

## Path parameters

- `orgId` string, uuid, required
- `projectId` string, uuid, required

## 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` union[], required
    - union
      - object
        - `id` 'implement', required
        - `type` 'project-loop', required
        - `attributes` object, required
          - `name` string, required
          - `description` string, required
          - `capabilities` union[], required
            - union
              - …
          - `prerequisites` object[], required
            - `id` string, required
            - `description` string, required
          - `rootProjectId` string, uuid, nullable, required
          - `kind` 'event', required
          - `instance` object, nullable, required
            - `scheduleId` string, uuid, required
            - `status` union, required
              - …
            - `health` object, required
              - …
      - object
        - `id` 'shepherd', required
        - `type` 'project-loop', required
        - `attributes` object, required
          - `name` string, required
          - `description` string, required
          - `capabilities` union[], required
            - union
              - …
          - `prerequisites` object[], required
            - `id` string, required
            - `description` string, required
          - `rootProjectId` string, uuid, nullable, required
          - `kind` 'event', required
          - `instance` object, nullable, required
            - `scheduleId` string, uuid, required
            - `status` union, required
              - …
            - `health` object, required
              - …
      - object
        - `id` 'follow-ticket-changes', required
        - `type` 'project-loop', required
        - `attributes` object, required
          - `name` string, required
          - `description` string, required
          - `capabilities` union[], required
            - union
              - …
          - `prerequisites` object[], required
            - `id` string, required
            - `description` string, required
          - `rootProjectId` string, uuid, nullable, required
          - `kind` 'event', required
          - `instance` object, nullable, required
            - `scheduleId` string, uuid, required
            - `status` union, required
              - …
            - `health` object, required
              - …
      - object
        - `id` 'conformance', required
        - `type` 'project-loop', required
        - `attributes` object, required
          - `name` string, required
          - `description` string, required
          - `capabilities` union[], required
            - union
              - …
          - `prerequisites` object[], required
            - `id` string, required
            - `description` string, required
          - `rootProjectId` string, uuid, nullable, required
          - `kind` 'scheduled', required
          - `instance` object, nullable, required
            - `scheduleId` string, uuid, nullable, required
            - `eventScheduleId` string, uuid, nullable, required
            - `triggers` union[], required
              - …
            - `selection` union, required
              - …
            - `group` string
            - `status` union, required
              - …
            - `cadence` 'daily', required
            - `cron` '0 9 * * *', required
            - `timezone` 'UTC', required
      - object
        - `id` 'code-review', required
        - `type` 'project-loop', required
        - `attributes` object, required
          - `name` string, required
          - `description` string, required
          - `capabilities` union[], required
            - union
              - …
          - `prerequisites` object[], required
            - `id` string, required
            - `description` string, required
          - `rootProjectId` string, uuid, nullable, required
          - `kind` 'code-review', required
          - `instance` object, nullable, required
            - `repositoryId` string, required
            - `status` union, required
              - …
            - `enabled` boolean, required
            - `selected` boolean, required
            - `triggerPolicy` union, required
              - …
            - `attentionReason` union, required
              - …
            - `installationStatus` union, required
              - …
            - `health` object, required
              - …

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-22** `7386f1e6295b`: 1 info
  - removed `subschema #5, subschema #6` from the `data/items/` response property `anyOf` list for the response status `200`
- **2026-10-20** `5e5fdf4a6def`: 1 info
  - removed `subschema #6` from the `data/items/` response property `anyOf` list for the response status `200`
- **2026-10-20** `e7b2825012cb`: 1 info
  - added `subschema #3` to the `data/items/` response property `anyOf` list for the response status `200`
- **2026-10-19** `92a8e213788c`: 1 info
  - added `subschema #6` to the `data/items/` response property `anyOf` list for the response status `200`
- **2026-10-15** `9bc40fce2fb7`: 2 info
  - response property `data/items/anyOf[subschema #3]/attributes/instance/anyOf[subschema #1]/eventScheduleId` deprecated
  - added the required property `data/items/anyOf[subschema #3]/attributes/instance/anyOf[subschema #1]/triggers` to the response with the `200` status

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/orgs/:orgId/projects/:projectId/loops/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)
