---
title: "Create a new Lifecycle."
method: POST
path: "/{spaceId}/lifecycles"
tags: ["Lifecycles"]
---

# Create a new Lifecycle.

`POST /{spaceId}/lifecycles`

## Path parameters

- `spaceId` string, required

## Request body

- CreateLifecycleCommand
  - `Description` string
  - `Name` string, required
  - `Phases` PhaseResource[] — The promotion phases in order. Each phase lists environments deployed to automatically (AutomaticDeploymentTargets) or manually (OptionalDeploymentTargets); an environment may appear in only one phase, and at most one phase may list no environments, meaning all remaining environments. MinimumEnvironmentsBeforePromotion is how many of the phase's environments must be deployed before a release can progress (0 means all). IsOptionalPhase allows skipping the phase, but not every phase may be optional. Per-phase retention policies override the lifecycle-level ones. Leave each phase's Id blank; the server assigns it.
    - `AutomaticDeploymentTargets` string[]
    - `Id` string
    - `IsOptionalPhase` boolean
    - `IsPriorityPhase` boolean
    - `MinimumEnvironmentsBeforePromotion` integer
    - `Name` string
    - `OptionalDeploymentTargets` string[]
    - `ReleaseRetentionPolicy` RetentionPeriod
      - `QuantityToKeep` integer
      - `ShouldKeepForever` boolean
      - `Strategy` string
      - `Unit` 'Days' | 'Items'
    - `TentacleRetentionPolicy` RetentionPeriod
      - `QuantityToKeep` integer
      - `ShouldKeepForever` boolean
      - `Strategy` string
      - `Unit` 'Days' | 'Items'
  - `ReleaseRetentionPolicy` RetentionPeriod
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'
  - `Slug` string
  - `SpaceId` string, required
  - `TentacleRetentionPolicy` RetentionPeriod
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'

## Response `201`

Created

- LifecycleResource
  - `Description` string
  - `Id` string
  - `LastModifiedBy` string
  - `LastModifiedOn` string, date-time
  - `Links` object
  - `Name` string
  - `Phases` PhaseResource[]
    - `AutomaticDeploymentTargets` string[]
    - `Id` string
    - `IsOptionalPhase` boolean
    - `IsPriorityPhase` boolean
    - `MinimumEnvironmentsBeforePromotion` integer
    - `Name` string
    - `OptionalDeploymentTargets` string[]
    - `ReleaseRetentionPolicy` RetentionPeriod
      - `QuantityToKeep` integer
      - `ShouldKeepForever` boolean
      - `Strategy` string
      - `Unit` 'Days' | 'Items'
    - `TentacleRetentionPolicy` RetentionPeriod
      - `QuantityToKeep` integer
      - `ShouldKeepForever` boolean
      - `Strategy` string
      - `Unit` 'Days' | 'Items'
  - `ReleaseRetentionPolicy` RetentionPeriod
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'
  - `Slug` string
  - `SpaceId` string
  - `TentacleRetentionPolicy` RetentionPeriod
    - `QuantityToKeep` integer
    - `ShouldKeepForever` boolean
    - `Strategy` string
    - `Unit` 'Days' | 'Items'

## Other responses

- `400` — Bad request. Either the payload was not structurally valid or business rules did not permit the operation.
- `404` — Not found. One or more of the entities involved in the operation was not found.

---

[API](https://skmtc.net/octopus/apis/octopus-server-api.md) · [All operations](https://skmtc.net/octopus/apis/octopus-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/octopus/octopus-server-api/revisions/dbbd6d1e3f1c/schema)
