---
title: "Create Item Category"
method: POST
path: "/v1/item_categories"
tags: ["Item Categories"]
---

# Create Item Category

`POST /v1/item_categories`

## Request body

- ItemCategoryCreate
  - `name` string, required
  - `description` string
  - `position` integer, required
  - `parent_id` string
  - `item_template_id` string
  - `pinned_expression` Expression
    - `tokens` Token[]
      - `type` 'attribute' | 'custom_attribute' | 'event_attribute' | 'custom_event_attribute' | 'operator' | 'number' | 'date' | 'string' | 'boolean' | 'list' | 'variable' | 'virtual_currency', required
      - `value` unknown
    - `variables` MathExpression[]
      - `tokens` Token[]
        - `type` 'attribute' | 'custom_attribute' | 'event_attribute' | 'custom_event_attribute' | 'operator' | 'number' | 'date' | 'string' | 'boolean' | 'list' | 'variable' | 'virtual_currency', required
        - `value` unknown
      - `name` string, required
  - `slug` string
  - `icon` string
  - `image_url` string, uri
  - `header_image_url` string, uri
  - `divider_image_url` string, uri
  - `divider_position` 'top' | 'bottom'
  - `divider_type` 'image' | 'mask'
  - `background_color` string
  - `background_image_url` string, uri
  - `background_size` 'contain' | 'repeat' | 'cover'
  - `render_type` 'default' | 'carousel'
  - `render_options` StoreCategoryRenderOptions
    - `delay` integer
    - `loop` boolean
    - `autoplay` boolean
    - `show_dots` boolean
    - `display_type` 'default' | 'compact' | 'alone'
  - `child_sort_attribute_name` string — Name of a player list attribute holding child category slugs in the order they must be shown.

## Response `201`

Successful Response

- ItemCategoryRead
  - `name` string, required
  - `description` string
  - `position` integer, required
  - `parent_id` string
  - `item_template_id` string
  - `pinned_expression` Expression
    - `tokens` Token[]
      - `type` 'attribute' | 'custom_attribute' | 'event_attribute' | 'custom_event_attribute' | 'operator' | 'number' | 'date' | 'string' | 'boolean' | 'list' | 'variable' | 'virtual_currency', required
      - `value` unknown
    - `variables` MathExpression[]
      - `tokens` Token[]
        - `type` 'attribute' | 'custom_attribute' | 'event_attribute' | 'custom_event_attribute' | 'operator' | 'number' | 'date' | 'string' | 'boolean' | 'list' | 'variable' | 'virtual_currency', required
        - `value` unknown
      - `name` string, required
  - `slug` string
  - `icon` string
  - `image_url` string
  - `header_image_url` string
  - `divider_image_url` string
  - `divider_position` 'top' | 'bottom'
  - `divider_type` 'image' | 'mask'
  - `background_color` string
  - `background_image_url` string
  - `background_size` 'contain' | 'repeat' | 'cover'
  - `render_type` 'default' | 'carousel'
  - `render_options` StoreCategoryRenderOptions
    - `delay` integer
    - `loop` boolean
    - `autoplay` boolean
    - `show_dots` boolean
    - `display_type` 'default' | 'compact' | 'alone'
  - `child_sort_attribute_name` string — Name of a player list attribute holding child category slugs in the order they must be shown.
  - `id` string, required

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-11** `aad0f133191e` — 2 info
  - added the new optional request property `header_image_url`
  - added the optional property `header_image_url` to the response with the `201` status
- **2026-08-07** `6402c25762c8` — 2 info
  - added the new optional request property `child_sort_attribute_name`
  - added the optional property `child_sort_attribute_name` to the response with the `201` status

[Change history](https://skmtc.dev/aghanim/apis/aghanim-server-to-server-api/changes/v1/item_categories/post.md)

---

[API](https://skmtc.dev/aghanim/apis/aghanim-server-to-server-api.md) · [All operations](https://skmtc.dev/aghanim/apis/aghanim-server-to-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/aghanim/aghanim-server-to-server-api/revisions/d8b885323f9e/schema)
