# Process a single decision Processes a single SDK feature decision. An SDK feature rule can be configured in the console, and allows a custom decision to be made using a range of inputs to drive the behaviour of a website or app. SDK features can output any one of several data types as configured in the console. - String: The output can be any string. - Number: The output can be any numerical value - Enum: The output can be one of a list of strings as configured in the developer panel for the rule. This is used for short output strings. - Component: The output can be one of a list of strings as configured in the developer panel for the rule. This is used for long output strings, such as HTML or JSON. - JSON: The output can be any JSON object. JSON schema validation can optionally be enforced when creating JSON outputs in the console. - Transformation: The output will be a JSON array of transformations to be applied to content on a webpage or in an app. This allows the configuration of the same types of outcomes that can be built with an HTML feature rule, such as hiding content and displaying a payment form. SDK features permit business decisions to drive access or behaviour to be made in an app that is not using HTML content. SDK decisions are relevant for both anonymous and authenticated sessions. If no session is provided via the request then an anonymous session will not be created. Invoking an SDK decision may cause side effects as configured in the rule, such as invoking webhooks or recording trial usages. When dryRunMode is enabled in the request, trial usages will not be recorded. Endpoint: POST /zephr/decision-engine Version: 2025-07-30 Security: CookieBlaizeSession, JwtQuery, JwtHeaderXBlaizeJwt, JwtHeaderXZephrJwt, JwtBearer, JwtCookie ## Query parameters: - `raw` (boolean, required) If set to true, then the decision output will be returned in it's raw form, without metadata. If set to false, the decision output will be returned in an escaped form together with metadata about the decision. ## Request fields (application/json): - `sdkFeatureSlug` (string, required) Feature SDK slug as configured in the console. Example: "sdk-feature-1" - `session` (string) Zephr Session ID, required for trials and for user-based decisions. Example: "0f88f32c-b03c-49cd-b977-0ca224d1acee" - `foreign_keys` (object) A map where the key is a foreign system and the value is an ID used to identify the user in that system. Example: {"external-system":"user-1"} - `ip` (string) Client IP address, defaults to request IP. Example: "56.123.124.23" - `userAgent` (string) Client user agent. Example: "Mozilla/5.0 (Macintosh; Intel Mac OS X 11)..." - `path` (string) Request path representing the content being consumed for trials. Example: "/article.html" - `contentId` (string) Content ID, used to perform requests to a 3rd party API for additional content information used in making a decision. The endpoint and path format for content ID requests can be configured in the console. Example: "paid-article-123" - `jwt` (string) A Json Web Token, may include identity or product holding claims. Example: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" - `giftToken` (string) Enables a decision to be made in the rule based on whether access should be granted as the user has gift access. Example: "23810040-8149-4f4e-a4d1-c8268340be7f" - `dryRunMode` (boolean) If the decision should be run without recording trial usage. ## Response 200 fields (application/json): - `sdkFeatureSlug` (string, required) The slug of the SDK feature which has been evaluated. Example: "sdk-feature-1" - `outputType` (string) Feature output type. Present if there were no errors. Enum: "ENUM", "STRING", "NUMBER", "JSON", "TRANSFORMATION", "COMPONENT" - `outputValue` (string) Feature output value. Present if there were no errors. - For the 'JSON_COMPONENT' output type, the response will be stringified JSON. - For the 'TRANSFORMATION' output type, the response will contain a stringified JSON array of transformations to be applied, including ENABLE_CONTENT, CUSTOM_COMPONENT, TEMPLATE_COMPONENT and FORM. Example: "YES" - `error` (string) The error message explaining why this decision failed to resolve. Present only if there was an error. Example: "500: Internal error ..."