This section contains the API operations for the OAuth 2.0 Authorization Code Flow.
- Save Extended Profile
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 is designed to be used for retrieving the user's Extended Profile. 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
curl -i -X GET \
'https://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/blaize/profile/{appId}' \
-H 'cookie: `blaize_session=...` (string)' \
-b '`blaize_session=...` (string)'- jsonExample
- arrayExample
{ "first_name": "John", "last_name": "Doe", "user_details": { "email_address": "john.doe@zuora.com", "employment": { … }, "consent_prefs": { … }, "interests": [ … ] } }
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" }
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 }