# Process multiple decisions Processes multiple decisions. The SDK Feature Decision Engine can be invoked via the Public API to calculate a decision output response based upon Feature SDK Rules created in the Zephr Console. Endpoint: POST /zephr/decide Version: 2025-07-30 Security: CookieBlaizeSession, JwtQuery, JwtHeaderXBlaizeJwt, JwtHeaderXZephrJwt, JwtBearer, JwtCookie ## Request fields (application/json): - `features` (array, required) The list of features to evaluate. This must be contain at least one element. Features are evaluated sequentially, in the order they are provided. Example: [{"slug":"featureX","path":"/x.html","content_id":"xxx-xxx-xxx","inputs":{}}] - `session` (string) Zephr Session ID, required for trials. Example: "xxx-xxx-xxx" - `foreign_keys` (object) Foreign system and ID used to identify the user. Example: {} - `ip` (string) Client IP address, defaults to request IP. Example: "x.x.x.x" - `user_agent` (string) Client user agent Example: "Mozilla/5.0 (Macintosh; Intel Mac OS X 11)..." - `jwt` (string) A Json Web Token, may include identity or product holding claims. Example: "xxx-xxx-xxx" - `dry_run_mode` (boolean) A flag to indicate where the decision request would persist states such as user entitlement, segments, test groups, etc. ## Response 200 fields (application/json): - `results` (array, required) List of feature decision outcomes. These will be ordered as provided in the request. - `results.sdkFeatureSlug` (string, required) The slug of the SDK feature which has been evaluated. Example: "sdk-feature-1" - `results.outputType` (string) Feature output type. Present if there were no errors. Enum: "ENUM", "STRING", "NUMBER", "JSON", "TRANSFORMATION", "COMPONENT" - `results.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" - `results.error` (string) The error message explaining why this decision failed to resolve. Present only if there was an error. Example: "500: Internal error ..." ## Response 400 fields