Segments

Update expiring targets for segment

PATCH
/api/v2/segments/{projectKey}/{segmentKey}/expiring-targets/{environmentKey}

Update expiring context targets for a segment. Updating a context target expiration 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.

If the request is well-formed but any of its instructions failed to process, this operation returns status code 200. In this case, the response errors array will be non-empty.

Instructions

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

addExpiringTarget

Schedules a date and time when LaunchDarkly will remove a context from segment targeting. The segment must already have the context as an individual target.

Parameters
  • targetType: The type of individual target for this context. Must be either included or excluded.
  • contextKey: The context key.
  • contextKind: The kind of context being targeted.
  • value: The date when the context should expire from the segment targeting, in Unix milliseconds.

Here's an example:

{  "instructions": [{    "kind": "addExpiringTarget",    "targetType": "included",    "contextKey": "user-key-123abc",    "contextKind": "user",    "value": 1754092860000  }]}

updateExpiringTarget

Updates the date and time when LaunchDarkly will remove a context from segment targeting.

Parameters
  • targetType: The type of individual target for this context. Must be either included or excluded.
  • contextKey: The context key.
  • contextKind: The kind of context being targeted.
  • value: The new date when the context should expire from the segment targeting, in Unix milliseconds.
  • version: (Optional) The version of the expiring target to update. If included, update will fail if version doesn't match current version of the expiring target.

Here's an example:

{  "instructions": [{    "kind": "updateExpiringTarget",    "targetType": "included",    "contextKey": "user-key-123abc",    "contextKind": "user",    "value": 1754179260000  }]}

removeExpiringTarget

Removes the scheduled expiration for the context in the segment.

Parameters
  • targetType: The type of individual target for this context. Must be either included or excluded.
  • contextKey: The context key.
  • contextKind: The kind of context being targeted.

Here's an example:

{  "instructions": [{    "kind": "removeExpiringTarget",    "targetType": "included",    "contextKey": "user-key-123abc",    "contextKind": "user",  }]}

Authorization

ApiKey read, write
Authorization<token>

In: header

Scope: read, write

Path Parameters

projectKey*string

The project key

Formatstring
environmentKey*string

The environment key

Formatstring
segmentKey*string

The segment key

Formatstring

Request Body

application/json

comment?string

Optional description of changes

instructions*array<>

Semantic patch instructions for the desired changes to the resource

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/v2/segments/string/string/expiring-targets/string" \  -H "Content-Type: application/json" \  -d '{    "instructions": [      {        "contextKey": "user@email.com",        "contextKind": "user",        "kind": "updateExpiringTarget",        "targetType": "included",        "value": 1587582000000,        "version": 0      }    ]  }'
{  "items": [    {      "_id": "12ab3c45de678910abc12345",      "_version": 1,      "expirationDate": "1672358400000",      "contextKind": "user",      "contextKey": "context-key-123abc",      "targetType": "included",      "variationId": "cc4332e2-bd4d-4fe0-b509-dfd2caf8dd73",      "_resourceId": {        "environmentKey": "environment-key-123abc",        "flagKey": "string",        "key": "segment-key-123abc",        "kind": "segment",        "projectKey": "project-key-123abc"      }    }  ],  "_links": {    "property1": {      "href": "string",      "type": "string"    },    "property2": {      "href": "string",      "type": "string"    }  },  "totalInstructions": 0,  "successfulInstructions": 0,  "failedInstructions": 0,  "errors": [    {      "instructionIndex": 1,      "message": "example error message"    }  ]}