---
title: "PUT /api/admin/segments/"
method: PUT
path: "/api/admin/segments/"
tags: ["Segments"]
---

# PUT /api/admin/segments/

`PUT /api/admin/segments/`

Create or update a user segment.

## Request body

- object
  - `id` string
  - `definition` object
    - `entryNode` union, required
      - object
        - `type` 'Trait', required
        - `id` string, required
        - `path` string, required
        - `operator` union, required
          - object
            - `type` 'Within', required
            - `windowSeconds` number, required
          - object
            - `type` 'AbsoluteTimestamp', required
            - `absoluteTimestamp` string, required
            - `direction` union, required
              - …
          - object
            - `type` 'Equals', required
            - `value` union, required
              - …
          - object
            - `type` 'NotEquals', required
            - `value` union, required
              - …
          - object
            - `type` 'HasBeen', required
            - `comparator` union, required
              - …
            - `value` union, required
              - …
            - `windowSeconds` number, required
          - object
            - `type` 'Exists', required
          - object
            - `type` 'NotExists', required
          - object
            - `type` 'GreaterThanOrEqual', required
            - `value` number, required
          - object
            - `type` 'LessThan', required
            - `value` number, required
      - object
        - `type` 'And', required
        - `id` string, required
        - `children` string[], required
      - object
        - `type` 'Or', required
        - `id` string, required
        - `children` string[], required
      - object
        - `type` 'Performed', required
        - `id` string, required
        - `event` string, required
        - `times` number
        - `timesOperator` union
          - '='
          - '>='
          - '<'
        - `timeOperator` union
          - 'Within'
          - 'AfterAbsolute'
          - 'BeforeAbsolute'
        - `withinSeconds` number
        - `absoluteTimestamp` string
        - `properties` object[]
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - object
        - `type` 'LastPerformed', required
        - `id` string, required
        - `event` string, required
        - `whereProperties` object[] — Used to select which events are eligible to be considered.
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `hasProperties` object[] — Used to evaluate whether the user is in the segment based on the properties of the selected event.
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - object
        - `type` 'Email', required
        - `id` string, required
        - `event` union, required
          - 'DFInternalMessageSent'
          - 'DFEmailDropped'
          - 'DFEmailDelivered'
          - 'DFEmailOpened'
          - 'DFEmailClicked'
          - 'DFEmailBounced'
          - 'DFEmailMarkedSpam'
        - `times` number
        - `templateId` string, required
      - object
        - `type` 'Broadcast', required
        - `id` string, required
      - object
        - `type` 'SubscriptionGroup', required
        - `id` string, required
        - `subscriptionGroupId` string, required
        - `subscriptionGroupType` union, required
          - 'OptIn'
          - 'OptOut'
      - object
        - `type` 'RandomBucket', required
        - `id` string, required
        - `percent` number, required — The percentage of users to be randomly assigned to be in the segment. Expressed as a number between 0 and 1.
      - object
        - `type` 'Includes', required
        - `id` string, required
        - `path` string, required
        - `item` string, required
      - object
        - `type` 'Manual', required
        - `version` number, required
        - `id` string, required
      - object
        - `type` 'Everyone', required
        - `id` string, required
      - object
        - `type` 'KeyedPerformed', required
        - `id` string, required
        - `event` string, required
        - `key` string, required
        - `times` number
        - `timesOperator` union
          - '='
          - '>='
          - '<'
        - `properties` object[]
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
    - `nodes` union[], required
      - union
        - object
          - `type` 'Trait', required
          - `id` string, required
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `type` 'And', required
          - `id` string, required
          - `children` string[], required
        - object
          - `type` 'Or', required
          - `id` string, required
          - `children` string[], required
        - object
          - `type` 'Performed', required
          - `id` string, required
          - `event` string, required
          - `times` number
          - `timesOperator` union
            - '='
            - '>='
            - '<'
          - `timeOperator` union
            - 'Within'
            - 'AfterAbsolute'
            - 'BeforeAbsolute'
          - `withinSeconds` number
          - `absoluteTimestamp` string
          - `properties` object[]
            - `path` string, required
            - `operator` union, required
              - …
        - object
          - `type` 'LastPerformed', required
          - `id` string, required
          - `event` string, required
          - `whereProperties` object[] — Used to select which events are eligible to be considered.
            - `path` string, required
            - `operator` union, required
              - …
          - `hasProperties` object[] — Used to evaluate whether the user is in the segment based on the properties of the selected event.
            - `path` string, required
            - `operator` union, required
              - …
        - object
          - `type` 'Email', required
          - `id` string, required
          - `event` union, required
            - 'DFInternalMessageSent'
            - 'DFEmailDropped'
            - 'DFEmailDelivered'
            - 'DFEmailOpened'
            - 'DFEmailClicked'
            - 'DFEmailBounced'
            - 'DFEmailMarkedSpam'
          - `times` number
          - `templateId` string, required
        - object
          - `type` 'Broadcast', required
          - `id` string, required
        - object
          - `type` 'SubscriptionGroup', required
          - `id` string, required
          - `subscriptionGroupId` string, required
          - `subscriptionGroupType` union, required
            - 'OptIn'
            - 'OptOut'
        - object
          - `type` 'RandomBucket', required
          - `id` string, required
          - `percent` number, required — The percentage of users to be randomly assigned to be in the segment. Expressed as a number between 0 and 1.
        - object
          - `type` 'Includes', required
          - `id` string, required
          - `path` string, required
          - `item` string, required
  - `subscriptionGroupId` string
  - `updatedAt` number
  - `lastRecomputed` number
  - `resourceType` union
    - 'Declarative'
    - 'Internal'
  - `status` union
    - 'NotStarted'
    - 'Running'
    - 'Paused'
  - `workspaceId` string, required
  - `name` string, required
  - `createOnly` boolean

