---
title: "Create a shadow experiment target"
method: POST
path: "/projects/{projectId}/endpoints/{endpointId}/shadowExperiments/{experimentId}/targets"
tags: ["ShadowExperimentService"]
---

# Create a shadow experiment target

`POST /projects/{projectId}/endpoints/{endpointId}/shadowExperiments/{experimentId}/targets`

Adds a deployment under the same endpoint as a target for mirrored requests.

## Path parameters

- `projectId` string, required — Project identifier.
- `endpointId` string, required — Endpoint identifier.
- `experimentId` string, required — Shadow experiment identifier.

## Request body

- DECreateShadowExperimentTargetRequest — Deployment under the parent endpoint that should receive mirrored requests from a shadow experiment.
  - `name` string, required — Human-readable target name, unique within the shadow experiment. At most 256 characters.
  - `targetDeploymentId` string, required — Deployment under the parent endpoint that receives mirrored traffic. It must not be a live traffic-split member or the source or target of an active rollout; traffic-split weight 0 warm-up targets are allowed.
  - `description` string — Optional free-form target description.

## Response `200`

OK

- DEShadowExperimentTarget — Deployment that receives mirrored traffic for a shadow experiment.
  - `id` string, required — Output only. Unique shadow experiment target identifier.
  - `experimentId` string, required — Output only. Shadow experiment this target belongs to.
  - `name` string, required — Human-readable target name, unique within the shadow experiment. At most 256 characters.
  - `targetDeploymentId` string, required — Deployment under the parent endpoint that receives mirrored traffic. It must not be a live traffic-split member or the source or target of an active rollout; traffic-split weight 0 warm-up targets are allowed.
  - `description` string — Optional free-form target description.
  - `createdAt` string, date-time, required — Output only. Timestamp when the target was created.
  - `updatedAt` string, date-time, required — Output only. Timestamp when the target was last updated.
  - `etag` string, required — Opaque version tag for optimistic concurrency control. Returned on read; set it on update or delete requests for consistent read-modify-write.

## Other responses

- `400` — Invalid request
- `default` — Default error response

---

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