> ## Documentation Index
> Fetch the complete documentation index at: https://docs.snorbe.deskrex.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# スキル一覧取得

> ワークスペースで有効化済みのカスタムスキル一覧を取得します

# スキル一覧取得

API キーに紐づくワークスペースで、インストール済み or 有効化されているカスタムスキルの一覧を返します。エージェントが「どのスキルを呼べるか」を事前に把握したり、UI にスキルバッジを表示したりするのに使います。

<Note>
  API キー認証が必要です。返すのは API キーのワークスペース内に存在するスキルのみで、他ワークスペースや storagePath などの内部識別子は返しません。
</Note>

## リクエスト

```
GET /api/v1/skill/list
```

### ヘッダー

| ヘッダー            | 必須 | 説明                             |
| --------------- | -- | ------------------------------ |
| `Authorization` | はい | `Bearer snorbe_...` 形式の API キー |

<Note>
  ワークスペースは API キーに紐づくものが自動的に使用されます。パラメータは不要です。
</Note>

## レスポンス

```json theme={null}
[
  {
    "id": "cl123abc",
    "name": "Patent Search",
    "description": "Patent search workflow for semiconductor domain",
    "enabled": true,
    "isOfficial": false
  },
  {
    "id": "cl456def",
    "name": "Snorbe API",
    "description": "Invoke Snorbe REST API from inside an agent",
    "enabled": true,
    "isOfficial": true
  }
]
```

### レスポンスフィールド

| フィールド         | 型         | 説明                                                           |
| ------------- | --------- | ------------------------------------------------------------ |
| `id`          | `string`  | スキル ID                                                       |
| `name`        | `string`  | スキル名                                                         |
| `description` | `string`  | スキルの説明                                                       |
| `enabled`     | `boolean` | ワークスペース内で有効化されているか                                           |
| `isOfficial`  | `boolean` | Snorbe 公式スキル（`npx skills add deskrexai/snorbe` 等でインストール）かどうか |

<Tip>
  `storagePath`・所有者 ID など内部実装の識別子はレスポンスに含まれません。
</Tip>

## 使用例

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://app.snorbe.deskrex.ai/api/v1/skill/list" \
    -H "Authorization: Bearer snorbe_your_api_key_here"
  ```

  ```python Python theme={null}
  import requests

  resp = requests.get(
      "https://app.snorbe.deskrex.ai/api/v1/skill/list",
      headers={"Authorization": "Bearer snorbe_your_api_key_here"},
  )
  skills = resp.json()
  for skill in skills:
      status = "enabled" if skill["enabled"] else "disabled"
      print(f"{skill['name']} ({status}, official={skill['isOfficial']})")
  ```

  ```typescript TypeScript theme={null}
  const resp = await fetch("https://app.snorbe.deskrex.ai/api/v1/skill/list", {
    headers: { Authorization: "Bearer snorbe_your_api_key_here" },
  });
  const skills = await resp.json();
  for (const skill of skills) {
    const status = skill.enabled ? "enabled" : "disabled";
    console.log(`${skill.name} (${status}, official=${skill.isOfficial})`);
  }
  ```
</CodeGroup>

## エラーレスポンス

| HTTP ステータス | コード                 | 説明                    |
| ---------- | ------------------- | --------------------- |
| 401        | `UNAUTHORIZED`      | API キーが無効、期限切れ、または未指定 |
| 429        | `TOO_MANY_REQUESTS` | レート制限超過               |

## 関連

* [ツール一覧取得](/ja/api-reference/list-tools)
* [エージェント一覧取得](/ja/api-reference/list-agents)
* [エージェント実行 (SSE ストリーミング)](/ja/api-reference/stream-agent-run)
