# GET /api/item_categories

カテゴリ一覧取得

ショップに登録されているすべてのカテゴリを、表示順で取得します。

下位カテゴリは上位カテゴリの直後に並び、各カテゴリの `parent` に上位カテゴリを返します。
最上位カテゴリの `parent` は `null` です。
カテゴリが登録されていない場合は、空配列を返します。

## 要求スコープ

- `items.read`

## レスポンスボディ（200）

`application/json`

配列。各要素: `ItemCategoryWithLinks`

- `id` integer（必須 / ≥ 0）: カテゴリ ID
- `number` integer（必須 / ≥ 0）: ショップ内で各カテゴリに割り振られる番号
- `name` string（必須）: カテゴリの表示名
- `parent` ItemCategory（必須）: 上位カテゴリ。最上位カテゴリでは null です。
  - `id` integer（必須 / ≥ 0）: カテゴリ ID
  - `number` integer（必須 / ≥ 0）: ショップ内で各カテゴリに割り振られる番号
  - `name` string（必須）: カテゴリの表示名
  - `parent` ItemCategory（必須）: 上位カテゴリ。最上位カテゴリでは null です。
    - ↻ ItemCategory を再帰参照
- `_links` object（必須）: このリソースに関連する操作へのリンク集合。リソースの状態やトークンのスコープによってリンクの有無は変わりません。
  - `update_item_category` Link（必須）: [カテゴリ編集](post-api-item-categories-id.md)
    - `href` string (uri)（必須）: エンドポイントの絶対 URL
    - `method` "GET" | "POST" | "PUT" | "DELETE"（必須）: エンドポイントを呼び出す際に使う HTTP メソッド
    - `document_href` string (uri)（必須）: ドキュメントサイト上でこのエンドポイントを説明するページの URL
  - `delete_item_category` Link（必須）: [カテゴリ削除](delete-api-item-categories-id.md)
    - `href` string (uri)（必須）: エンドポイントの絶対 URL
    - `method` "GET" | "POST" | "PUT" | "DELETE"（必須）: エンドポイントを呼び出す際に使う HTTP メソッド
    - `document_href` string (uri)（必須）: ドキュメントサイト上でこのエンドポイントを説明するページの URL
  - `update_item_category_list_order` Link（必須）: [カテゴリの並び順を変更する](put-api-item-categories-id-list-order.md)
    - `href` string (uri)（必須）: エンドポイントの絶対 URL
    - `method` "GET" | "POST" | "PUT" | "DELETE"（必須）: エンドポイントを呼び出す際に使う HTTP メソッド
    - `document_href` string (uri)（必須）: ドキュメントサイト上でこのエンドポイントを説明するページの URL

## リクエスト例

```sh
curl -X GET "https://apiv2.thebase.com/api/item_categories" \
  -H "Authorization: Bearer <your-token>"
```

## レスポンス

| Status | Description |
| --- | --- |
| `200` | 取得成功。 |

## エラー

エラーは `application/problem+json` の Problem 形式で返します。認証・スコープ・予期しない内部エラーなど、すべてのエンドポイントに共通のエラーと構造・判別方法は [エラーレスポンス](/docs/errors.md) を参照してください。

このエンドポイントが返すその他のエラーはありません。
