Update a custom property

Update a custom property by ID when changes are needed to metadata such as name, hint, settings, scopes, teamSites, or domainOfValues for select types; this endpoint should be used after retrieving the current resource with GET to ensure the agent preserves id, tenantId, etag, and timestamp. Use PUT when modifying an existing property, and POST when creating a new one. Typical scenarios include: (1) adjusting domainOfValues for an existing single-select or multi-select property while keeping rules consistent; (2) changing visibility or filter behavior under settings; (3) updating teamSites order or Doc Center visibility. Preconditions: fetch the property with GET, retain id|tenantId|etag|timestamp, and keep propertyType unchanged. If a 409 Conflict occurs (e.g., concurrent update or validation error), the agent should re-GET the resource, reconcile changes, and retry PUT with the latest etag. Example usage: To change domainOfValues for an existing single-select property, first GET /custom-property/v1/customProperties/{id}, modify domainOfValues values and orders, keep existing IDs when possible, then PUT the full body with updated domainOfValues and unchanged propertyType. Example request (truncated): {"kind":"CustomProperty","id":"","tenantId":"","etag":"","name":"Prop-1","propertyType":"single-select","domainOfValues":[{"id":"","value":"AAA","order":1},{"id":"","value":"BBB","order":2}]} Example usage: To change settings for search facets, GET the property, update settings.searchFacetOrder and settings.showInFilter, then PUT the entire resource preserving id|tenantId|etag|timestamp. Example response (truncated): {"kind":"CustomProperty","name":"Prop-1","settings":{"showInFilter":true,"searchFacetOrder":10}, ...}

Body Field Definition

For fields definition, please reference create custom property via POST.

You can simply use the GET the get a body of custom property, modify any relevant fields, then send the body via PUT to update custom property.
Property with same name, should not have the same teamsite. so when update property name, need to ensure no overlapped teamsite with other properties with same name.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

This is a Custom Property Id, which is a string saved in GUID format and is unique for each custom property. for example, "3dd27f10-a2c3-47c9-8c5e-68411eed6802"

Body Params

PUT /custom-property/v1/customProperties/{customPropertyId} updates a custom property by id with a JSON body where required fields are kind="CustomProperty", name, propertyType (cannot change type for an existing property), scopes, teamSites, lastUpdateUserId, and typically id|tenantId|etag|timestamp are included from the prior GET; optional fields mirror POST (order, hint, settings, domainOfValues, propertyDependency, valueCascading) and lastUpdateDateTime can be provided; for select types ensure domainOfValues consistency with any selectValueIds in dependency/cascading rules.

string

Resource kind; always 'CustomProperty'. Use to verify response type when parsing.

string

name of current custom property, the property name length need to less than 50 words.

string

don't allow to change propertyType for existed property

number

order of property, it is used to sort property in asc order.don't' use duplicated number, it should be a ointeger (>=0), it will be better in [1,2000]

string

tips of property usage, help user to understand how to use this property.

domainOfValues
array of objects

List of allowed values for the property. Each item includes id (GUID), value (string <=255 chars) and order (integer >=0) used for sorting. When propertyType is single-select, multi-select or tag, it need include domianOfValues.

domainOfValues
settings
object
scopes
object
teamSites
object

In Seismic Custom Properties, teamSites defines where a property is available and whether it’s visible in Doc Center per teamsite. It is a JSON object keyed by teamSiteId (GUID), where each entry has order (integer) and isVisibleInDocCenter (boolean). If scopes only contains content, at least one teamsite is required. Provide teamSites in POST/PUT; the same structure is returned by GET. Use the Find API filter with attribute teamSites and operator ArrayContains to fetch properties enabled for a given teamsite. Global Doc Center settings live under settings (showInDocCenter, showInDocCenterFilter and their constraint), while teamSites.{id}.isVisibleInDocCenter toggles visibility for that specific site. Keep order values unique and meaningful for UI ordering, and only include sites that should use the property.

string

save a user Id which is from UMS service when the user create, update or delete this custom property.

date-time

UTC timestamp of the latest change to this property; RFC 3339 format. Example shows seven fractional seconds used by the service.

propertyDependency
array of strings

In Seismic Custom Properties, propertyDependency defines how one or more controlling custom properties drive behavior of the current property. It is an array of JSON strings (escaped JSON) in the API payload; unescape each string to view or edit the JSON rule. A rule includes id (unique GUID), name (unique), ruleType (currently RuleWithOneOrNControllingProperties), match (boolean logic with conditions, optional filters, and an And/Or operator), and options (actions applied when the match is satisfied). Each condition targets a controlling property via attribute traits.customProperties.fields.properties.{controllerPropertyId}.value.valueId for single-/multi-select controllers or .value.value for non-select types (string, integer, date, boolean), with operators such as Equal, NotEqual, In, NotIn, LessThan, GreaterThan, and ArrayContainsAny (for multi-select); the value is a scalar or array as required by the operator. Options control UI and behavior: isVisible (show/hide), isRequiredForPublish, isAutoSelect, selectValueIds (required when isAutoSelect is true; IDs must exist in the current property’s domainOfValues), and appendMapInfos (null for this ruleType). Each custom property can have up to 32 dependency rules, and a rule can include up to 32 conditions; use UTC timestamps (e.g., 2023-01-04T00:00:00.0000000Z) for date comparisons. This is an advanced feature available to Premier and Enterprise Plus; a practical approach is to GET a UI-created property with similar rules, unescape and adjust IDs/values, then POST/PUT the updated rules and, if needed, submit to Seismic for review.

propertyDependency
valueCascading
array of strings

In Seismic Custom Properties, valueCascading controls which values of the current property are visible (and optionally auto-selected) based on a controlling property’s selections; it only applies when both the controller and the current property are single-select or multi-select. In the API payload, valueCascading is an array of escaped JSON strings; unescape each to view or edit. Each rule contains id (unique GUID), name (unique), controllerId (the controlling property), isAutoSelect (whether to auto-set the current property), and matches (an array of match blocks). Each match block has match (boolean logic with conditions, optional filters, and And/Or operator) and possibleValueIds (the allowed value IDs from the current property’s domainOfValues when the match is satisfied). Conditions reference the controller’s selection via attribute traits.customProperties.fields.properties.{controllerPropertyId}.value.valueId and operators such as Equal, In, NotIn, ArrayContainsAny; since it’s select-only, valueId is used rather than value. At runtime, when controller selections meet a match, the current property’s visible choices are filtered to the union of the matched possibleValueIds; if nothing matches, no value is shown; if isAutoSelect is true, the current property is set to the specified values. Limits: up to 1000 matches per rule, up to 1000 possibleValueIds per match. up to 1 valuecascading rule. This is an advanced feature (Premier/Enterprise Plus); best practice is to GET a UI-created rule, unescape and adjust IDs/values, then POST/PUT the result for use.

valueCascading
string

tenant id which current custom property belongs to, the tenantId is a GUID.

string

This is a Custom Property Id, which is a string saved in GUID format and is unique for each custom property. for example, "3dd27f10-a2c3-47c9-8c5e-68411eed6802"

string

a tag, is a short guid,when create, update or delete, don't need to set value.

date-time

Server-managed UTC timestamp (RFC 3339) from prior GET, typically used for optimistic concurrency; include the latest value when updating.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json