This section contains the API operations for the OAuth 2.0 Authorization Code Flow.
- Create an authorization challenge
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
Extended Profile is used to store additional user information that is not part of the core profile. This endpoint will create an Extended Profile for the App ID if one did not exist already, or overwrite an existing Extended Profile for the App ID. The body can be any valid JSON.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/profile/{appId}
- https://demo-site/blaize/profile/{appId}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
- jsonExample
- arrayExample
curl -i -X PUT \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/profile/{appId}' \
-H 'Content-Type: application/json' \
-H 'cookie: `blaize_session=...` (string)' \
-b '`blaize_session=...` (string)' \
-d '{
"first_name": "John",
"last_name": "Doe",
"user_details": {
"email_address": "john.doe@zuora.com",
"employment": {
"company": "Zuora",
"job_title": "Software Engineer"
}
},
"consent_prefs": {
"email": false,
"sms": true
},
"interests": [
"Reading",
"Coding",
"Hiking"
]
}'{ "message": "User extended profile updated" }
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/schema/users
- https://demo-site/blaize/schema/users
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/schema/users \
-b blaize_session=YOUR_API_KEY_HEREOK. Returns a list of schema fields.
The visibility of the schema field. This is used to determine who can see the field. By default, all fields are PUBLIC. Those fields are visible to all users.
The context of the schema field. It is used to group fields together into different contexts. By default, all fields are used in the null context.
The decision point of the schema field. It determines whether the field is used in the decision engine. If set to true, this field will be evaluated by the decision engine to influence the outcome of decisions. For example, a field marked as a decision point might be used to grant or deny access to a specific feature.
[ { "tenantId": "company", "subTenantId": "company|demo", "slug": "first-name", "visibility": "PUBLIC", "context": "ZUORA_BILLING", "label": "First Name", "required": true, "internal-description": "The first name of the user", "public-description": "The first name of the user", "validation-expression": "[a-z]+$", "input-type": "text", "select-options": "[ {key1: value1}, {key2: value2} ]", "range-start": 0, "range-end": 100, "range-step": 1, "decision-point": true, "publicly-writable": true, "form-use": false } ]
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 }