---
title: "List subagent messages"
method: GET
path: "/api/v1/subagents/{subagentId}/messages"
tags: ["subagents"]
---

# List subagent messages

`GET /api/v1/subagents/{subagentId}/messages`

## Request

- Base URL: `https://api.capy.ai`
- URL: `https://api.capy.ai/api/v1/subagents/{subagentId}/messages`
- Auth: HTTP bearer

## Path parameters

- `subagentId` string, required

## Query parameters

- `after` string
- `limit` integer

## Response `200`

MessagePage

- MessagePageEncoded
  - `items` MessageEncoded[], required
    - `id` string, required
    - `source` 'user' | 'assistant' | 'tool', required
    - `tool` string
    - `feedbackRequest` object
      - `toolCallId` string, required
      - `state` 'proposed' | 'sent' | 'declined', required
    - `calls` object[]
      - `tool` string, required
      - `durationMs` union, required
        - number
        - 'Infinity' | '-Infinity' | 'NaN'
    - `text` string, required
    - `authorName` string
    - `sender` MessageSender
      - `id` string, required: The sending thread's or subagent's id, the same id the threads and subagents endpoints take.
      - `relation` 'parent' | 'ancestor' | 'captain' | 'peer', required: The sender's relation to this thread: `parent` or `ancestor` owns this subagent, `captain` is the Captain directing this thread, and `peer` is any other thread, including a crew thread messaging its Captain.
    - `clientKey` string
    - `editOf` string
    - `model` string
    - `callId` string
    - `attachments` object[]: On user entries: the files the message carried. On assistant entries: the files the agent delivered with the message, not every file its turn touched.
      - `file` object, required
        - `fileId` string, required
        - `name` string, required
        - `mediaType` string, required
        - `sizeBytes` union, required
          - number
          - 'Infinity' | '-Infinity' | 'NaN'
        - `preview` boolean
        - `previewBytes` union
          - number
          - 'Infinity' | '-Infinity' | 'NaN'
        - `width` union
          - number
          - 'Infinity' | '-Infinity' | 'NaN'
        - `height` union
          - number
          - 'Infinity' | '-Infinity' | 'NaN'
        - `pageCount` integer
        - `sourcePath` string
        - `contentSha` string
        - `transcript` string
      - `title` string
    - `createdAt` string, required
  - `cursor` string, nullable, required

## Other responses

- `401`: capy/Unauthorized
- `403`: capy/Forbidden
- `404`: capy/SubagentNotFound
- `429`: capy/RateLimited

## Changes

- **2026-10-30** `c602c6157dcd`: 1 info
  - added the optional property `items/items/attachments/items/file/transcript` to the response with the `200` status
- **2026-10-21** `c3356d0715a6`: 2 breaking, 1 info
  - the response's body type changed from `object` to no type for status `403`
  - removed the required property `_tag` from the response with the `403` status
  - added `#/components/schemas/capy_ForbiddenEncoded, #/components/schemas/capy_ForbiddenEncoded` to the response body `anyOf` list for the response status `403`
- **2026-10-16** `5f4b527467a7`: 1 info
  - added the optional property `items/items/feedbackRequest` to the response with the `200` status
- **2026-10-15** `47fbeeaeb9f2`: 1 info
  - added the optional property `items/items/sender` to the response with the `200` status
- **2026-10-07** `ce9732b81ae1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/capy/apis/capy-api/changes/api/v1/subagents/:subagentId/messages/get.md)

---

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