---
title: "Create a Runbook Snapshot"
method: POST
path: "/{spaceId}/projects/{projectId}/runbookSnapshots"
tags: ["RunbookSnapshots"]
---

# Create a Runbook Snapshot

`POST /{spaceId}/projects/{projectId}/runbookSnapshots`

## Request

- Base URL: `https://demo.octopus.app/api`
- URL: `https://demo.octopus.app/api/{spaceId}/projects/{projectId}/runbookSnapshots`
- Auth: one of:
  - API key in header `X-Octopus-ApiKey`
  - API key in query parameter `ApiKey`
  - API key in header `X-NuGet-ApiKey`

## Path parameters

- `spaceId` string, required
- `projectId` string, required

## Request body

- CreateRunbookSnapshotCommand
  - `Name` string, required: The name of the runbook snapshot.
  - `Notes` string: Any additional information about the runbook snapshot.
  - `ProjectId` string, required: ID of the project that owns the runbook to snapshot.
  - `Publish` string: Publishes the snapshot when set to any non-blank value, making it the snapshot that runbook triggers and 'published' runs use. The value itself is not stored. Leave unset to create the snapshot without publishing it.
  - `RunbookId` string, required: ID of the runbook to snapshot.
  - `SelectedGitResources` SelectedGitResource[]
    - `ActionName` string, required
    - `GitReferenceResource` GitReferenceResource, required
      - `GitCommit` string
      - `GitRef` string
    - `GitResourceReferenceName` string
  - `SelectedPackages` SelectedPackage[]: The packages and versions used in the runbook snapshot.
    - `ActionName` string
    - `PackageReferenceName` string
    - `StepName` string
    - `Version` string
  - `SpaceId` string, required: The ID of the space containing the resource(s).

## Response `201`

Created

- RunbookSnapshotResource
  - `Assembled` string, date-time, required
  - `FrozenProjectVariableSetId` string, required
  - `FrozenRunbookProcessId` string, required
  - `GitReference` SnapshotGitReferenceResource
    - `GitCommit` string
    - `GitRef` string
    - `VariablesGitCommit` string
  - `Id` string: Gets or sets a unique identifier for this resource.
  - `LastModifiedBy` string: Gets or sets the username of the user who last modified this resource.
  - `LastModifiedOn` string, date-time: Gets or sets the date/time that this resource was last modified.
  - `LibraryVariableSetSnapshotIds` string[]: Snapshots of the project's included library variable sets. The snapshots are VariableSetResources, not LibraryVariableSetResources.
  - `Links` object: Gets or sets a dictionary of links to other related resources. These links can be used to navigate the resources on the server.
  - `Name` string, required
  - `Notes` string
  - `ProjectId` string, required
  - `ProjectVariableSetSnapshotId` string, required
  - `RunbookId` string, required
  - `SelectedGitResources` SelectedGitResource[]
    - `ActionName` string, required
    - `GitReferenceResource` GitReferenceResource, required
      - `GitCommit` string
      - `GitRef` string
    - `GitResourceReferenceName` string
  - `SelectedPackages` SelectedPackage[]
    - `ActionName` string
    - `PackageReferenceName` string
    - `StepName` string
    - `Version` string
  - `SpaceId` string, required
  - `VariableSnapshotConcurrencyToken` string: Identifies the runbook snapshot's current variable snapshots.

## 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.dev/octopus/apis/octopus-server-api.md) - [All operations](https://skmtc.dev/octopus/apis/octopus-server-api/llms.txt) - [OpenAPI document](https://skmtc.dev/octopus/apis/octopus-server-api/revisions/fe937c07da34?raw)