## Response `200`

Default Response

- object
  - `id` string, required
  - `workspaceId` string, required
  - `name` string, required
  - `definition` object, required
    - `entryNode` union, required
      - object
        - `type` 'Trait', required
        - `id` string, required
        - `path` string, required
        - `operator` union, required
          - object
            - `type` 'Within', required
            - `windowSeconds` number, required
          - object
            - `type` 'AbsoluteTimestamp', required
            - `absoluteTimestamp` string, required
            - `direction` union, required
              - …
          - object
            - `type` 'Equals', required
            - `value` union, required
              - …
          - object
            - `type` 'NotEquals', required
            - `value` union, required
              - …
          - object
            - `type` 'HasBeen', required
            - `comparator` union, required
              - …
            - `value` union, required
              - …
            - `windowSeconds` number, required
          - object
            - `type` 'Exists', required
          - object
            - `type` 'NotExists', required
          - object
            - `type` 'GreaterThanOrEqual', required
            - `value` number, required
          - object
            - `type` 'LessThan', required
            - `value` number, required
      - object
        - `type` 'And', required
        - `id` string, required
        - `children` string[], required
      - object
        - `type` 'Or', required
        - `id` string, required
        - `children` string[], required
      - object
        - `type` 'Performed', required
        - `id` string, required
        - `event` string, required
        - `times` number
        - `timesOperator` union
          - '='
          - '>='
          - '<'
        - `timeOperator` union
          - 'Within'
          - 'AfterAbsolute'
          - 'BeforeAbsolute'
        - `withinSeconds` number
        - `absoluteTimestamp` string
        - `properties` object[]
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - object
        - `type` 'LastPerformed', required
        - `id` string, required
        - `event` string, required
        - `whereProperties` object[] — Used to select which events are eligible to be considered.
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `hasProperties` object[] — Used to evaluate whether the user is in the segment based on the properties of the selected event.
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
      - object
        - `type` 'Email', required
        - `id` string, required
        - `event` union, required
          - 'DFInternalMessageSent'
          - 'DFEmailDropped'
          - 'DFEmailDelivered'
          - 'DFEmailOpened'
          - 'DFEmailClicked'
          - 'DFEmailBounced'
          - 'DFEmailMarkedSpam'
        - `times` number
        - `templateId` string, required
      - object
        - `type` 'Broadcast', required
        - `id` string, required
      - object
        - `type` 'SubscriptionGroup', required
        - `id` string, required
        - `subscriptionGroupId` string, required
        - `subscriptionGroupType` union, required
          - 'OptIn'
          - 'OptOut'
      - object
        - `type` 'RandomBucket', required
        - `id` string, required
        - `percent` number, required — The percentage of users to be randomly assigned to be in the segment. Expressed as a number between 0 and 1.
      - object
        - `type` 'Includes', required
        - `id` string, required
        - `path` string, required
        - `item` string, required
      - object
        - `type` 'Manual', required
        - `version` number, required
        - `id` string, required
      - object
        - `type` 'Everyone', required
        - `id` string, required
      - object
        - `type` 'KeyedPerformed', required
        - `id` string, required
        - `event` string, required
        - `key` string, required
        - `times` number
        - `timesOperator` union
          - '='
          - '>='
          - '<'
        - `properties` object[]
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
    - `nodes` union[], required
      - union
        - object
          - `type` 'Trait', required
          - `id` string, required
          - `path` string, required
          - `operator` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `type` 'And', required
          - `id` string, required
          - `children` string[], required
        - object
          - `type` 'Or', required
          - `id` string, required
          - `children` string[], required
        - object
          - `type` 'Performed', required
          - `id` string, required
          - `event` string, required
          - `times` number
          - `timesOperator` union
            - '='
            - '>='
            - '<'
          - `timeOperator` union
            - 'Within'
            - 'AfterAbsolute'
            - 'BeforeAbsolute'
          - `withinSeconds` number
          - `absoluteTimestamp` string
          - `properties` object[]
            - `path` string, required
            - `operator` union, required
              - …
        - object
          - `type` 'LastPerformed', required
          - `id` string, required
          - `event` string, required
          - `whereProperties` object[] — Used to select which events are eligible to be considered.
            - `path` string, required
            - `operator` union, required
              - …
          - `hasProperties` object[] — Used to evaluate whether the user is in the segment based on the properties of the selected event.
            - `path` string, required
            - `operator` union, required
              - …
        - object
          - `type` 'Email', required
          - `id` string, required
          - `event` union, required
            - 'DFInternalMessageSent'
            - 'DFEmailDropped'
            - 'DFEmailDelivered'
            - 'DFEmailOpened'
            - 'DFEmailClicked'
            - 'DFEmailBounced'
            - 'DFEmailMarkedSpam'
          - `times` number
          - `templateId` string, required
        - object
          - `type` 'Broadcast', required
          - `id` string, required
        - object
          - `type` 'SubscriptionGroup', required
          - `id` string, required
          - `subscriptionGroupId` string, required
          - `subscriptionGroupType` union, required
            - 'OptIn'
            - 'OptOut'
        - object
          - `type` 'RandomBucket', required
          - `id` string, required
          - `percent` number, required — The percentage of users to be randomly assigned to be in the segment. Expressed as a number between 0 and 1.
        - object
          - `type` 'Includes', required
          - `id` string, required
          - `path` string, required
          - `item` string, required
  - `subscriptionGroupId` string
  - `updatedAt` number, required
  - `lastRecomputed` number
  - `resourceType` union
    - 'Declarative'
    - 'Internal'
  - `status` union
    - 'NotStarted'
    - 'Running'
    - 'Paused'
  - `createdAt` number, required
  - `definitionUpdatedAt` number, required

## Other responses

- `400` — Default Response

---

[API](https://skmtc.net/dittofeed/apis/dittofeed-api.md) · [All operations](https://skmtc.net/dittofeed/apis/dittofeed-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dittofeed/dittofeed-api/versions/13cf71747bf1/schema)
