---
title: "Read the latest work in each project"
method: GET
path: "/experimental/orgs/{orgId}/projects/latest-work"
tags: ["Projects"]
---

# Read the latest work in each project

`GET /experimental/orgs/{orgId}/projects/latest-work`

## Request

- Base URL: `https://api.tessl.io`
- URL: `https://api.tessl.io/experimental/orgs/{orgId}/projects/latest-work`
- Auth: none declared

For each requested project, returns the ticket or PR with the latest linked run, and that run. A PR is shown under the ticket it was made for. Projects the actor cannot view, or that are not in this org, are left out. No state is read from GitHub or Linear.

## Path parameters

- `orgId` string, uuid, required

## Query parameters

- `projectIds` string, 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` object[], required
    - `id` string, uuid, required: The project id.
    - `type` 'project-latest-work', required
    - `attributes` object, required
      - `work` object, nullable, required: The ticket or PR with the latest run in this project, and that run. Null when no run links to a ticket or PR.
        - `key` string, required
        - `resource` object, required
          - `type` union, required
            - 'github_issue'
            - 'linear_issue'
            - 'github_pr'
          - `url` string, required
          - `label` string, required
          - `title` string, nullable, required
        - `resources` object[], required
          - `type` union, required
            - 'github_issue'
            - 'linear_issue'
            - 'github_pr'
          - `url` string, required
          - `label` string, required
          - `title` string, nullable, required
        - `lastActivity` string, required
        - `run` object, required
          - `id` string, required
          - `status` union, required
            - 'pending'
            - 'completed'
            - 'failed'
            - 'cancelled'
          - `outcome` union, required
            - 'succeeded'
            - 'no_action'
            - 'needs_input'
            - 'failed'
          - `skill` string, required
          - `message` string, nullable, required
          - `createdAt` string, required
          - `updatedAt` string, required
          - `loops` object[], required
            - `id` string, required
            - `name` string, required
          - `cause` string, nullable, required

## Other responses

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

## Changes

- **2026-10-29** `06d2142ed144`: 1 info
  - api operation id `getOrgProjectLatestWork` was added
- **2026-10-26** `bd98dcac7c81`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/orgs/:orgId/projects/latest-work/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/4fa2a17154e4?raw)
