---
title: "Update expiring user targets on feature flag"
method: PATCH
path: "/api/v2/flags/{projectKey}/{featureFlagKey}/expiring-user-targets/{environmentKey}"
tags: ["Feature flags"]
---

# Update expiring user targets on feature flag

`PATCH /api/v2/flags/{projectKey}/{featureFlagKey}/expiring-user-targets/{environmentKey}`

> ### Contexts are now available
>
> After you have upgraded your LaunchDarkly SDK to use contexts instead of users, you should use [Update expiring context targets on feature flag](https://launchdarkly.com/docs/api/feature-flags/patch-expiring-targets) instead of this endpoint. To learn more, read [Contexts](https://launchdarkly.com/docs/home/observability/contexts).

Schedule a target for removal from individual targeting on a feature flag. The flag must already serve a variation to specific targets based on their key.

You can add, update, or remove a scheduled removal date. You can only schedule a target for removal on a single variation per flag.

Updating an expiring target uses the semantic patch format. To make a semantic patch request, you must append `domain-model=launchdarkly.semanticpatch` to your `Content-Type` header. To learn more, read [Updates using semantic patch](https://launchdarkly.com/docs/api#updates-using-semantic-patch).

### Instructions

Semantic patch requests support the following `kind` instructions for updating expiring user targets.

<details>
<summary>Click to expand instructions for <strong>updating expiring user targets</strong></summary>

#### addExpireUserTargetDate

Adds a date and time that LaunchDarkly will remove the user from the flag's individual targeting.

##### Parameters

* `value`: The time, in Unix milliseconds, when LaunchDarkly should remove the user from individual targeting for this flag
* `variationId`: ID of a variation on the flag
* `userKey`: The user key for the user to remove from individual targeting

#### updateExpireUserTargetDate

Updates the date and time that LaunchDarkly will remove the user from the flag's individual targeting.

##### Parameters

* `value`: The time, in Unix milliseconds, when LaunchDarkly should remove the user from individual targeting for this flag
* `variationId`: ID of a variation on the flag
* `userKey`: The user key for the user to remove from individual targeting
* `version`: (Optional) The version of the expiring user target to update. If included, update will fail if version doesn't match current version of the expiring user target.

#### removeExpireUserTargetDate

Removes the scheduled removal of the user from the flag's individual targeting. The user will remain part of the flag's individual targeting until you explicitly remove them, or until you schedule another removal.

##### Parameters

* `variationId`: ID of a variation on the flag
* `userKey`: The user key for the user to remove from individual targeting

</details>

## Path parameters

- `projectKey` string, string, required — The project key
- `environmentKey` string, string, required — The environment key
- `featureFlagKey` string, string, required — The feature flag key

## Request body

- PatchFlagsRequest
  - `comment` string — Optional comment describing the change
  - `instructions` Instruction[], required — The instructions to perform when updating

## Response `200`

Expiring user target response

- ExpiringUserTargetPatchResponse
  - `items` ExpiringUserTargetItem[], required — An array of expiring user targets
    - `_id` string, required — The ID of this expiring user target
    - `_version` integer, required — The version of this expiring user target
    - `expirationDate` integer, required
    - `userKey` string, required — A unique key used to represent the user
    - `targetType` string — A segment's target type. Included when expiring user targets are updated on a segment.
    - `variationId` string — A unique key used to represent the flag variation. Included when expiring user targets are updated on a feature flag.
    - `_resourceId` ResourceIDResponse, required
      - `kind` string
      - `projectKey` string
      - `environmentKey` string
      - `flagKey` string
      - `key` string
  - `_links` object — The location and content type of related resources
  - `totalInstructions` integer — The total count of instructions sent in the PATCH request
  - `successfulInstructions` integer — The total count of successful instructions sent in the PATCH request
  - `failedInstructions` integer — The total count of the failed instructions sent in the PATCH request
  - `errors` ExpiringTargetError[] — An array of error messages for the failed instructions
    - `instructionIndex` integer, required — The index of the PATCH instruction where the error occurred
    - `message` string, required — The error message related to a failed PATCH instruction

## Other responses

- `400` — Invalid request
- `401` — Invalid access token
- `403` — Forbidden
- `404` — Invalid resource identifier
- `429` — Rate limited

---

[API](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api.md) · [All operations](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/launchdarkly/launchdarkly-rest-api/revisions/69c5c9aafe78/schema)
