---
title: "PUT /api/admin/journeys/"
method: PUT
path: "/api/admin/journeys/"
tags: ["Journeys"]
---

# PUT /api/admin/journeys/

`PUT /api/admin/journeys/`

Create or update a journey.

## Request body

- object
  - `id` union
    - string
    - string
  - `name` union
    - string
    - string
  - `workspaceId` string, required
  - `draft` object, nullable
    - `nodes` object[], required
      - `id` string, required
      - `data` union, required
        - object
          - `type` 'JourneyUiNodeDefinitionProps', required
          - `nodeTypeProps` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - object
          - `type` 'JourneyUiNodeLabelProps', required
          - `title` string, required
        - object
          - `type` 'JourneyUiNodeEmptyProps', required
    - `edges` object[], required
      - `source` string, required
      - `target` string, required
      - `data` union, required
        - object
          - `type` 'JourneyUiDefinitionEdgeProps', required
          - `disableMarker` boolean
        - object
          - `type` 'JourneyUiPlaceholderEdgeProps', required
  - `canRunMultiple` boolean
  - `updatedAt` number
  - `definition` object
    - `entryNode` union, required
      - object — The first node in a journey - triggered when a user enters a segment.
        - `type` 'EntryNode', required
        - `segment` string, required
        - `child` string, required
        - `reEnter` boolean
      - object — The first node in a journey - triggered when a user performs a specific event.
        - `type` 'EventEntryNode', required
        - `event` string, required
        - `key` string
        - `child` string, required
    - `exitNode` object, required — Defines when a user exits a journey. Allows users to re-enter the journey, under some set of conditions.
      - `type` 'ExitNode', required
    - `nodes` union[], required
      - union
        - object — Delays a users progression through the journey for either a set amount of time, or until a specific date time.
          - `id` string, required
          - `type` 'DelayNode', required
          - `variant` union, required
            - object
              - …
            - object
              - …
            - object
              - …
          - `child` string, required
        - object — Used to limit the frequency with which users are contacted by a given Journey.
          - `id` string, required
          - `type` 'RateLimitNode', required
        - object — Used to split users among audiences, based on the behavior and attributes.
          - `id` string, required
          - `type` 'SegmentSplitNode', required
          - `variant` object, required
            - `type` 'Boolean', required
            - `segment` string, required
            - `trueChild` string, required
            - `falseChild` string, required
          - `name` string
        - object — Used to contact a user on a message channel.
          - `id` string, required
          - `type` 'MessageNode', required
          - `name` string
          - `subscriptionGroupId` string
          - `variant` union, required
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
          - `child` string, required
          - `syncProperties` boolean
          - `skipOnFailure` boolean
          - `retryCount` number — Number of retry attempts (default: 3)
        - object — Used to split users among random cohorts, to test their effectiveness.
          - `id` string, required
          - `type` 'RandomCohortNode', required
          - `children` object[], required
            - `id` string, required — The id of the child node to be split to
            - `percent` number, required — The percentage of users to be randomly assigned to be in the cohort.
            - `name` string, required
        - object — A node which waits for a user to enter a segment before progressing.
          - `id` string, required
          - `type` 'WaitForNode', required
          - `timeoutSeconds` number, required
          - `timeoutChild` string, required
          - `segmentChildren` object[], required
            - `id` string, required
            - `segmentId` string, required
  - `status` union
    - 'NotStarted'
    - 'Running'
    - 'Paused'
    - 'Broadcast'

## Response `200`

Default Response

