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.
Public API Reference (2025-07-30)
The Zephr Public API provides common client-side actions tied to a session cookie. Unlike the Admin API, neither users nor other resources can be dereferenced; the only data that can be accessed is owned by the user who is currently signed-in. This design is used to protect other users from malicious attacks.
You can find the base URL for the Public API by navigating to your site domains. To do this, select Sites from the Delivery menu, select your site, and then click the Site Domains button. The base URL is the Live domain.
Zephr forms use the Public API by default, with relative URLs based on the base URL.
Request path, defaults to "/". If available, include the content ID as a query parameter. For example, /story.html?content_id=abc-123.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/feature-decisions
- https://demo-site/zephr/feature-decisions
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/feature-decisions \
-H 'Content-Type: application/json' \
-H 'Cookie: blaize_session=...' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"featureIds": [
"featureX"
],
"session": "xxx-xxx-xxx",
"referer": "https://www.zephr.com/",
"path": "/x.html",
"content_metadata": {
"content_id": "xxx-xxx-xxx"
},
"giftToken": "xxx-xxx-xxx",
"jwt": "xxx-xxx-xxx",
"customData": {
"key": "value"
}
}'{ "featureResults": { "featureX": "blaize.transform.resource('...')" }, "resources": { "uiComponents": { … } }, "accessDetails": { "authenticated": false, "accessDecisions": { … }, "entitlements": { … }, "credits": { … }, "meters": { … }, "trialTrackingDetails": [ … ], "trials": { … }, "timeTrials": { … }, "testGroups": { … }, "activeProducts": [ … ] } }
Request
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.
Request path, defaults to "/". If available, include the content ID as a query parameter. For example, /story.html?content_id=abc-123.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/feature-transformations
- https://demo-site/zephr/feature-transformations
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/feature-transformations \
-H 'Content-Type: application/json' \
-H 'Cookie: blaize_session=...' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"featureIds": [
"featureX"
],
"session": "xxx-xxx-xxx",
"referer": "https://www.zephr.com/",
"path": "/x.html",
"content_metadata": {
"content_id": "xxx-xxx-xxx"
},
"giftToken": "xxx-xxx-xxx",
"jwt": "xxx-xxx-xxx",
"customData": {
"key": "value"
}
}'{ "featureResults": { "featureX": { … } }, "accessDetails": { "authenticated": false, "accessDecisions": { … }, "entitlements": { … }, "credits": { … }, "meters": { … }, "trialTrackingDetails": [ … ], "trials": { … }, "timeTrials": { … }, "testGroups": { … }, "activeProducts": [ … ] } }
Request
Generates a new preview of the price that Stripe will charge the customer if they create a new subscription for the specified plan. Note: This method does not create any entities in Stripe and does not result in any payments being made.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscriptions/{externalId}/change-previews
- https://demo-site/zephr/payment/stripe/subscriptions/{externalId}/change-previews
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/payment/stripe/subscriptions/{externalId}/change-previews' \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"plan_id": "string"
}'{ "total": 5000, "sub_total": 4500 }