---
title: "Read a bot profile, including archived history"
---

> Documentation Index
> Fetch the complete documentation index at: https://tryshiba.dev/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Shiba public API

`GET /org-agents/{agentId}`

## Authentication

- `bearerAuth`, http, header `Authorization`, format `API key`

## Path parameters

- `agentId` (`get/org-agents/agentId.path.agentId`; string, required)

## Code samples

### cURL

```bash
curl --request GET \
  --url '<base-url>/api/v1/org-agents/<agentId>' \
  --header 'Authorization: Bearer <token>'
```

### TypeScript

```typescript
const url = '<base-url>/api/v1/org-agents/<agentId>';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "<base-url>/api/v1/org-agents/<agentId>"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
```

## Responses

### 200

Versioned bot profile

#### Example

```json
{
  "ok": true,
  "agent": {
    "id": "string",
    "orgId": "string",
    "slug": "string",
    "version": 1,
    "config": {
      "name": "string",
      "emoji": "string",
      "mascotPreset": "hero",
      "instructions": "string",
      "harness": "string",
      "codingModel": "string",
      "connectionId": "string",
      "sandboxProvider": "cloudflare",
      "defaultRepoUrl": "string",
      "expectedDeliverables": [
        "string"
      ],
      "approvalPolicy": "standard",
      "toolScopes": [
        "string"
      ]
    },
    "createdAt": 0,
    "updatedAt": 0,
    "archivedAt": 0
  }
}
```

- `ok` (`get/org-agents/agentId.response.200.ok`; boolean, optional)
- `agent` (`get/org-agents/agentId.response.200.agent`; object, optional)
  - `id` (`get/org-agents/agentId.response.200.agent.id`; string, required)
  - `orgId` (`get/org-agents/agentId.response.200.agent.orgId`; string, required)
  - `slug` (`get/org-agents/agentId.response.200.agent.slug`; string, required)
  - `version` (`get/org-agents/agentId.response.200.agent.version`; integer, required)
    - min 1
  - `config` (`get/org-agents/agentId.response.200.agent.config`; object, required)
    - `name` (`get/org-agents/agentId.response.200.agent.config.name`; string, required)
      - minLength 1; maxLength 120
    - `instructions` (`get/org-agents/agentId.response.200.agent.config.instructions`; string, required)
      - minLength 1; maxLength 32000
    - `harness` (`get/org-agents/agentId.response.200.agent.config.harness`; string, required)
      - minLength 1; maxLength 64
    - `emoji` (`get/org-agents/agentId.response.200.agent.config.emoji`; string, optional)
      - minLength 1; maxLength 16
    - `mascotPreset` (`get/org-agents/agentId.response.200.agent.config.mascotPreset`; string, optional)
      - one of `"hero"`, `"climbing"`, `"riding"`, `"sleeping"`, `"sunglasses"`
    - `codingModel` (`get/org-agents/agentId.response.200.agent.config.codingModel`; string, optional)
      - minLength 1; maxLength 200
    - `connectionId` (`get/org-agents/agentId.response.200.agent.config.connectionId`; string, optional)
      - minLength 1; maxLength 120
    - `sandboxProvider` (`get/org-agents/agentId.response.200.agent.config.sandboxProvider`; string, optional)
      - one of `"cloudflare"`, `"docker-local"`, `"computesdk"`, `"e2b"`
    - `defaultRepoUrl` (`get/org-agents/agentId.response.200.agent.config.defaultRepoUrl`; string, optional)
      - minLength 1; maxLength 500
    - `expectedDeliverables` (`get/org-agents/agentId.response.200.agent.config.expectedDeliverables`; array<string>, optional) — Optional approval-frozen workspace output paths, in delivery order. Paths are unique ignoring case; relative, non-hidden ASCII segments only (letters/digits, dot, underscore, hyphen, internal spaces), no empty/dot/parent/absolute segments or leading/trailing spaces. Only md/txt/json/csv. Requested complete UTF-8 nonempty files are capped at 16384 bytes each and 65536 bytes total; JSON must parse. Collection checks do not assess semantic quality.
      - minLength 1; maxLength 240; pattern `^(?!.* (?:/|$))(?:[A-Za-z0-9][A-Za-z0-9._ -]*/)*[A-Za-z0-9][A-Za-z0-9._ -]*\.(?:[mM][dD]|[tT][xX][tT]|[jJ][sS][oO][nN]|[cC][sS][vV])$`
    - `approvalPolicy` (`get/org-agents/agentId.response.200.agent.config.approvalPolicy`; string, optional) — Legacy auto_approve configuration does not bypass human run approval.
      - one of `"standard"`, `"auto_approve"`
    - `toolScopes` (`get/org-agents/agentId.response.200.agent.config.toolScopes`; array<string>, optional) — Legacy values are readable; create/update reject nonempty scopes until execution enforces them.
      - maxLength 64
  - `createdAt` (`get/org-agents/agentId.response.200.agent.createdAt`; number, required)
  - `updatedAt` (`get/org-agents/agentId.response.200.agent.updatedAt`; number, required)
  - `archivedAt` (`get/org-agents/agentId.response.200.agent.archivedAt`; number, optional)

### 404

Bot not found


Source: https://tryshiba.dev/reference/api/get/org-agents/agentId/index.md
