> ## 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.

# エンティティ一覧取得

> ナレッジグラフのエンティティをフィルタリング・検索・ページネーション取得します

# エンティティ一覧取得

ナレッジグラフのエンティティ（ノード）をPageRank順で返します。カテゴリ、種別、コミュニティIDでのフィルタリング、ラベル・説明文のキーワード検索に対応しています。

## リクエスト

```
GET /api/v1/graph/entities
```

### ヘッダー

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

### クエリパラメータ

| パラメータ                   | 型         | 必須  | デフォルト   | 説明                  |
| ----------------------- | --------- | --- | ------- | ------------------- |
| `category`              | `string`  | いいえ | -       | カテゴリで完全一致フィルタ       |
| `kind`                  | `string`  | いいえ | -       | 種別で完全一致フィルタ         |
| `communityId`           | `integer` | いいえ | -       | コミュニティIDでフィルタ       |
| `search`                | `string`  | いいえ | -       | ラベル・説明文のキーワード検索     |
| `metadataKeyword`       | `string`  | いいえ | -       | メタデータ内キーワード検索       |
| `includeOthersEntities` | `boolean` | いいえ | `false` | 他のメンバーのエンティティを含める   |
| `limit`                 | `integer` | いいえ | `30`    | 1ページあたりの取得件数（1〜100） |
| `cursor`                | `string`  | いいえ | -       | 前ページの `nextCursor`  |

## レスポンス

```json theme={null}
{
  "entities": [
    {
      "id": "clxxx001",
      "label": "リチウムイオン電池",
      "category": "Technology",
      "kind": "battery",
      "description": "充電可能な二次電池の一種",
      "metadata": { "url": { "value": "https://...", "type": "text" } },
      "pagerank": 0.045,
      "communityId": 3,
      "createdAt": "2026-01-15T10:30:00.000Z",
      "updatedAt": "2026-03-20T14:22:00.000Z"
    }
  ],
  "nextCursor": "clxxx031",
  "totalCount": 1296
}
```

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

| フィールド                    | 型                | 説明                        |
| ------------------------ | ---------------- | ------------------------- |
| `entities`               | `object[]`       | エンティティ配列（PageRank降順）      |
| `entities[].id`          | `string`         | エンティティ ID                 |
| `entities[].label`       | `string`         | エンティティ名                   |
| `entities[].category`    | `string`         | カテゴリ                      |
| `entities[].kind`        | `string`         | 種別                        |
| `entities[].description` | `string`         | 説明文                       |
| `entities[].metadata`    | `object \| null` | メタデータ（キー・バリュー）            |
| `entities[].pagerank`    | `number`         | PageRank スコア              |
| `entities[].communityId` | `number`         | コミュニティクラスタ ID             |
| `nextCursor`             | `string \| null` | 次ページ用カーソル（`null` = 最終ページ） |
| `totalCount`             | `number`         | フィルタ後の全件数                 |

## 使用例

<CodeGroup>
  ```bash cURL theme={null}
  # 全エンティティ（PageRank順）
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/entities?limit=30" \
    -H "Authorization: Bearer snorbe_your_api_key_here"

  # カテゴリでフィルタ
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/entities?category=Technology&limit=30" \
    -H "Authorization: Bearer snorbe_your_api_key_here"

  # キーワード検索
  curl "https://app.snorbe.deskrex.ai/api/v1/graph/entities?search=battery&limit=10" \
    -H "Authorization: Bearer snorbe_your_api_key_here"
  ```

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

  resp = requests.get(
      "https://app.snorbe.deskrex.ai/api/v1/graph/entities",
      params={"category": "Technology", "limit": 30},
      headers={"Authorization": "Bearer snorbe_your_api_key_here"},
  )
  data = resp.json()
  print(f"Found {data['totalCount']} entities")
  for e in data["entities"]:
      print(f"  {e['label']} (pr={e['pagerank']})")
  ```

  ```typescript TypeScript theme={null}
  const params = new URLSearchParams({ category: "Technology", limit: "30" });
  const resp = await fetch(
    `https://app.snorbe.deskrex.ai/api/v1/graph/entities?${params}`,
    { headers: { Authorization: "Bearer snorbe_your_api_key_here" } },
  );
  const data = await resp.json();
  console.log(`Found ${data.totalCount} entities`);
  for (const e of data.entities) {
    console.log(`  ${e.label} (pr=${e.pagerank})`);
  }
  ```
</CodeGroup>

## エラーレスポンス

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