# GET /api/items/{id}/variations

種類一覧取得

指定した商品の種類を、表示順で取得します。

各種類の ID、種類名、在庫数、種類コード、JAN / GTIN を返します。
種類を持たない商品では、空配列を返します。

## 要求スコープ

- `items.read`

## パラメータ

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | `string` | 必須 | 商品 ID（1 以上の整数を文字列で表したもの） |

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

`application/json`

- `variations` ItemVariation[]（必須）: 種類の一覧（最大 1000 件）。表示順に並びます。種類を持たない商品では空配列です。
  - `id` integer（必須 / ≥ 0）: 種類 ID
  - `name` string（任意）: 種類名（例: カラー・サイズの表示名）。種類名を持たない（種類コードのみを保持する）種類では省略されます。
  - `stock` integer（必須）: 当該種類の在庫数
  - `identifier` string | null（必須）: 種類コード（種類ごとの商品コード）。未設定時は null です。
  - `barcode` string | null（必須）: 種類ごとの JAN / GTIN。未設定時は null です。
- `_links` object（必須）: このリソースに関連する操作へのリンク集合。リソースの状態やトークンのスコープによってリンクの有無は変わりません。
  - `add_item_variation` Link（必須）: [種類追加](post-api-items-id-variations.md)
    - `href` string (uri)（必須）: エンドポイントの絶対 URL
    - `method` "GET" | "POST" | "PUT" | "DELETE"（必須）: エンドポイントを呼び出す際に使う HTTP メソッド
    - `document_href` string (uri)（必須）: ドキュメントサイト上でこのエンドポイントを説明するページの URL
  - `reorder_item_variations` Link（必須）: [種類の並び替え](put-api-items-id-variations.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/items/123/variations" \
  -H "Authorization: Bearer <your-token>"
```

## レスポンス

| Status | Description |
| --- | --- |
| `200` | 取得成功。種類の一覧を表示順で返します。 |

## エラー

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

このエンドポイントが返すその他のエラーは次のとおりです。

| Status | Type | Description |
| --- | --- | --- |
| `400` | `/errors/request/invalid-params` | 1 つ以上のパスパラメータがエンドポイントのスキーマを満たさない場合に返します。 |
| `404` | `/errors/items/not-found` | 指定した商品が存在しない、または呼び出し元から参照できない場合に返します。1 リクエストで複数の商品を指定するエンドポイント（並び順の変更など）では、そのいずれかが参照できない場合に返します。 |

