This section contains the API operations for the OAuth 2.0 Authorization Code Flow.
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
Starts OAuth2 Authorization Code Flow. The resource owner will be authenticated and be presented with the third-party application access request.
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/oauth2
- https://demo-site/zephr/oauth2
- 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/zephr/oauth2?client_id=string&response_type=string&redirect_uri=string&scope=string&state=string' \
-b blaize_session=YOUR_API_KEY_HERE- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/oauth2/consent/{clientId}
- https://demo-site/zephr/oauth2/consent/{clientId}
- 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/zephr/oauth2/consent/{clientId}' \
-b blaize_session=YOUR_API_KEY_HERE{ "consent": [ "user.account:read", "user.account:write" ] }
Request
The resource owner will consent or deny the third party application access request, and Zephr will return an authorization code upon user's consent.
Client's redirection endpoint. Must be an absolute URI
The scope of the access request. Supported scopes: user.account:read, user.profile:read and user.profile:update
An opaque value used by the client to maintain state between the request and callback
- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/oauth2/grant
- https://demo-site/zephr/oauth2/grant
- 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/oauth2/grant \
-H 'Content-Type: application/json' \
-b blaize_session=YOUR_API_KEY_HERE \
-d '{
"client_id": "1234567890",
"response_type": "code",
"redirect_uri": "https://someUrl.com/callback",
"scope": "user.account:read user.profile:read",
"state": "abcdefghijklmnopqrstuvwsyz",
"allow": true
}'- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/oauth2/config
- https://demo-site/zephr/oauth2/config
- 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/zephr/oauth2/config \
-b blaize_session=YOUR_API_KEY_HERE- Mock serverhttps://developer.zuora.com/_mock/zephr-api-reference/zephr-public-api/zephr/oauth2/error
- https://demo-site/zephr/oauth2/error
- 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/zephr/oauth2/error \
-b blaize_session=YOUR_API_KEY_HERERequest
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 }