# NewCollectionInput

input type

Create-input for a Collection. The tenant (org group) is derived SERVER-SIDE from the principal — NEVER supplied here; collectionType is REQUIRED + immutable; a STATIC create refuses predicate/excludedProductIds/sortMode (the NAMED cross-type gate); a DYNAMIC create REQUIRES a predicate (≥1 axis) and stamps sortMode newest when omitted; every predicate/exclusion ref is tenant-scoped server-side and must be ACTIVE.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — the merchant code when given, else 'Collection'; when supplied it must be non-blank. |
| `collectionType` | [CollectionType](/types/CollectionType/) `CollectionType!` | yes | The canned collection kind — immutable after birth. |
| `predicate` | [CollectionPredicateInput](/types/CollectionPredicateInput/) | no | The predicate — REQUIRED on dynamic (≥1 axis), REFUSED on static (the NAMED gate). |
| `excludedProductIds` | [ID](/types/#scalars) `[ID!]` | no | Manual exclusions (at most 256, unique) — dynamic only; each tenant-scoped + active. |
| `sortMode` | [String](/types/#scalars) | no | The canned sort mode (newest \| price-asc \| price-desc \| manual-pins-first) — dynamic only; defaulted newest. |
| `code` | [String](/types/#scalars) | no | No further notes. |

## Used by

- [createCollection](/reference/collection/createCollection/)
