Skip to main content
Product Profiles classify Products asynchronously. A list or detail response returns the compact Profile summary by default. Load the condition definition only when a user opens the editor.

Load a Profile for editing

Request the canonical condition tree and its readable expression explicitly:
Request
Response

Build the editor from metadata

Call List Product Profile condition fields when the editor loads. The response describes each field’s label, type, allowed operators, value conversion, finite options, and measurement units. It also provides the CEL help URL for advanced expressions. Fields such as SKU and Product name advertise a value_source instead of embedding every Product. After the operator types at least two characters, call the advertised endpoint with a bounded limit:
Request
Response
The lookup returns simple Products only and at most 50 options. Do not preload the full Product catalogue. When another selector needs Product data, use the Product endpoint’s compact default projection, add only optional fields that the selector displays, and use a bounded limit; see Selecting Fields.

Save and poll classification

Send the edited condition tree to the Profile update endpoint. Omitted fields remain unchanged.
Request
The update returns 200 with no response body. Poll the Profile until classification.status becomes up_to_date. While work is pending, the status may be queued or processing; a failed classification reports failed.
References in condition metadata use their stable field values. Elsewhere in the Global API, related resources use { "type": "...", "id": ... } references. Match both type and id when resolving those references from included.