- union
  - object
    - `id` string, required
    - `workspaceId` string, required
    - `name` string, required
    - `canRunMultiple` boolean
    - `updatedAt` number, required
    - `draft` object
      - `nodes` object[], required
        - `id` string, required
        - `data` union, required
          - object
            - `type` 'JourneyUiNodeDefinitionProps', required
            - `nodeTypeProps` union, required
              - …
          - object
            - `type` 'JourneyUiNodeLabelProps', required
            - `title` string, required
          - object
            - `type` 'JourneyUiNodeEmptyProps', required
      - `edges` object[], required
        - `source` string, required
        - `target` string, required
        - `data` union, required
          - object
            - `type` 'JourneyUiDefinitionEdgeProps', required
            - `disableMarker` boolean
          - object
            - `type` 'JourneyUiPlaceholderEdgeProps', required
    - `status` 'NotStarted', required
    - `definition` object
      - `entryNode` union, required
        - object — The first node in a journey - triggered when a user enters a segment.
          - `type` 'EntryNode', required
          - `segment` string, required
          - `child` string, required
          - `reEnter` boolean
        - object — The first node in a journey - triggered when a user performs a specific event.
          - `type` 'EventEntryNode', required
          - `event` string, required
          - `key` string
          - `child` string, required
      - `exitNode` object, required — Defines when a user exits a journey. Allows users to re-enter the journey, under some set of conditions.
        - `type` 'ExitNode', required
      - `nodes` union[], required
        - union
          - object — Delays a users progression through the journey for either a set amount of time, or until a specific date time.
            - `id` string, required
            - `type` 'DelayNode', required
            - `variant` union, required
              - …
            - `child` string, required
          - object — Used to limit the frequency with which users are contacted by a given Journey.
            - `id` string, required
            - `type` 'RateLimitNode', required
          - object — Used to split users among audiences, based on the behavior and attributes.
            - `id` string, required
            - `type` 'SegmentSplitNode', required
            - `variant` object, required
              - …
            - `name` string
          - object — Used to contact a user on a message channel.
            - `id` string, required
            - `type` 'MessageNode', required
            - `name` string
            - `subscriptionGroupId` string
            - `variant` union, required
              - …
            - `child` string, required
            - `syncProperties` boolean
            - `skipOnFailure` boolean
            - `retryCount` number — Number of retry attempts (default: 3)
          - object — Used to split users among random cohorts, to test their effectiveness.
            - `id` string, required
            - `type` 'RandomCohortNode', required
            - `children` object[], required
              - …
          - object — A node which waits for a user to enter a segment before progressing.
            - `id` string, required
            - `type` 'WaitForNode', required
            - `timeoutSeconds` number, required
            - `timeoutChild` string, required
            - `segmentChildren` object[], required
              - …
    - `createdAt` number, required
  - object
    - `id` string, required
    - `workspaceId` string, required
    - `name` string, required
    - `canRunMultiple` boolean
    - `updatedAt` number, required
    - `draft` object
      - `nodes` object[], required
        - `id` string, required
        - `data` union, required
          - object
            - `type` 'JourneyUiNodeDefinitionProps', required
            - `nodeTypeProps` union, required
              - …
          - object
            - `type` 'JourneyUiNodeLabelProps', required
            - `title` string, required
          - object
            - `type` 'JourneyUiNodeEmptyProps', required
      - `edges` object[], required
        - `source` string, required
        - `target` string, required
        - `data` union, required
          - object
            - `type` 'JourneyUiDefinitionEdgeProps', required
            - `disableMarker` boolean
          - object
            - `type` 'JourneyUiPlaceholderEdgeProps', required
    - `status` union, required
      - 'Running'
      - 'Paused'
      - 'Broadcast'
    - `definition` object, required
      - `entryNode` union, required
        - object — The first node in a journey - triggered when a user enters a segment.
          - `type` 'EntryNode', required
          - `segment` string, required
          - `child` string, required
          - `reEnter` boolean
        - object — The first node in a journey - triggered when a user performs a specific event.
          - `type` 'EventEntryNode', required
          - `event` string, required
          - `key` string
          - `child` string, required
      - `exitNode` object, required — Defines when a user exits a journey. Allows users to re-enter the journey, under some set of conditions.
        - `type` 'ExitNode', required
      - `nodes` union[], required
        - union
          - object — Delays a users progression through the journey for either a set amount of time, or until a specific date time.
            - `id` string, required
            - `type` 'DelayNode', required
            - `variant` union, required
              - …
            - `child` string, required
          - object — Used to limit the frequency with which users are contacted by a given Journey.
            - `id` string, required
            - `type` 'RateLimitNode', required
          - object — Used to split users among audiences, based on the behavior and attributes.
            - `id` string, required
            - `type` 'SegmentSplitNode', required
            - `variant` object, required
              - …
            - `name` string
          - object — Used to contact a user on a message channel.
            - `id` string, required
            - `type` 'MessageNode', required
            - `name` string
            - `subscriptionGroupId` string
            - `variant` union, required
              - …
            - `child` string, required
            - `syncProperties` boolean
            - `skipOnFailure` boolean
            - `retryCount` number — Number of retry attempts (default: 3)
          - object — Used to split users among random cohorts, to test their effectiveness.
            - `id` string, required
            - `type` 'RandomCohortNode', required
            - `children` object[], required
              - …
          - object — A node which waits for a user to enter a segment before progressing.
            - `id` string, required
            - `type` 'WaitForNode', required
            - `timeoutSeconds` number, required
            - `timeoutChild` string, required
            - `segmentChildren` object[], required
              - …
    - `createdAt` 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/revisions/13cf71747bf1/schema)
