---
title: "Preview release targets for a resource"
method: POST
path: "/v1/workspaces/{workspaceId}/release-targets/resource-preview"
---

# Preview release targets for a resource

`POST /v1/workspaces/{workspaceId}/release-targets/resource-preview`

Simulates which release targets would be created if the given resource were added to the workspace. This is a dry-run endpoint — no resources or release targets are actually created.

## Path parameters

- `workspaceId` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Request body

- ResourcePreviewRequest
  - `config` object, required
  - `identifier` string, required
  - `kind` string, required
  - `metadata` object, required
  - `name` string, required
  - `version` string, required

## Response `200`

Paginated list of items

- object
  - `items` ReleaseTargetPreview[], required
    - `deployment` Deployment, required
      - `description` string
      - `id` string, required
      - `jobAgentConfig` object, required
      - `jobAgentId` string
      - `jobAgents` DeploymentJobAgent[]
        - `config` JobAgentConfig, required
        - `ref` string, required
        - `selector` string, required — CEL expression to determine if the job agent should be used
      - `metadata` object
      - `name` string, required
      - `resourceSelector` union
        - JsonSelector
          - `json` object, required
        - CelSelector
          - `cel` string, required
      - `slug` string, required
    - `environment` Environment, required
      - `createdAt` string, date-time, required
      - `description` string
      - `id` string, required
      - `metadata` object
      - `name` string, required
      - `resourceSelector` union
        - JsonSelector
          - `json` object, required
        - CelSelector
          - `cel` string, required
    - `system` System, required
      - `description` string
      - `id` string, required
      - `metadata` object
      - `name` string, required
      - `slug` string, required
      - `workspaceId` string, required
  - `limit` integer, required — Maximum number of items returned
  - `offset` integer, required — Number of items skipped
  - `total` integer, required — Total number of items available

## Other responses

- `400` — Invalid request

## Changes

- **2026-02-19** `e61389fc98ac` — 5 breaking, 2 info
  - added `#/components/schemas/JsonSelector, #/components/schemas/CelSelector` to the `items/items/deployment/resourceSelector` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/JsonSelector, #/components/schemas/CelSelector` to the `items/items/environment/resourceSelector` response property `oneOf` list for the response status `200`
  - the `items/items/deployment/resourceSelector` response's property type/format changed from `string`/`` to ``/`` for status `200`
  - the `items/items/environment/resourceSelector` response's property type/format changed from `string`/`` to ``/`` for status `200`
  - …3 more

[Change history](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api/changes/v1/workspaces/:workspaceId/release-targets/resource-preview/post.md)

---

[API](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api.md) · [All operations](https://skmtc.dev/ctrlplanedev/apis/ctrlplane-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ctrlplanedev/ctrlplane-api/revisions/69370c50cf4e/schema)
