# 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: 2026-06-12
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
