API Authentication
Zoho Backstage APIs use OAuth 2.0 for authentication. This page gives you an overview of the authentication process. For complete details on OAuth 2.0 flows, registration, token management, and more, refer to Zoho OAuth 2.0 documentation.
How it works
To access Zoho Backstage APIs, your application needs an access token obtained through one of the OAuth 2.0 flows. At a high level, the steps are:
- Register your application in the Zoho API console.
- Get consent from user to access their data and obtain an access token.
- Call Zoho Backstage APIs using the access token.
Token expiry: Access tokens expire periodically. The expiry duration is mentioned as expires_in (seconds) in the access token response. To maintain uninterrupted access, you can request for an optional refresh token, store it, and use it to generate new access tokens as needed.
Different OAuth flows for different app types: Zoho supports OAuth flows for different application types (server-based, client-based, mobile & desktop-based, limited input devices, and self client). You can choose the flow that matches your application.
Multi DC support: Zoho operates data centers in multiple regions. If your application serves users across regions, you must enable Multi DC support in the API console and use region-specific endpoints for both OAuth and Product API calls.
See detailed OAuth 2.0 workflow
Scopes
Zoho Backstage APIs require OAuth scopes to define the level of access your application needs. When requesting for access token, request only the scopes your application requires. These will be displayed to the users when asking for consent.
| Module | Scope | Description |
|---|---|---|
| Portal | ZohoBackstage.portal.READ | Access portal details such as portal metadata and ownership information. |
| Event | ZohoBackstage.event.READ | Retrieve event details including event listings and specific event data. |
| ZohoBackstage.event.CREATE | Create new events within a portal. | |
| ZohoBackstage.event.UPDATE | Update existing event details and configurations. | |
| ZohoBackstage.event.DELETE | Delete events from the portal. | |
| Agenda | ZohoBackstage.agenda.READ | Retrieve agenda and session details for an event. |
| ZohoBackstage.agenda.CREATE | Create new agenda items or sessions. | |
| ZohoBackstage.agenda.UPDATE | Update existing agenda or session details. | |
| ZohoBackstage.agenda.DELETE | Delete agenda items or sessions. | |
| Speaker | ZohoBackstage.speaker.READ | Retrieve speaker profiles and details. |
| ZohoBackstage.speaker.CREATE | Add new speakers to an event. | |
| ZohoBackstage.speaker.UPDATE | Update speaker information. | |
| ZohoBackstage.speaker.DELETE | Delete speaker records. | |
| Sponsor | ZohoBackstage.sponsor.READ | Retrieve sponsor details for an event. |
| ZohoBackstage.sponsor.CREATE | Add new sponsors to an event. | |
| ZohoBackstage.sponsor.UPDATE | Update sponsor information. | |
| ZohoBackstage.sponsor.DELETE | Delete sponsor records. | |
| Ticket Class | ZohoBackstage.eventticket.READ | Retrieve ticket classes configured for an event. |
| ZohoBackstage.eventticket.CREATE | Create new ticket classes. | |
| ZohoBackstage.eventticket.UPDATE | Update ticket class details such as pricing and availability. | |
| ZohoBackstage.eventticket.DELETE | Delete ticket classes. | |
| Order | ZohoBackstage.order.READ | Retrieve order and registration details. |
| ZohoBackstage.order.CREATE | Create new orders or registrations. | |
| ZohoBackstage.order.UPDATE | Update order status or details. | |
| Attendee | ZohoBackstage.attendee.READ | Retrieve attendee details and profiles. |
| ZohoBackstage.attendee.UPDATE | Update attendee information. | |
| Exhibitor | ZohoBackstage.exhibitor.READ | Get exhibitor details, including all exhibitors, a specific exhibitor, exhibitor requests, and booth member information. |
| ZohoBackstage.exhibitor.CREATE | Create exhibitors, submit exhibitor requests, and add booth members in bulk. | |
| ZohoBackstage.exhibitor.UPDATE | Update exhibitor details, approve or deny exhibitor requests, and manage booth member data. | |
| ZohoBackstage.exhibitor.DELETE | Delete exhibitors and remove associated records from the event. | |
| Webhook | ZohoBackstage.webhook.READ | Retrieve webhook configurations. |
| ZohoBackstage.webhook.CREATE | Create new webhook subscriptions. | |
| ZohoBackstage.webhook.UPDATE | Update webhook configurations. | |
| ZohoBackstage.webhook.DELETE | Delete webhook subscriptions. |
To request multiple scopes, separate them with commas: scope=ZohoBackstage.portal.READ,ZohoBackstage.exhibitor.READ
For more details about scope format, see OAuth Scopes.
Making API calls with access token
To authenticate your API calls, include the access token in the Authorization header of every API request.
Supported formats:
Authorization: Zoho-oauthtoken <space> {access-token-value}
Authorization: Bearer <space> {access-token-value}
Example
curl -X GET "https://www.zohoapis.com/backstage/v3/portals/{portal_id}/events/{event_id}"
-H "Authorization: Zoho-oauthtoken 1000.abc123def456..."
API endpoints by data center
When making API calls, you must use the base URL corresponding to your user's data center. The correct URL is returned as api_domain in the access token response.
| Data Center | API base URL |
|---|---|
| United States (US) | https://zohoapis.com/backstage |
| European Union (EU) | https://zohoapis.eu/backstage |
| India (IN) | https://zohoapis.in/backstage |
| Australia (AU) | https://zohoapis.com.au/backstage |
| Japan (JP) | https://zohoapis.jp/backstage |
| Canada (CA) | https://zohoapis.ca/backstage |
| Saudi Arabia | https://zohoapis.sa/backstage |
| United Kingdom (UK) | https://zohoapis.uk/backstage |
Important: Never hardcode a single region's URL. Always use the api_domain from the access token response. See Multi-DC Support
Zoho Backstage-specific requirements
Portal ID and Event ID
Zoho Backstage APIs are designed around a portal > event hierarchy, and most API operations require both identifiers to scope the request correctly.
- portal_id: The unique identifier of your Zoho Backstage portal. All events, users, and configurations exist within a portal.
- event_id: The unique identifier of an event within the portal. Each API operation is executed in the context of a specific event.
These identifiers are typically included as path parameters in API endpoints and ensure that requests are routed to the correct portal and event.
Without the correct portal_id and event_id, API requests cannot be processed.
Module-based access
Zoho Backstage APIs are organized into event-level modules, and access to each module is controlled using OAuth scopes.
Each module represents a functional area of your event, such as:
- Events: Basic event details and configuration
- Agenda: Sessions, tracks, and scheduling data
- Exhibitors: Exhibitor profiles, booths, and requests
- Speakers: Speaker profiles and session associations
- Registrations: Attendees, tickets, and order data
Scopes define what actions your application can perform within these modules, such as:
- READ – Retrieve data
- CREATE – Add new records
- UPDATE – Modify existing data
- DELETE – Remove data
For example:
- ZohoBackstage.speaker.READ allows read-only access to speaker data
- ZohoBackstage.exhibitor.CREATE allows creating exhibitor records
Access is granted only to the modules and actions explicitly defined in the requested scopes. If a required scope is not included, the API request will be denied.