# List the caller's saved agents, newest first.

`GET /o/{org}/agents`

Rows are the caller's own (`user_id`), not the org's: `{org}` only has to be one the caller
belongs to. Fixed page size of 50. Archived agents are omitted unless `include=archived`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `org` | path | string | yes | The org's slug or id. A caller with no role in the org gets `404`. |
| `handle` | query | string | no | Exact handle filter (trimmed, lowercased before matching). |
| `include` | query | string | no | `archived` adds archived agents; any other value is ignored. |
| `cursor` | query | string | no | Opaque `next_cursor` from a previous page. A malformed cursor is ignored (first page). |

## Example request

```bash
curl "https://api.prix.dev/o/$RUSH_ORG/agents" \
  -H "Authorization: Bearer $RUSH_TOKEN"
```

```typescript
const org = process.env.RUSH_ORG;

const res = await fetch(`https://api.prix.dev/o/${org}/agents`, {
  headers: {
    Authorization: `Bearer ${process.env.RUSH_TOKEN}`,
  },
});

console.log(res.status, await res.json());
```

```python
import os

import requests

org = os.environ["RUSH_ORG"]

res = requests.get(
    f"https://api.prix.dev/o/{org}/agents",
    headers={"Authorization": f"Bearer {os.environ['RUSH_TOKEN']}"},
)

print(res.status_code, res.json())
```

## Responses

### 200

One page of saved agents, each at its current revision.

- `profiles` (array of SavedAgent, required)
  - `id` (string, required)
  - `name` (string, required)
  - `handle` (string, required)
  - `description` (string, required)
  - `harness` (string, required, one of `claude`, `codex`, `opencode`): Launch-boundary managed harnesses.
  - `revision` (integer, required)
  - `archived` (boolean, required)
  - `source` (object | object | null, required)
  - `config` (SavedAgentConfig, required): The desired configuration stored with one revision.
    - `harness` (string, required, one of `claude`, `codex`, `opencode`): Launch-boundary managed harnesses.
    - `catalog_revision` (string, required)
    - `runtime` (object | object, required)
    - `defaults` (object, required)
      - `model` (SavedAgentModel, required)
        - `selection` (string, required)
        - `id` (string, required): A model id the harness lists in `GET /o/{org}/agents/available`.
      - `effort` (string | null, required)
      - `speed` (string, required, one of `standard`, `fast`)
    - `instructions` (string, required)
    - `connection_refs` (array of SavedAgentConnectionRef, required)
      - `kind` (string, required, one of `oauth`, `mcp`)
      - `id` (string, required)
    - `capabilities` (object, required)
      - `browser` (boolean, required)
      - `computer` (boolean, required)
    - `tools` (object | object, required)
    - `network` (object | object, required)
    - `plugins` (array of object, required)
      - `catalog_id` (string, required)
  - `resolved_at_save` (SavedAgentResolved, required): What the config resolved to against the catalog when this revision was saved.
    - `model` (string, required)
    - `effort` (string | null, required)
    - `speed` (string, required, one of `standard`, `fast`)
    - `harness_version` (string | null, required)
    - `tool_ids` (array of string | null, required)
    - `plugins` (array of object, required)
      - `catalog_id` (string, required)
      - `version` (string, required)
      - `digest` (string, required)
    - `runtime_id` (string | null, required)
    - `catalog_revision` (string, required)
    - `pin_guarantee` (boolean, required)
  - `created_at` (string, required)
  - `updated_at` (string, required)
- `next_cursor` (string | null, required)

### 401

No bearer, an unknown, revoked or expired one, or an API key on a route keys cannot call.

### 404

No such resource for the caller, including one that exists in an org the caller cannot see.

## Example response (200)

```json
{
  "profiles": [
    {
      "id": "3f6c1e2a-8b4d-4c1e-9a7f-2d5b6e8c0a14",
      "name": "string",
      "handle": "string",
      "description": "string",
      "harness": "claude",
      "revision": 1,
      "archived": true,
      "source": {
        "profile_id": "string",
        "revision": 1
      },
      "config": {
        "harness": "claude",
        "catalog_revision": "string",
        "runtime": {
          "selection": "latest_verified"
        },
        "defaults": {
          "model": {
            "selection": "pinned",
            "id": "string"
          },
          "effort": "none",
          "speed": "standard"
        },
        "instructions": "string",
        "connection_refs": [
          {
            "kind": "oauth",
            "id": "string"
          }
        ],
        "capabilities": {
          "browser": true,
          "computer": true
        },
        "tools": {
          "mode": "default"
        },
        "network": {
          "mode": "public"
        },
        "plugins": [
          {
            "catalog_id": "string"
          }
        ]
      },
      "resolved_at_save": {
        "model": "string",
        "effort": "none",
        "speed": "standard",
        "harness_version": "string",
        "tool_ids": [
          "string"
        ],
        "plugins": [
          {
            "catalog_id": "string",
            "version": "string",
            "digest": "string"
          }
        ],
        "runtime_id": "string",
        "catalog_revision": "string",
        "pin_guarantee": true
      },
      "created_at": "2026-10-06T12:00:00Z",
      "updated_at": "2026-10-06T12:00:00Z"
    }
  ],
  "next_cursor": "string"
}
```
