---
title: "Execute Browser feature decisions"
method: POST
path: "/zephr/feature-decisions"
tags: ["Browser Feature Transformations"]
---

# Execute Browser feature decisions

`POST /zephr/feature-decisions`

## Request

- Base URL: `https://demo-site`
- URL: `https://demo-site/zephr/feature-decisions`
- Auth: one of:
  - API key in cookie `blaize_session`
  - API key in query parameter `jwt`
  - API key in header `x-blaize-jwt`
  - API key in header `x-zephr-jwt`
  - HTTP bearer
  - API key in cookie `blaize_jwt`

Zephr HTML Features can be run in the browser by calling this API directly or using the Zephr Browser SDK. For compatibility with CDN, any web headers (Referrer, User-Agent) will be accepted and passed onto the rule engine.

**Providing a JWT**

Supply it as a `jwt` query parameter, an `X-Blaize-Jwt` header, an `X-Zephr-Jwt` header, an `Authorization: Bearer` header, or a `blaize_jwt` cookie. If more than one is present, the first found in that order is used.

## Headers

- `Cookie` string

## Request body

- object
  - `featureIds` unknown[], required: Array of HTML Feature IDs
    - unknown
  - `session` string: Zephr Session ID
  - `referer` string: Browser referer
  - `path` string: Request path, defaults to "/". If available, include the content ID as a query parameter. For example, `/story.html?content_id=abc-123`.
  - `content_metadata` object
    - `content_id` string: Content ID, used to perform requests to a 3rd party API for additional content information used in making a decision.
  - `giftToken` string: Token to provide access to content for one session.
  - `customData` object: Custom data to be used in Feature HTML browser rule. Accepts a JSON object.

## Response `200`

OK

- BrowserFeaturesResponse
  - `featureResults` object: Map of HTML Feature IDs and feature result transformations.
    - `featureX` string: Feature result transformations
  - `resources` object: Map of transformation resources
    - `forms` object: Forms used in feature results.
    - `paymentForms` object: Payment Forms used in feature results.
    - `uiComponents` object
    - `hostedUiComponents` object: Hosted UI Components used in feature results.
    - `componentTemplates` object: Component Templates used in feature results.
  - `accessDetails` object: Feature access details
    - `authenticated` boolean: Is the session authenticated
    - `accessDecisions` object
    - `entitlements` AccessDetailsUsageEnt: Map of meter usage
      - `usedInDecision` boolean
      - `decrementedInDecision` boolean
    - `credits` AccessDetailsUsage: Map of meter usage
      - `usedInDecision` boolean
      - `decrementedInDecision` boolean
      - `totalCredits` number
      - `remainingCredits` number
    - `meters` AccessDetailsUsage: Map of meter usage
      - `usedInDecision` boolean
      - `decrementedInDecision` boolean
      - `totalCredits` number
      - `remainingCredits` number
    - `trialTrackingDetails` unknown[]: Array of trial tracking details
      - unknown
    - `trials` AccessDetailsTrial: Map of trial usage
      - `totalCredits` number
      - `remainingCredits` number
      - `creditsConsumed` number
      - `trialExpired` boolean
      - `tracker` string
      - `reportInDataLayer` boolean
      - `dataLayerCreditsUsedKey` string
      - `dataLayerCreditsRemainingKey` string
      - `decrementedInDecision` boolean
      - `usedInDecision` boolean
    - `timeTrials` AccessDetailsTimeTrial: Map of time trial usage
      - `reportInDataLayer` boolean
      - `trialDurationUnits` string
      - `trialDuration` number
      - `entryTime` string
      - `trackerHits` number
      - `timeRemainingInTrial` number
      - `dataLayerTrialDurationKey` string
      - `dataLayerTrialDurationUnitsKey` string
      - `dataLayerTrackerEntryTimeKey` string
      - `dataLayerTrackerHitsKey` string
      - `dataLayerTrialTimeRemainingKey` string
      - `activeInDecision` boolean
    - `testGroups` object
    - `activeProducts` string[]: Array of user's active products

## Changes

- **2026-10-02** `678190d04c40`: 1 warning, 2 info
  - removed the request property `jwt`
  - added the optional property `accessDetails/trials/creditsConsumed` to the response with the `200` status
  - added the optional property `accessDetails/trials/trialExpired` to the response with the `200` status

[Operation history](https://skmtc.dev/zuora/apis/zuora-2/changes/zephr/feature-decisions/post.md)

---

[API](https://skmtc.dev/zuora/apis/zuora-2.md) - [All operations](https://skmtc.dev/zuora/apis/zuora-2/llms.txt) - [OpenAPI document](https://skmtc.dev/zuora/apis/zuora-2/revisions/678190d04c40?raw)
