# `catalog.collection.create` Create a collection (handle derived from title when omitted). - **scope**: `catalog:write` - **storefront-visible** (bumps the catalog generation): yes - **destructive**: no ## Payload | field | type | required | notes | |---|---|---|---| | `title` | string (≤120 chars) | yes | | | `handle` | string (/^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/, ≤64 chars) | no | | | `descriptionMd` | string (≤20000 chars) | no | | | `imageMediaId` | string (/^med_[a-zA-Z0-9]{1,32}$/) | no | | | `imageAlt` | string (≤200 chars) | no | | ### JSON Schema ```json { "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "title": { "type": "string", "minLength": 1, "maxLength": 120 }, "handle": { "type": "string", "maxLength": 64, "pattern": "^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$" }, "descriptionMd": { "type": "string", "maxLength": 20000 }, "imageMediaId": { "type": "string", "pattern": "^med_[a-zA-Z0-9]{1,32}$" }, "imageAlt": { "type": "string", "maxLength": 200 } }, "required": [ "title" ], "additionalProperties": false } ```