# NewSegmentInput

input type

The tenant stamps server-side; dynamic REQUIRES a predicate (static refuses predicate/excludedConsumerIds — the cross-type field law).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — the type word (e.g. `static segment`); when supplied it must be non-blank. |
| `segmentType` | [SegmentType](/types/SegmentType/) `SegmentType!` | yes | static \| dynamic — IMMUTABLE at birth. |
| `predicate` | [SegmentPredicateInput](/types/SegmentPredicateInput/) | no | REQUIRED on dynamic, refused on static. |
| `excludedConsumerIds` | [ID](/types/#scalars) `[ID!]` | no | Dynamic-only manual exclusions (≤256 unique in-tenant consumers). |

## Used by

- [createSegment](/reference/segment/createSegment/)
