Open API Specification (OAS)
API Collection
OAuth Authentication
Networks
Users
Profile
Follow
Favourite
Block
Activity
Directory
Dashboard
Feeds
Posts
Draft
Poll
Post Member
Comment
Like
File
Tag
Mandatory Read
Bookmark
Follow
Mentions
Read Later
Schedule
Pin
Translation
Post Insight
Widgets
Moderation
Search
Group
Tasks
Board
Board Section
Task
Manuals
Article
Chapter
Manual
Town Hall
Events
Event
Video Conference
Broadcast
Forum
Ideas
Notification
Channel
Introduction
Zoho Connect APIs let you interact with your organization’s collaboration platform through code. You can use these APIs to automate actions, connect Zoho Connect with other systems, and manage data programmatically.
What is Zoho Connect?
Zoho Connect is an intranet platform that helps teams work together, share information, and manage work in one place.
It includes:
- Groups and discussions for team collaboration
- Networks for organization-wide communication
- Tasks and events for work management
- Manuals for storing and sharing knowledge
Using APIs, you can access and control these features without using the UI.
What can you do with the APIs?
You can use Zoho Connect APIs to:
- Create and manage posts and discussions
- Manage users, groups, and memberships
- Integrate with external systems like CRM or HR tools
- Create, update, and track tasks
- Schedule and manage events
- Build and organize knowledge using manuals (articles and sections)
- Fetch and sync data from Zoho Connect
API overview
- Zoho Connect APIs are HTTP-based
- Data is sent and received in JSON format
APIs are organized by resources such as:
- Network
- Users
- Groups
- Posts
- Tasks
- Events
- Manuals
- Each resource has specific endpoints and actions
These APIs are built to support automation and integration across different systems.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
API Guide Index
Table of Contents
- Feeds
- Posts
- Poll
- Draft
- Post Member
- Comment
- Like
- File
- Tag
- Mandatory Read
- Bookmark
- Follow
- Mentions
- Read Later
- Schedule
- Pin
- Translation
- Post Insight
- Widgets
- Moderation
- Search
- Group
- Tasks
- Board
- Board Section
- Task
- Manuals
- Manual
- Article
- Chapter
- Town Hall
- Ideas
- Channel
- Networks
- Users
- Profile
- Follow
- Favourite
- Block
- Activity
- Directory
- Dashboard
- Events
- Event
- Video Conference
- Broadcast
- Forum
- Notification
Feeds
Posts
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Post Conversation | POST | /pulse/api/v2/addStream | ZohoPulse.feedList | CREATE |
| Post Announcement | POST | /pulse/api/v2/addStream | ZohoPulse.feedList | CREATE |
| Post Question | POST | /pulse/api/v2/addStream | ZohoPulse.feedList | CREATE |
| Create Private Post | POST | /pulse/api/v2/addStream | ZohoPulse.feedList | CREATE |
| Update Conversation | POST | /pulse/api/updateStream | ZohoPulse.feedList | UPDATE |
| Update Announcement | POST | /pulse/api/updateStream | ZohoPulse.feedList | UPDATE |
| Update Question | POST | /pulse/api/updateStream | ZohoPulse.feedList | UPDATE |
| Get Single Post | GET | /pulse/api/v1/singleStream | ZohoPulse.feedList | READ |
| Get Posts by IDs | GET | /pulse/api/streams | ZohoPulse.feedList | READ |
| Get Post Actions Meta | GET | /pulse/api/streamActionsMeta | ZohoPulse.feedList | READ |
| Get Post Edit Info | GET | /pulse/api/streamEditInfo | ZohoPulse.feedList | READ |
| Get Latest Posts | GET | /pulse/api/getLatestStreams | ZohoPulse.feedList | READ |
| Get Recent Posts | GET | /pulse/api/v1/recentStreams | ZohoPulse.feedList | READ |
| Get Private Posts | GET | /pulse/api/privateStreams | ZohoPulse.feedList | READ |
| Hide Post | POST | /pulse/api/hideStream | ZohoPulse.feedList | CREATE |
| Unhide Post | POST | /pulse/api/unhideStream | ZohoPulse.feedList | DELETE |
| Move Post | POST | /pulse/api/moveStream | ZohoPulse.feedList | CREATE |
| Share Post | POST | /pulse/api/shareStream | ZohoPulse.feedList | CREATE |
| Lock Post | POST | /pulse/api/lockStream | ZohoPulse.feedList | UPDATE |
| Unlock Post | POST | /pulse/api/unlockStream | ZohoPulse.feedList | UPDATE |
| Delete Post | POST | /pulse/api/deleteStream | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Poll
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Update Poll | POST | /pulse/api/updateStream | ZohoPulse.feedList | UPDATE |
| Add Poll | POST | /pulse/api/addPoll | ZohoPulse.feedList | CREATE |
| Add Poll Question | POST | /pulse/api/addPollOption | ZohoPulse.feedList | CREATE |
| Save Draft Poll | POST | /pulse/api/saveDraftPoll | ZohoPulse.feedList | CREATE |
| Enable Poll | POST | /pulse/api/enablePoll | ZohoPulse.feedList | UPDATE |
| Disable Poll | POST | /pulse/api/disablePoll | ZohoPulse.feedList | UPDATE |
| Add Voting | POST | /pulse/api/addVoting | ZohoPulse.feedList | CREATE |
| Get Voted Members | GET | /pulse/api/votedMembers | ZohoPulse.feedList | READ |
No APIs found for this search.
Draft
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Save Draft Post | POST | /pulse/api/saveDraftStream | ZohoPulse.feedList | CREATE |
| Get Draft Posts | GET | /pulse/api/draftPosts | ZohoPulse.feedList | READ |
| Get Drafted Entity | GET | /pulse/api/draftedEntity | ZohoPulse.feedList | READ |
| Get Draft Posts Count | GET | /pulse/api/draftPostsCount | ZohoPulse.feedList | READ |
| Add Draft Permission | POST | /pulse/api/addDraftPermission | ZohoPulse.feedList | CREATE |
| Get Draft Permissions | GET | /pulse/api/draftPermissions | ZohoPulse.feedList | READ |
| Delete Draft Permission | POST | /pulse/api/deleteDraftPermission | ZohoPulse.feedList | DELETE |
| Get Drafted by ZUIDs | GET | /pulse/api/draftedByZuids | ZohoPulse.feedList | READ |
| Get Draft For Others Count | GET | /pulse/api/draftForOthersCount | ZohoPulse.feedList | READ |
| Send Draft Reminder | POST | /pulse/api/sendDraftReminder | ZohoPulse.feedList | READ |
| Reject Draft | POST | /pulse/api/rejectDraft | ZohoPulse.feedList | UPDATE |
No APIs found for this search.
Post Member
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Post Members | POST | /pulse/api/addStreamMembers | ZohoPulse.feedList | CREATE |
| Get Post Members | GET | /pulse/api/streamMembers | ZohoPulse.feedList | READ |
| Delete Post Members | POST | /pulse/api/deleteStreamMembers | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Comment
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Comment | POST | /pulse/api/v2/addComment | ZohoPulse.feedList | CREATE |
| Update Comment | POST | /pulse/api/updateComment | ZohoPulse.feedList | UPDATE |
| Add Comment Members | POST | /pulse/api/addCommentMembers | ZohoPulse.feedList | CREATE |
| Get Comment | GET | /pulse/api/comment | ZohoPulse.feedList | READ |
| Get All Comments | GET | /pulse/api/allComments | ZohoPulse.feedList | READ |
| Get More Comments | GET | /pulse/api/v1/moreComments | ZohoPulse.feedList | READ |
| Get More Pinned Comments | GET | /pulse/api/morePinnedComments | ZohoPulse.feedList | READ |
| Get Post Private Comments | GET | /pulse/api/streamPrivateComments | ZohoPulse.feedList | READ |
| Update Best Comment | POST | /pulse/api/updateBestComment | ZohoPulse.feedList | UPDATE |
| Get Comment Tags | GET | /pulse/api/getCommentTags | ZohoPulse.feedList | READ |
| Delete Comment | POST | /pulse/api/deleteComment | ZohoPulse.feedList | DELETE |
| Delete Comment Members | POST | /pulse/api/deleteCommentMembers | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Like
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Like Post | POST | /pulse/api/likeStream | ZohoPulse.feedList | CREATE |
| Unlike Post | POST | /pulse/api/unlikeStream | ZohoPulse.feedList | DELETE |
| Like Comment | POST | /pulse/api/likeComment | ZohoPulse.feedList | CREATE |
| Unlike Comment | POST | /pulse/api/unlikeComment | ZohoPulse.feedList | DELETE |
| Get Post Liked Members | GET | /pulse/api/streamLikedMembers | ZohoPulse.feedList | READ |
| Get Comment Liked Members | GET | /pulse/api/v1/commentLikedMembers | ZohoPulse.feedList | READ |
No APIs found for this search.
File
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Upload Files | POST | /pulse/api/uploadFiles | ZohoPulse.attachments | CREATE |
| Update Attachment File Name | POST | /pulse/api/updateAttachFileName | ZohoPulse.attachments | CREATE |
| Check Video Uploaded in Temp | POST | /pulse/api/checkVideoUploadedInTemp | ZohoPulse.attachments | READ |
| Delete Preview File | POST | /pulse/api/deletePreviewFile | ZohoPulse.attachments | DELETE |
No APIs found for this search.
Tag
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Post Tags | GET | /pulse/api/getStreamTags | ZohoPulse.feedList | READ |
| Follow Tag | POST | /pulse/api/followTag | ZohoPulse.feedList | CREATE |
| Unfollow Tag | POST | /pulse/api/unFollowTag | ZohoPulse.feedList | DELETE |
| Get Tag Followers Details | GET | /pulse/api/getTagFollowersDetails | ZohoPulse.feedList | READ |
| Get All Available Tags | GET | /pulse/api/getAllAvailableTags | ZohoPulse.feedList | READ |
| Get Trending Tags | GET | /pulse/api/getTrendingTags | ZohoPulse.feedList | READ |
| Get Tag Posts | GET | /pulse/api/v1/tagStreams | ZohoPulse.feedList | READ |
No APIs found for this search.
Mandatory Read
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Mark As Mandatory Read | POST | /pulse/api/markAsMustRead | ZohoPulse.feedList | UPDATE |
| UnMark As Mandatory Read | POST | /pulse/api/unMarkAsMustRead | ZohoPulse.feedList | UPDATE |
| Get Mandatory Read Reminder | GET | /pulse/api/mustReadReminder | ZohoPulse.feedList | READ |
| Get Mandatory Read Posts | GET | /pulse/api/mustReadPosts | ZohoPulse.feedList | READ |
| Mark Post As Read | POST | /pulse/api/markStreamAsRead | ZohoPulse.feedList | UPDATE |
| Get Post Read Users | GET | /pulse/api/streamReadUsers | ZohoPulse.feedList | READ |
| Remind Mandatory Read Users | POST | /pulse/api/remindMustReadUsers | ZohoPulse.feedList | UPDATE |
No APIs found for this search.
Bookmark
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Bookmark Post | POST | /pulse/api/bookmarkStream | ZohoPulse.feedList | CREATE |
| Unbookmark Post | POST | /pulse/api/unbookmarkStream | ZohoPulse.feedList | DELETE |
| Get Bookmarked Posts | GET | /pulse/api/v1/bookmarkedStreams | ZohoPulse.feedList | READ |
No APIs found for this search.
Follow
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Follow Post | POST | /pulse/api/followStream | ZohoPulse.feedList | CREATE |
| Unfollow Post | POST | /pulse/api/unfollowStream | ZohoPulse.feedList | DELETE |
| Get Posts I Follow | GET | /pulse/api/postsIFollow | ZohoPulse.feedList | READ |
No APIs found for this search.
Mentions
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Mentioned Items | GET | /pulse/api/mentionedItems | ZohoPulse.feedList | READ |
No APIs found for this search.
Read Later
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Mark As Read Later | POST | /pulse/api/markAsReadLater | ZohoPulse.feedList | UPDATE |
| Unmark As Read Later | POST | /pulse/api/unMarkAsReadLater | ZohoPulse.feedList | UPDATE |
| Get Read-Later Posts | GET | /pulse/api/readLaterPosts | ZohoPulse.feedList | READ |
| Set Post Reminder | POST | /pulse/api/setPostReminder | ZohoPulse.feedList | UPDATE |
| Clear Post Reminder | POST | /pulse/api/clearPostReminder | ZohoPulse.feedList | UPDATE |
No APIs found for this search.
Schedule
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Scheduled Posts | GET | /pulse/api/scheduledPosts | ZohoPulse.feedList | READ |
| Get Scheduled Entities | GET | /pulse/api/scheduledEntities | ZohoPulse.feedList | READ |
| Get Scheduled Entities Count | GET | /pulse/api/scheduledEntitiesCount | ZohoPulse.feedList | READ |
| Update Scheduled Post Time | POST | /pulse/api/updateScheduledPostTime | ZohoPulse.feedList | UPDATE |
| Update My Schedule Preference | POST | /pulse/api/updateMySchedulePreference | ZohoPulse.feedList | CREATE |
| Delete My Schedule Preference | POST | /pulse/api/deleteMySchedulePreference | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Pin
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Pin Post | POST | /pulse/api/pinPost | ZohoPulse.feedList | CREATE |
| Unpin Post | POST | /pulse/api/unPinPost | ZohoPulse.feedList | DELETE |
| Pin Comment | POST | /pulse/api/pinComment | ZohoPulse.feedList | CREATE |
| Unpin Comment | POST | /pulse/api/unPinComment | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Translation
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Detect Content Language | GET | /pulse/api/detectContentLanguage | ZohoPulse.feedList | READ |
| Translate Content | GET | /pulse/api/translateContent | ZohoPulse.feedList | READ |
No APIs found for this search.
Post Insight
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Post Insight | GET | /pulse/api/postInsight | ZohoPulse.feedList | READ |
| Get Post Summary | GET | /pulse/api/postSummary | ZohoPulse.feedList | READ |
| Get Post View Unique Users | GET | /pulse/api/streamViewUniqueUsers | ZohoPulse.feedList | READ |
| Get Post Insight user Stats | GET | /pulse/api/postInsightUserStats | ZohoPulse.feedList | READ |
| Get Post Insight User Stats Tab | GET | /pulse/api/postInsightUserStatsTab | ZohoPulse.feedList | READ |
| Get Post Insight Chart | GET | /pulse/api/postInsightChart | ZohoPulse.feedList | READ |
| Export Post Insight CSV | POST | /pulse/api/exportPostInsightCSV | ZohoPulse.feedList | CREATE |
No APIs found for this search.
Widgets
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get My Feed Widgets | GET | /pulse/api/myfeedWidgets | ZohoPulse.feedList | READ |
No APIs found for this search.
Moderation
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Approve Post | POST | /pulse/api/approveStream | ZohoPulse.feedList | CREATE |
| Approve Posts | POST | /pulse/api/approveStreams | ZohoPulse.feedList | CREATE |
| Delete Unapproved Post | POST | /pulse/api/deleteUnapprovedStream | ZohoPulse.feedList | DELETE |
| Delete Unapproved Posts | POST | /pulse/api/deleteUnapprovedStreams | ZohoPulse.feedList | DELETE |
| Approve Comment | POST | /pulse/api/approveComment | ZohoPulse.feedList | CREATE |
| Approve Comments | POST | /pulse/api/approveComments | ZohoPulse.feedList | CREATE |
| Delete Unapproved Comment | POST | /pulse/api/deleteUnapprovedComment | ZohoPulse.feedList | DELETE |
| Reject Entity | POST | /pulse/api/rejectEntity | ZohoPulse.feedList | CREATE |
| Get Rejected Entity | GET | /pulse/api/rejectedEntity | ZohoPulse.feedList | CREATE |
| Report Entity | POST | /pulse/api/reportEntity | ZohoPulse.feedList | CREATE |
| Get Moderation Items | POST | /pulse/api/moderationItems | ZohoPulse.feedList | READ |
| Get User Moderation Items | GET | /pulse/api/userModerationItems | ZohoPulse.feedList | READ |
No APIs found for this search.
Search
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Search Posts | GET | /pulse/api/v1/searchStreams | ZohoPulse.feedList | READ |
| Search Forum Posts | GET | /pulse/api/searchBlogs | ZohoPulse.feedList | READ |
| Search Tasks | GET | /pulse/api/searchTasks | ZohoPulse.feedList | READ |
| Search Manuals | GET | /pulse/api/searchManuals | ZohoPulse.feedList | READ |
| Search Articles | GET | /pulse/api/searchArticles | ZohoPulse.feedList | READ |
| Search Town Halls | GET | /pulse/api/searchTownhalls | ZohoPulse.feedList | READ |
| Search Files | GET | /pulse/api/searchFiles | ZohoPulse.feedList | READ |
No APIs found for this search.
Group
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Change Group Status | POST | /pulse/api/changePartitionStatus | ZohoPulse.grouplist | UPDATE |
| Delete Group | POST | /pulse/api/deletePartition | ZohoPulse.grouplist | DELETE |
| Create Group | POST | /pulse/api/addGroup | ZohoPulse.grouplist | CREATE |
| Update Group Details | POST | /pulse/api/updateGroupDetails | ZohoPulse.grouplist | UPDATE |
| Add Users to Group | POST | /pulse/api/addUsersToGroup | ZohoPulse.grouplist | CREATE |
| Remove User from Group | POST | /pulse/api/removeUserFromGroup | ZohoPulse.grouplist | DELETE |
| Join Group | POST | /pulse/api/joinGroup | ZohoPulse.grouplist | CREATE |
| Leave Group | POST | /pulse/api/leaveGroup | ZohoPulse.grouplist | DELETE |
| Follow Group | POST | /pulse/api/followPartition | ZohoPulse.grouplist | UPDATE |
| Unfollow Group | POST | /pulse/api/unfollowPartition | ZohoPulse.grouplist | UPDATE |
| Get All Groups | GET | /pulse/api/allGroups | ZohoPulse.userDetail | READ |
| Get User Groups | GET | /pulse/api/userGroups | ZohoPulse.userDetail | READ |
| Get Group Posts | GET | /pulse/api/v2/partitionStreams | ZohoPulse.feedList | READ |
| Get Group Members | GET | /pulse/api/groupMembers | ZohoPulse.userDetail | READ |
| Get Group Widgets | GET | /pulse/api/partitionWidgets | ZohoPulse.feedList | READ |
| Get Top Participants | GET | /pulse/api/getTopParticipants | ZohoPulse.grouplist | READ |
| Get Latest Posts | GET | /pulse/api/latestPartitionStreams | ZohoPulse.feedList | READ |
| Get Latest Comments | GET | /pulse/api/latestPartitionComments | ZohoPulse.feedList | READ |
| Get User Actionable Permission Groups | GET | /pulse/api/userActionablePermissionGroups | ZohoPulse.userDetail | READ |
No APIs found for this search.
Tasks
Board
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Change Board Status | POST | /pulse/api/changePartitionStatus | ZohoPulse.grouplist | UPDATE |
| Create Board | POST | /pulse/api/addBoard | ZohoPulse.tasks | CREATE |
| Update Board | POST | /pulse/api/updateBoard | ZohoPulse.tasks | UPDATE |
| Add Members to Board | POST | /pulse/api/addMembersToBoard | ZohoPulse.tasks | CREATE |
| Delete Member from Board | POST | /pulse/api/deleteMemberFromBoard | ZohoPulse.tasks | DELETE |
| Get My Boards | GET | /pulse/api/v1/myBoards | ZohoPulse.tasks | READ |
| Delete Board | POST | /pulse/api/deleteBoard | ZohoPulse.tasks | DELETE |
No APIs found for this search.
Board Section
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Board Section | POST | /pulse/api/addBoardSection | ZohoPulse.tasks | CREATE |
| Get Board Section | GET | /pulse/api/boardSections | ZohoPulse.tasks | READ |
| Update Board Section | POST | /pulse/api/updateBoardSection | ZohoPulse.tasks | UPDATE |
| Delete Board Section | POST | /pulse/api/deleteBoardSection | ZohoPulse.tasks | DELETE |
No APIs found for this search.
Task
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Task | POST | /pulse/api/addTask | ZohoPulse.tasks | CREATE |
| Get Single Task | GET | /pulse/api/singleTaskStream | ZohoPulse.feedList | READ |
| Update Task | POST | /pulse/api/updateTask | ZohoPulse.tasks | UPDATE |
| Delete Task | POST | /pulse/api/deleteTask | ZohoPulse.tasks | DELETE |
No APIs found for this search.
Manuals
Manual
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Change Manual Status | POST | /pulse/api/changePartitionStatus | ZohoPulse.grouplist | UPDATE |
| Delete Manual | POST | /pulse/api/deletePartition | ZohoPulse.grouplist | DELETE |
| Add Manual | POST | /pulse/api/addPage | ZohoPulse.pagelist | CREATE |
| Upload Manual Banner | POST | /pulse/api/uploadPageBanner | ZohoPulse.pagelist | CREATE |
| Upload Manual Logo | POST | /pulse/api/uploadPageLogo | ZohoPulse.pagelist | CREATE |
| Publish Manual | POST | /pulse/api/publishManual | ZohoPulse.pagelist | CREATE |
| Follow Manual | POST | /pulse/api/followManual | ZohoPulse.pagelist | CREATE |
| Unfollow Manual | POST | /pulse/api/unfollowManual | ZohoPulse.pagelist | DELETE |
| Get All Manuals | GET | /pulse/api/allManuals | ZohoPulse.pagelist | READ |
| Get Manual Dashboard (Grouped) | GET | /pulse/api/getManualDashboard | ZohoPulse.pagelist | READ |
| Get My Manuals | GET | /pulse/api/myManuals | ZohoPulse.pagelist | READ |
| Get Group Manuals | GET | /pulse/api/groupManuals | ZohoPulse.pagelist | READ |
| Get Group Manuals | GET | /pulse/api/partitionManuals | ZohoPulse.pagelist | READ |
| Get Favorite Manuals | GET | /pulse/api/favoriteManuals | ZohoPulse.pagelist | READ |
| Get Featured Manuals | GET | /pulse/api/featuredManuals | ZohoPulse.pagelist | READ |
| Get Following Manuals | GET | /pulse/api/followingManuals | ZohoPulse.pagelist | READ |
| Get Manual Groups | GET | /pulse/api/manualGroups | ZohoPulse.pagelist | READ |
No APIs found for this search.
Article
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Publish Article | POST | /pulse/api/publishArticle | ZohoPulse.pagelist | CREATE |
| Get Manual Articles | GET | /pulse/api/manualArticles | ZohoPulse.pagelist | READ |
| Get My Articles | GET | /pulse/api/myArticles | ZohoPulse.pagelist | READ |
| Get Group Articles | GET | /pulse/api/partitionArticles | ZohoPulse.pagelist | READ |
| Get Following Articles | GET | /pulse/api/followingArticles | ZohoPulse.pagelist | READ |
| Get Shared Articles | GET | /pulse/api/sharedArticles | ZohoPulse.pagelist | READ |
| Get Most Viewed Articles | GET | /pulse/api/mostViewedArticles | ZohoPulse.pagelist | READ |
| Get Articles By Tag | GET | /pulse/api/articlesByTag | ZohoPulse.pagelist | READ |
| Get Article Content | GET | /pulse/api/articleContent | ZohoPulse.pagelist | READ |
| Add Article Tag | POST | /pulse/api/addArticleTag | ZohoPulse.pagelist | CREATE |
| Remove Article Tag | POST | /pulse/api/removeArticleTag | ZohoPulse.pagelist | DELETE |
| Follow Article | POST | /pulse/api/followArticle | ZohoPulse.pagelist | CREATE |
| Unfollow Article | POST | /pulse/api/unfollowArticle | ZohoPulse.pagelist | DELETE |
| Export Article as PDF | POST | /pulse/api/exportArticleAsPDF | ZohoPulse.pagelist | CREATE |
| Get Article Export File | GET | /pulse/api/getArticleExportFile | ZohoPulse.pagelist | READ |
| Delete Article | POST | /pulse/api/deleteArticle | ZohoPulse.pagelist | DELETE |
No APIs found for this search.
Chapter
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Chapters from Manual | GET | /pulse/api/getChaptersFromManual | ZohoPulse.pagelist | READ |
No APIs found for this search.
Town Hall
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Change Town Hall Status | POST | /pulse/api/changePartitionStatus | ZohoPulse.grouplist | UPDATE |
| Delete Town Hall | POST | /pulse/api/deletePartition | ZohoPulse.grouplist | DELETE |
| Get Town Hall Posts | GET | /pulse/api/townhallStreams | ZohoPulse.feedList | READ |
| Get Bookmarked Town Hall Posts | GET | /pulse/api/bookmarkedTownhallStreams | ZohoPulse.feedList | READ |
No APIs found for this search.
Ideas
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Post Idea | POST | /pulse/api/v2/addStream | ZohoPulse.feedList | CREATE |
| Update Idea | POST | /pulse/api/updateStream | ZohoPulse.feedList | UPDATE |
| Update Idea Status | POST | /pulse/api/updateIdeaStatus | ZohoPulse.feedList | UPDATE |
No APIs found for this search.
Channel
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Delete Channel | POST | /pulse/api/deletePartition | ZohoPulse.grouplist | DELETE |
No APIs found for this search.
Networks
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get All Networks | GET | /pulse/api/allScopes | ZohoPulse.networklist | READ |
| Add Org User to Network | POST | /pulse/api/addOrgUserToNetwork | ZohoPulse.networkAdmin | CREATE |
| Add Users to Network | POST | /pulse/api/addUsersToNetwork | ZohoPulse.networklist | CREATE |
| Invite Users to Network | POST | /pulse/api/v1/inviteUsersToNetwork | ZohoPulse.networkAdmin | CREATE |
| Get Client Portal Details | GET | /pulse/api/clientPortalDetails | ZohoPulse.userDetail | READ |
| Get Scope Members | GET | /pulse/api/scopeMembers | ZohoPulse.networklist | READ |
| Get Recent Org Members | GET | /pulse/api/recentOrgMembers | ZohoPulse.networklist | READ |
| Manage Users in Network | PUT | /pulse/api/manageUsersInNetwork | ZohoPulse.networkAdmin | UPDATE |
| Disable Client Users | POST | /pulse/api/disableClientUsers | ZohoPulse.userDetail | DELETE |
| Export Members | GET | /pulse/api/v2/exportMembers | ZohoPulse.networklist | READ |
| Get Apps Order | GET | /pulse/api/appsOrder | ZohoPulse.userDetail | READ |
| Get Scope Apps | GET | /pulse/api/scopeApps | ZohoPulse.feedList | READ |
| Update Apps Order | POST | /pulse/api/updateAppsOrder | ZohoPulse.userDetail | UPDATE |
| Delete User from Network | POST | /pulse/api/deleteUserFromNetwork | ZohoPulse.networkAdmin | DELETE |
| Delete Network | POST | /pulse/api/deleteNetwork | ZohoPulse.networkAdmin | DELETE |
No APIs found for this search.
Users
Profile
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get My Profile | GET | /pulse/api/myProfile | ZohoPulse.userDetail | READ |
| Get User Profile | GET | /pulse/api/v1/userProfile | ZohoPulse.userDetail | READ |
| Edit User Profile | GET | /pulse/api/editUserProfile | ZohoPulse.userDetail | READ |
| Save User Profile | POST | /pulse/api/saveUserProfile | ZohoPulse.userDetail | UPDATE |
| Upload User Image | POST | /pulse/api/uploadUserImage | ZohoPulse.userDetail | UPDATE |
| Update Landing Page | POST | /pulse/api/updateLandingPage | ZohoPulse.userDetail | UPDATE |
| Add Custom Field | POST | /pulse/api/addCustomField | ZohoPulse.networkAdmin | CREATE |
| Download Custom Field File | GET | /pulse/api/downloadCustomFieldFile | ZohoPulse.userDetail | READ |
No APIs found for this search.
Follow
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Follow User | POST | /pulse/api/followUser | ZohoPulse.userDetail | CREATE |
| Get User Followings | GET | /pulse/api/v1/userFollowings | ZohoPulse.userDetail | READ |
| Get User Followers | GET | /pulse/api/v1/userFollowers | ZohoPulse.userDetail | READ |
| Unfollow User | POST | /pulse/api/unfollowUser | ZohoPulse.userDetail | DELETE |
No APIs found for this search.
Favourite
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Favorite | POST | /pulse/api/favouriteApp | ZohoPulse.userDetail | CREATE |
| Get My Favorite | GET | /pulse/api/myFavourites | ZohoPulse.userDetail | READ |
| Remove Favorite | POST | /pulse/api/unfavouriteApp | ZohoPulse.userDetail | DELETE |
No APIs found for this search.
Block
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Block User | POST | /pulse/api/blockUser | ZohoPulse.feedList | CREATE |
| Unblock User | POST | /pulse/api/unblockUser | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Activity
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get User activities | POST | /pulse/api/userActivities | ZohoPulse.userDetail | READ |
No APIs found for this search.
Directory
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Directory User Details (Mobile) | GET | /pulse/api/getDirectoryUserDetails | ZohoPulse.userDetail | READ |
| Get Directory User Details (Paged) | GET | /pulse/api/directoryUserDetails | ZohoPulse.userDetail | READ |
| Get Intranet users | GET | /pulse/api/intranetUsers | ZohoPulse.userDetail | READ |
| Get Users Filter Details | GET | /pulse/api/userFilterDetails | ZohoPulse.userDetail | READ |
No APIs found for this search.
Dashboard
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Dashboard | GET | /pulse/api/dashboard | ZohoPulse.feedList | READ |
| Get Dashboards | GET | /pulse/api/dashboards | ZohoPulse.feedList | READ |
No APIs found for this search.
Events
Event
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Add Event | POST | /pulse/api/addEvent | ZohoPulse.events | CREATE |
| Update Event | POST | /pulse/api/updateEvent | ZohoPulse.events | UPDATE |
| Get Single Event | GET | /pulse/api/singleEventStream | ZohoPulse.feedList | READ |
| Get Upcoming Events | GET | /pulse/api/upcomingEvents | ZohoPulse.events | READ |
| Delete Event | POST | /pulse/api/deleteEvent | ZohoPulse.events | DELETE |
No APIs found for this search.
Video Conference
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Start Video Conference | POST | /pulse/api/startVideoConf | ZohoPulse.feedList | CREATE |
| Stop Video Conference | POST | /pulse/api/stopVideoConference | ZohoPulse.feedList | UPDATE |
No APIs found for this search.
Broadcast
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Get Broadcast User Details | GET | /pulse/api/broadcastUserDetails | ZohoPulse.userDetail | READ |
| Get Broadcast Attendees | GET | /pulse/api/broadcastAttendees | ZohoPulse.userDetail | READ |
| Update Broadcast Invitees | POST | /pulse/api/updateBroadcastInvitees | ZohoPulse.events | UPDATE |
No APIs found for this search.
Forum
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Create Forum Post | POST | /pulse/api/addBlog | ZohoPulse.blogs | CREATE |
| Update Forum Post | POST | /pulse/api/updateBlog | ZohoPulse.blogs | UPDATE |
| Publish Forum Post | POST | /pulse/api/publishBlog | ZohoPulse.blogs | CREATE |
| Get Single Forum Post | GET | /pulse/api/singleBlog | ZohoPulse.blogs | READ |
| Get Recent Forum Posts | GET | /pulse/api/recentBlogs | ZohoPulse.blogs | READ |
| Get My Draft Forum Posts | GET | /pulse/api/myDraftBlogs | ZohoPulse.userDetail | READ |
| Get User Active Forum Posts | GET | /pulse/api/userActiveBlogs | ZohoPulse.userDetail | READ |
| Get User Forum Posts | GET | /pulse/api/userBlogs | ZohoPulse.userDetail | READ |
| Follow Forum Category | POST | /pulse/api/followBlogCategory | ZohoPulse.feedList | CREATE |
| Unfollow Forum Category | POST | /pulse/api/unfollowBlogCategory | ZohoPulse.feedList | DELETE |
No APIs found for this search.
Notification
| Method Name | Method Type | URL | OAuth Scope | Operation |
|---|---|---|---|---|
| Enable Post Notification | POST | /pulse/api/enableStreamNotification | ZohoPulse.connectNotifications | DELETE |
| Disable Post Notification | POST | /pulse/api/disableStreamNotification | ZohoPulse.connectNotifications | CREATE |
| Get Email Notification Details | POST | /pulse/api/getEmailNotifyDetails | ZohoPulse.feedList | READ |
| Update General Notification Preference | POST | /pulse/api/updateGeneralNotificationPreference | ZohoPulse.connectNotifications | UPDATE |
| Get Group Notification Preferences | GET | /pulse/api/getGroupNotificationPreferences | ZohoPulse.grouplist | READ |
| Update Group Notification Preference | POST | /pulse/api/updateGroupNotificationPreference | ZohoPulse.connectNotifications | UPDATE |
| Get Board Notification Preferences | GET | /pulse/api/getBoardNotificationPreferences | ZohoPulse.grouplist | READ |
| Update Board Notification Preference | POST | /pulse/api/updateBoardNotificationPreference | ZohoPulse.connectNotifications | UPDATE |
| Update Board Cliq Bot Notification Preference | POST | /pulse/api/updateBoardCliqBotNotificationPreference | ZohoPulse.connectNotifications | UPDATE |
| Update Forum Notification Preference | POST | /pulse/api/updateForumNotificationPreference | ZohoPulse.connectNotifications | UPDATE |
| Update Mobile Notification Setting | POST | /pulse/api/updateMobileNotificationSetting | ZohoPulse.connectNotifications | UPDATE |
| Get Notification Counts | GET | /pulse/api/notificationCounts | ZohoPulse.feedList | READ |
| Reset Notification Count | POST | /pulse/api/resetNotificationCount | ZohoPulse.connectNotifications | CREATE |
| Get User Notifications | GET | /pulse/api/userNotifications | ZohoPulse.connectNotifications | READ |
| Delete Notification | POST | /pulse/api/deleteNotification | ZohoPulse.connectNotifications | UPDATE |
| Mark Notification As Read | POST | /pulse/api/markNotificationAsRead | ZohoPulse.connectNotifications | UPDATE |
| Mark Notification As Unread | POST | /pulse/api/markNotificationAsUnread | ZohoPulse.connectNotifications | UPDATE |
| Mark All Notifications As Read | POST | /pulse/api/markAllNotificationsAsRead | ZohoPulse.connectNotifications | UPDATE |
No APIs found for this search.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Select API Scopes
| Operation Type | Description |
|---|---|
| ALL | Full access to the resource |
| READ | Allow access to read data from the resource |
| CREATE | Allow access to create data in the resource |
| UPDATE | Allow access to update an existing data in the resource |
| WRITE | Allow access to edit data in the resource (Alias for CREATE, UPDATE, and DELETE) |
| DELETE | Allow access to delete data in the resource |
| CUSTOM | Custom Operation Type |
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
OAuth 2.0 for APIs - An Overview
The Zoho Product's API uses the OAuth 2.0 protocol for authentication. OAuth 2.0 is an industry-standard protocol specification that enables third-party applications (clients) to gain delegated access to protected resources in Zoho via an API.
Why should we use OAuth 2.0?
Clients are not required to support password authentication or store user credentials.
Clients gain delegated access, i.e., access only to resources authenticated by the user.
Users can revoke the client's delegated access anytime.
OAuth 2.0 access tokens expire after a set time. If the client faces a security breach, user data will be compromised only until the access token is valid.
How OAuth 2.0 works?

Key Terminologies in OAuth 2.0
The following are some terms you need to know before you start using the Zoho Product's APIs.
Resource owner
Any end-user of your account, who can grant access to the protected resources.
Client
An application that sends requests to the resource server to access the protected resources on behalf of the end-user.
Client ID
The consumer key generated from the connected application.
Client Secret
The consumer secret generated from the connected application.
Authentication server
Authorization server provides the necessary credentials (such as Access and Refresh tokens) to the client.
Authentication code
The authorization server creates a temporary token and sends it to the client via the browser. The client will send this code to the authorization server to obtain access and refresh tokens.
Tokens
Access Token
A token that is sent to the resource server to access the protected resources of the user. The Access token provides secure and temporary access to the protected resources and is used by the applications to make requests to the connected app. Each access token will be valid only for an hour and can be used only for the set of operations that are described in the scope.
Refresh Token
A token that can be used to obtain new access tokens. This token has an unlimited lifetime until it is revoked by the end-user.
Important
User Access Token must be kept confidential since it provides access to protected resources. Do NOT expose your Access Token anywhere in public forums, public repositories or on your website's client-side code like HTML or JavaScript. Exposing it to the public may lead to data theft, loss or corruption.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Scopes
Scopes limit the level of access given to a client for protected resources. It enables a user to provide delegated access to a client. Zoho Service APIs use selected scopes, which control the type of resource that the client application can access. Tokens are usually created with various scopes to ensure improved security. For example, you can generate a scope to create or view a lead, or to view metadata and so on.
Scopes contain three parameters — service name, scope name, and operation type. The format to define a scope is scope=service_name.scope_name.operation_type
For example, ZService.modules.ALL
Here, ZService is the service API name, modules is the scope name, and ALL is the operation type.
Service API name is the name of the service the client is making API calls to.
Scope name is the name of the module in the service the client needs access to.
Operation type is the type of operation that is permissible for the client. It can be ALL, CREATE, READ, UPDATE, DELETE. (ALL gives access to perform all operations).
Group Scopes
Group scope provide complete access to all functions the user can perform on the record. For instance, a group scope can allow a user to read, create, update, and delete records in all modules.
Example:
https://accounts.zoho.com/oauth/v2/auth?scope=ZService.modules.ALL,ZService.settings.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
In the above example, the user has access to all modules in the client ZService account.
Other examples are
scope=ZService.modules.READ(Read-only permission)
scope=ZService.modules.CREATE
scope=ZService.modules.UPDATE
scope=ZService.modules.DELETE
Separate Scopes
Separate scopes are used to provide access to data in a particular module without access to other modules.
https://accounts.zoho.com/oauth/v2/auth?scope=ZService.modules.leads.ALL,ZService.modules.deals.ALL,ZService.settings.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
The above scope gives the user access to only the leads and deals modules from the client Zoho Service account.
Additionally, you can set specific permissions, like read, create, update or delete, for each module. For examples:
scope=ZService.modules.leads.READ(Read-only permission)
scope=ZService.modules.leads.CREATE
scope=ZService.modules.leads.UPDATE
scope=ZService.modules.leads.DELETE
Multiple Scopes
Access tokens can also be generated with multiple scopes. In such cases, the scopes should be separated by commas. The format to provide multiple scope is service_name.scope_name.OPERATION_TYPE,service_name.scope_name.OPERATION_TYPE. For example, ZService.modules.READ,ZService.settings.READ.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Register your Application
Before you get started with authorization and make any calls using the Zoho Service APIs, you need to register your application with Zoho Service.
To register,
Go to Zoho Developer Console and click on GET STARTED.

Choose a client type and click CREATE NOW:

Types of Clients
Client-based Applications
Applications that run exclusively in a browser and are independent of web servers.
Serve-based Applications
Applications intended for use by multiple Zoho accounts, with a dedicated backend server and web UI to handle authorization and business logic. Users are redirected to Zoho for authorization and, once consent is granted, the app accesses their data on their behalf.
Mobile-based Applications
Applications built to run on smartphones and tablets.
Non-browser Device Applications
Applications that run on devices without a traditional browser, such as smart TVs or printers.
Self Client
Applications without a redirect URL or web UI, operating solely in the backend without user interaction. Common when both the application and Zoho services are managed by the same owner to enable secure server-to-server communication.
For more details, refer to OAuth Overview.
Note
If you don't have a domain name and a redirect URL, you can use dummy values in their place and register your client.
Enter mandatory entries for corresponding client type and click on CREATE.
Mandatory Entries for Different Client Types
The following are the mandatory entries for different client types.
Client Type
Client Name
Homepage URL
Redirect URIs
JS Domains
Java Script
Y
Y
Y
Y
Web-based
Y
Y
Y
NA
Mobile
Y
Y
Y
NA
Self Client
N
N
N
NA
Device
Y
Y
N
NA
Server-based applications

Client-based applications

Self client

You will receive the client credentials such as Client ID and Client Secret in the Client Secret tab.
Possible Errors
Enter a valid client name
Resolution: The client name has a special character. The client name must not contain any special characters except "_" and "&".
Enter a valid JavaScript Domain URI
Resolution: The JavaScript domain is incorrect. Specify valid JavaScript domains, separated by commas, and they must start with 'http'.
Enter a valid redirect URI
Resolution: The redirect URI is incorrect. Specify a valid redirect URI in the format "https://www.your-domain.com/callback".
Enter a valid homepage URL
Resolution: The homepage URL is invalid. Specify a valid homepage URL in the format "https://www.yourdomain.com".
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Scopes
Scopes limit the level of access given to a client for protected resources. It enables a user to provide delegated access to a client. Zoho Service APIs use selected scopes, which control the type of resource that the client application can access. Tokens are usually created with various scopes to ensure improved security. For example, you can generate a scope to create or view a lead, or to view metadata and so on.
Scopes contain three parameters — service name, scope name, and operation type. The format to define a scope is scope=service_name.scope_name.operation_type
For example, ZService.modules.ALL
Here, ZService is the service API name, modules is the scope name, and ALL is the operation type.
Service API name is the name of the service the client is making API calls to.
Scope name is the name of the module in the service the client needs access to.
Operation type is the type of operation that is permissible for the client. It can be ALL, CREATE, READ, UPDATE, DELETE. (ALL gives access to perform all operations).
Group Scopes
Group scope provide complete access to all functions the user can perform on the record. For instance, a group scope can allow a user to read, create, update, and delete records in all modules.
Example:
https://accounts.zoho.com/oauth/v2/auth?scope=ZService.modules.ALL,ZService.settings.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
In the above example, the user has access to all modules in the client ZService account.
Other examples are
scope=ZService.modules.READ(Read-only permission)
scope=ZService.modules.CREATE
scope=ZService.modules.UPDATE
scope=ZService.modules.DELETE
Separate Scopes
Separate scopes are used to provide access to data in a particular module without access to other modules.
https://accounts.zoho.com/oauth/v2/auth?scope=ZService.modules.leads.ALL,ZService.modules.deals.ALL,ZService.settings.ALL&client_id={client_id}&response_type=code&access_type={"offline"or"online"}&redirect_uri={redirect_uri}
The above scope gives the user access to only the leads and deals modules from the client Zoho Service account.
Additionally, you can set specific permissions, like read, create, update or delete, for each module. For examples:
scope=ZService.modules.leads.READ(Read-only permission)
scope=ZService.modules.leads.CREATE
scope=ZService.modules.leads.UPDATE
scope=ZService.modules.leads.DELETE
Multiple Scopes
Access tokens can also be generated with multiple scopes. In such cases, the scopes should be separated by commas. The format to provide multiple scope is service_name.scope_name.OPERATION_TYPE,service_name.scope_name.OPERATION_TYPE. For example, ZService.modules.READ,ZService.settings.READ.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Generate Access Token and Refresh Token
OAuth2.0 requests are usually authenticated with an access token, which is passed as bearer token. To use this access token, you need to construct a normal HTTP request and include it in an Authorization header along with the value of Bearer.
Note
You must use your domain-specific Zoho accounts URL to generate access and refresh tokens. The following are the various domains and their corresponding accounts URLs.
For US: https://accounts.zoho.com
For AU: https://accounts.zoho.com.au
For EU: https://accounts.zoho.eu
For IN: https://accounts.zoho.in
For CN: https://accounts.zoho.com.cn
For JP: https://accounts.zoho.jp
For SA(Saudi Arabia): https://accounts.zoho.sa
For CA(Canada): https://accounts.zohocloud.ca
If you have more than one organization, then the grant token generated will be specific to a particular organization, and the same applies to the access and refresh tokens generated using the grant token.
To generate access and refresh token:
Make a POST request with the following URL. Replace {accounts_URL} with your domain-specific Zoho accounts URL when you make the request.
{accounts_URL}/oauth/v2/tokenNote: For security reasons, pass the below parameters in the body of your request as form-data.
Request Parameters
grant_type
Enter the value as "authorization_code".
client_id
Specify client-id obtained from the connected app.
client_secret
Specify client-secret obtained from the connected app.
redirect_uri
Specify the Callback URL that you registered during the app registration.
code
Enter the grant token you received after you made the authorization code request.
If the request is successful, you would receive the following:
{
"access_token": "{access_token}",
"refresh_token": "{refresh_token}",
"api_domain": "https://www.zohoapis.com",
"token_type": "Bearer",
"expires_in": 3600
}
Response Parameters
access_token
Access token to access ZService APIs.
refresh_token
Refresh token to obtain new access tokens.
expires_in
Time in seconds after which the access token expires.
api_domain
Domain name of the API. Use this domain in your requests to make API calls to ZServices.
token_type
Type of token obtained. "Bearer" indicates this is an access token.
This completes the authentication. Once your app receives the access token, send the token in your HTTP authorization header to ZService API with the value "Zoho-oauthtoken {access_token}" for each endpoint (for each request).
Note
Each access token is valid for only an hour and can be used only for the operations defined in the scope.
A refresh token does not expire. Use it to refresh access tokens when they expire. For more details on the validity of the tokens, refer to Token Validity page.
Use the value in the "api_domain" key to make API calls to ZServices. The URL varies based on the environment:
For sandbox, the domain would be sandbox.zohoapis.{domain}. Example: https://sandbox.zohoapis.eu
For developer, the domain would be developer.zohoapis.{domain}. Example: https://developer.zohoapis.au
If your application has more than one environment, the access and refresh token generated for a user becomes organization-specific in an environment. Thus, you cannot use tokens generated for an organization in one environment to make API calls to the organization in another environment. For instance, you cannot use tokens generated for an organization in the Production environment to make API calls to the organizations in the sandbox or developer accounts.
Possible Errors
invalid_client
Resolution: You have passed an invalid Client ID or secret. Specify the correct client ID and secret.
(or)
There is a domain mismatch. You have registered the client and generated the grant token in a certain domain (US), but generating the tokens from a different domain (EU). Ensure that you generate the grant, access, and refresh tokens from the same domain using the same domain URL or Enable Multi-DC for your client to generate tokens from any domain.
(or)
You have passed the wrong client secret when multi-DC is enabled. Each DC holds a unique client secret. Ensure to pass the right client secret for that DC.invalid_code
Resolution: The grant token has expired. The grant token is valid only for one minute in the redirection-based flow. Generate the access and refresh tokens before the grant token expires.
(or)
You have already used the grant token. You can use the grant token only once.
(or)
The refresh token to generate a new access token is wrong or revoked. Specify the correct refresh token value while refreshing an access token.invalid_redirect_uri
Resolution: The redirect URI in the request mismatches the one registered in the developer console. Specify the correct redirect URI in the request.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Refresh Access Token
Access tokens expire after an hour of generation. To generate a new access token, use the refresh token you generated earlier.
Make a POST request with the following URL:
{Accounts_URL}/oauth/v2/token?refresh_token={refresh_token}&client_id={client_id}&client_secret={client_secret}&grant_type=refresh_tokenNote
You must use your domain-specific Zoho Accounts URL to refresh your access token.
For US: https://accounts.zoho.com
For AU: https://accounts.zoho.com.au
For EU: https://accounts.zoho.eu
For IN: https://accounts.zoho.in
For CN: https://accounts.zoho.com.cn
For JP: https://accounts.zoho.jp
For CA(Canada): https://accounts.zohocloud.ca
If the request is successful, you will receive the following output:
{
"access_token": "{new_access_token}",
"expires_in": 3600,
"api_domain": "https://www.zohoapis.com",
"token_type": "Bearer"
}
Note
We have provided with a sample test OAuth in all the examples, so that you can test any example on your own. You can replace the sample OAuth Token with your actual token to test requests from your ZService account.
For applications with multiple organizations, the refresh tokens generated for one organization in an environment cannot be used for another organization. For instance, you cannot use the refresh token generated for an organization in the Production environment to generate access tokens for the organizations in the sandbox or developer accounts.
For information about the validity of the tokens, refer to the Token Validity page.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Revoking Refresh Token
If you want to revoke your refresh token,
Make a POST request with the following URL:
{Accounts_URL}/oauth/v2/token/revoke?token={refresh_token}
Note
You must use your domain-specific Zoho Accounts URL to revoke your refresh token.See all the server-specific Account URLs.
If you have multiple organizations, the refresh token that you revoke will be specific to a particular organization, and this action will not have an effect on other organizations in your application.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Client Credentials Flow
Compared to the flow of creating access tokens in the self-client flow, the client credentials flow can be used to perform one-time tasks like one-time data migration or testing ZService API calls, etc. We recommend using self client or server-based authorization for integration purposes. The main benefit of the client credentials flow is the simplicity in creating an access token, requiring only your client ID, client secret, scope, and soid.
Generating Access Token
To generate an access token using the client credentials flow, make an API call to the following endpoint with the mandatory parameters as discussed in the following "Parameters" section. The accounts-url is specific to the location (i.e., datacenter) where the client is registered. See all the server-specific URLs.
{accounts-url}/oauth/v2/token?client_id={client_id}&client_secret={client_secret}&grant_type=client_credentials&scope={scope}&soid={soid}
Parameters
client_idstring, mandatory
Client ID (consumer key) that you obtained during client registration.
client_secretstring, mandatory
Client secret that you obtained during client registration.
grant_typestring, mandatory
Specify the value as "client_credentials".
scopestring, mandatory
The corresponding scope for the resource you want to access from the user's account. Multiple scopes can be given in comma separated format. Refer to the Scopes page for more details.
soidstring, mandatory
This parameter is derived from the unique ServiceOrg or organization or portal ID (zsoid).
Syntax: ZService.{zsoid}. Example: ZService.600xxx46

You can obtain zsoid from the UI by clicking on your profile picture where you will see the name of your organization. Click on the dropdown to view the name of the organization and the Org ID.
Response JSON
{
"access_token": "1000.b2caxxxxx3c6",
"scope": "ZService.org.ALL ZService.settings.ALL ZService.users.ALL ZService.templates.email.READ ZService.templates.inventory.READ ZService.modules.ALL",
"api_domain": "https://www.zohoapis.com",
"token_type": "Bearer",
"expires_in": 3600
}
access_token
Use this access token in the header of the API calls to access data in ZService. Note that the response does not contain a refresh token. When an access token expires, make an API call to the same endpoint to get a new access token (if required).
scope
The scope for the resource you want to access from the user's account that was provided in the parameters.
api_domain
Domain name of the API. Use this domain in your requests to make API calls to ZService.
token_type
Type of token obtained. "Bearer" indicates this is an access token.
expires_in
Time in seconds after which the access token expires.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Incremental Authorization
Incremental Authorization is an OAuth strategy that allows a client to request specific authorization scopes as and when needed. This means that the client does not have to request every possible scope that might be needed upfront, which might result in a bad user experience. Incremental Authorization is considered a best practice in Oauth Authorization Request as:
Users are not overloaded with scopes in the initial stage
Users can control the amount of data they share
For detailed information on implementing incremental authorization in your application, refer to the Zoho Accounts Incremental Authorization page.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Token Validity
Grant Token (Authorization code)
Grant token is a one-time use token and valid for three minutes, by default. If you want to extend the expiry time, choose the required time from the drop-down while generating the token from the API console (applicable only to self-clients).
You can generate a maximum of 10 grant tokens in a span of 10 minutes per client ID. If the limit is reached, "access_denied" exception will be thrown for the remaining time.
Access Token
Each access token is valid for one hour.
A maximum of 15 active access tokens can be stored per refresh token. When the 16th token is requested, the oldest token is invalidated. When an invalid access token is used, "INVALID_OAUTHTOKEN" exception will be thrown.
You can generate a maximum of 10 access tokens from a refresh token in a span of 10 minutes.
If the 10-minute throttle limit is reached, "Access Denied" error will be thrown. Reuse valid tokens to avoid this exception.
{
"error_description":"You have made too many requests continuously. Please try again after some time.",
"error":"Access Denied",
"status":"failure"
}
Refresh Token
Refresh tokens do not expire until a user revokes them.
A maximum of 20 refresh tokens can be stored per user.
When you generate the 21st refresh token, the first created refresh token gets invalidated.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Multiple data centres
Zoho Connect is hosted across multiple data centers. Each data center uses a different domain. You must use the correct domain based on where your organization is hosted.
All API endpoints and account URLs will change accordingly.
Data centre | Domain | ZohoConnect_Server_URI | ZohoAccounts_Server_URI |
|---|---|---|---|
United States | .com | ||
Europe | .eu | ||
India | .in | ||
Australia | .com.au | ||
China | .com.cn | ||
Japan | .jp | ||
Canada | .ca | ||
Saudi Arabia | .sa | ||
UAE | .ae | ||
Singapore | .sg |
Notes
All API examples in this documentation use the .com domain by default
If your organization is hosted in another data center, replace .com with your domain in all API URLs
Use the matching Zoho Accounts URL (refer to the tabular column above) for authentication
How to find your data center?
Check the URL when you log in to Zoho Connect. The domain in the URL indicates your data center.
Example:
If your URL is https://connect.zoho.in, your data center is India (IN), and you must use .in endpoints.
You can find out which domain you're accessing by checking the URL while accessing Zoho Connect.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
API Collection
What is an API Collection?
An API collection is a ready-made set of API requests that you can use in tools like Postman. It includes pre-configured requests, so you can quickly test and explore APIs without building each request from scratch.
Why use an API collection?
Setting up API requests manually every time is inefficient and error-prone.
Using an API collection helps you:
Quickly test APIs without repeated setup
Avoid mistakes in request configuration
Reuse predefined requests across environments
Explore APIs in a structured way
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Open API Specification (OAS)
Overview
The OpenAPI Specification (OAS) is a standard format used to describe REST APIs. It defines the structure of an API, including endpoints, authentication, request parameters, and response formats. OAS files are typically written in JSON or YAML.
Why use OpenAPI specification?
OAS gives you a clear and complete definition of how an API works.
It helps you understand:
API Endpoints: The request URL and HTTP methods are specified, along with the optional and mandatory parameters required to make an API call request. The response formats for all possible HTTP response codes are available.
Authorization: Supports OAuth authentication for secure access.
Request and Response formats: Standardized request formats for GET, POST, PUT, and DELETE operations, detailed response schemas to explain returned data structures, and error handling guidelines to help developers debug API requests.
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve all networks (portals) the authenticated user belongs to.
Retrieve all networks, or portals, that the authenticated user is a part of. Returns info such as the network name, ID, URL, logo, and whether it is the default network. For intranet networks, additional organization details such as zoid are also included.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/allScopes
Scope
ZohoPulse.networklist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Optional network (scope) ID to filter results to a specific network. |
| isAdmin | Boolean | If true, returns only networks where the user is an admin. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allScopes?scopeID=3000000000008&isAdmin=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| allScopes | JSON Object | Inner allScopes object — contains scopes array on success, or error keys on failure |
| msg | String | Error message. Present on failure. |
| result | String | Result status — 'failure'. Present on failure. |
| errorCode | String | Error code — e.g. NO_NETWORKS_FOUND. Present on failure. |
| scopes | JSON Array | Array of network objects. Present on success. |
| soid | String | Scope owner ID — the organization identifier. |
| isDefault | String | 'true' if this is the user's default (intranet) network. |
| name | String | Display name of the network. |
| scopeUrl | String | Scope URL slug. Present when a custom domain is configured. |
| zoid | String | Zoho Organization ID. Present only for intranet-type networks. |
| id | String | Unique network (scope) ID. |
| url | String | Full portal URL of the network. |
| customDomain | String | Custom domain mapped to the network, if configured. |
| logoUrl | String | URL of the network logo image, if set. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns all networks the authenticated user belongs to. The first scope with isDefault=true is the user's intranet network. The zoid and logoUrl fields are present based on network type and configuration.
{
"allScopes": {
"scopes": [
{
"soid": "38523447",
"isDefault": "true",
"name": "Zillium",
"zoid": "15065798",
"id": "3000000000008",
"url": "https://connect.zoho.com/portal/zillium",
"logoUrl": "https://profile.zoho.com/file/download?ID=15065798&t=org"
},
{
"soid": "47445865",
"name": "Zillium Partners",
"id": "4000000000008",
"url": "https://connect.zoho.com/portal/zilliumpartners",
"logoUrl": "https://connect.zoho.com/images/zohoPulseLogo.png"
}
]
}
}
Returned when the user does not belong to any network.
{
"allScopes": {
"msg": "No networks found",
"result": "failure",
"errorCode": "NO_NETWORKS_FOUND"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Add existing IAM org users to a Zoho Connect network by user IDs.
Push one or more users from your Zoho organization to the network as members. Each user is verified before being added, and only active users can be invited. You must be a network admin to perform this action. You can also assign a member role while adding them. A welcome email is sent to users who are added successfully. If Zoho People sync is enabled, their profiles will be synced automatically. Returns result=success when completed.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/addOrgUserToNetwork
Scope
ZohoPulse.networkAdmin.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addOrgUserToNetwork
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdsMandatory | Long | Comma-separated ZUIDs to add. Max 10. |
| memberRole | String Allowed value:(matches: ^(MEMBER|ADMIN)$) | Role to assign: MEMBER (default) or ADMIN. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addOrgUserToNetwork?scopeID=3000000000008&userIds=10001001,10001002&memberRole=MEMBER' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addOrgUserToNetwork | JSON Object | Inner addOrgUserToNetwork object — result key |
| result | String | Result status — 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Users were successfully added to the network.
{
"addOrgUserToNetwork": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Add existing Zoho users to a Zoho Connect network by email addresses.
Add users with existing Zoho accounts to the network using their email addresses. Only active users are added, and they are assigned the member role by default. You must be a network or organization admin to perform this action. This is supported only for community-type networks. Returns result=success on completion.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/addUsersToNetwork
Scope
ZohoPulse.networklist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addUsersToNetwork
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| emailIdsMandatory | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated email addresses of existing Zoho users to add. Max 1000. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addUsersToNetwork?emailIds=alice@zillium.com,bob@partner.com&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addUsersToNetwork | JSON Object | Inner addUsersToNetwork object — result and optional reason |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Failure reason (e.g. Access denied). Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Users were successfully added to the network.
{
"addUsersToNetwork": {
"result": "success"
}
}
Returned when the caller is not a scope admin or org admin, or the network type does not support this operation.
{
"addUsersToNetwork": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Invite users to a Zoho Connect network by email address.
Invite users to the network using their email addresses. You can also add them to specific groups using partitionIds. Returns the number of successful invitations, existing members, and failed invitations by category.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/inviteUsersToNetwork
Scope
ZohoPulse.networkAdmin.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/v1/inviteUsersToNetwork
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| emailIdsMandatory | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated email addresses to invite. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| memberType | String Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$) | Member type: MEMBER, CLIENT, RESTRICTED_CLIENT, EXTERNAL_USER_CLIENT, or EXTERNAL_USER_RESTRICTED_CLIENT. Defaults to MEMBER. |
| partitionIds | Long | Comma-separated group IDs to add invited users to. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v1/inviteUsersToNetwork?emailIds=alice@zillium.com,bob@partner.com&scopeID=3000000000008&memberType=MEMBER&partitionIds=3000000002143' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| inviteUsersToNetwork | JSON Object | Inner inviteUsersToNetwork object — success and error keys |
| successUserCount | String | Number of users successfully invited. |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
| existingUsers | JSON Array | Array of email addresses already in the network. |
| addedUsers | JSON Array | Array of email addresses of users directly added (e.g. domain-verified users). |
| failedUsers | JSON Object | Categorized failure details. Present when some invitations fail. |
| failedUsersWithMessage | JSON Array | Detailed failure objects. |
| description | String | Human-readable failure reason. |
| users | JSON Array | Array of failed user emails. |
| String | Email address of the failed user. | |
| sameDomainUsers | JSON Array | Users from the same domain that could not be invited. |
| otherFailedUsers | JSON Array | Invalid email addresses or other failures. |
| sameOrgUsers | JSON Array | Users already in the same org. |
| otherRegionUsers | JSON Array | Users in a different data center region. |
| rejectedUsers | JSON Array | Rejected email addresses. |
| maxLimitExceeded | JSON Array | Emails that exceeded the user limit. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
All users were successfully invited to the network.
{
"inviteUsersToNetwork": {
"successUserCount": "1",
"result": "success"
}
}
Returned when the caller is not a network admin or does not have permission to invite users.
{
"inviteUsersToNetwork": {
"result": "failure",
"reason": "Access denied"
}
}
Some users were invited, some already existed, and some had invalid emails.
{
"inviteUsersToNetwork": {
"successUserCount": "1",
"result": "success",
"existingUsers": [
"alice@zillium.com"
],
"failedUsers": {
"otherFailedUsers": [
"invalid-email"
]
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve client portal login and configuration details.
Returns client portal details using a scope URL or scope ID. Authentication is optional. If the newClientPortal header is included, the response is returned in v1 format.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/clientPortalDetails
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/clientPortalDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| scopeUrl | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Scope URL for the client portal. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/clientPortalDetails?scopeID=3000000000008&scopeUrl=mycompany' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| orgType | String | Organisation type. |
| isOldClientDomain | Boolean | True for default client portal version. Absent in v1. |
| scopeId | Long | Network scope ID. |
| clientZaid | String | Client ZAID. |
| baseDomain | String | Base domain. |
| scopeName | String | Network display name. |
| domain | String | Service domain (e.g. zoho.com). |
| accountsUrl | String | Accounts server URL. |
| scopeUrl | String | Full client portal URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns flat client portal configuration details.
{
"orgType": "connect",
"isOldClientDomain": true,
"scopeId": 3000000000008,
"clientZaid": "90001001",
"baseDomain": "com",
"scopeName": "My Company",
"domain": "zoho.com",
"accountsUrl": "https://accounts.zoho.com",
"scopeUrl": "https://connect.zoho.com/clientportal/mycompany"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve all members of a network.
Returns members grouped by type within a scopeMembers object. This includes usersData (corporate users), clientsData (client portal users), and externalClientsData (external clients), along with separate clientIds and externalClientIds lists.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/scopeMembers
Scope
ZohoPulse.networklist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Return only members modified after this timestamp (epoch ms). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scopeMembers?modifiedTime=1742464200000&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersData | JSON Array | Array of corporate (internal) user objects. |
| name | String | Display name. |
| emailId | String | Email address. May be absent for users without visible email. |
| id | String | User ZUID as string. |
| isAdmin | String | 'true' if user is an admin. Only present when true. |
| type | String | Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client). |
| isScopeAdmin | String | 'true' if user is a scope admin. Only present when true. |
| externalClientIds | JSON Array | String array of external client user IDs (quick lookup). |
| clientsData | JSON Array | Array of client portal user objects. |
| name | String | Display name. |
| emailId | String | Email address. May be absent for users without visible email. |
| id | String | User ZUID as string. |
| isAdmin | String | 'true' if user is an admin. Only present when true. |
| type | String | Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client). |
| isScopeAdmin | String | 'true' if user is a scope admin. Only present when true. |
| externalClientsData | JSON Array | Array of external client user objects. |
| name | String | Display name. |
| emailId | String | Email address. May be absent for users without visible email. |
| id | String | User ZUID as string. |
| isAdmin | String | 'true' if user is an admin. Only present when true. |
| type | String | Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client). |
| isScopeAdmin | String | 'true' if user is a scope admin. Only present when true. |
| clientIds | JSON Array | String array of client user IDs (quick lookup). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns scopeMembers wrapper with usersData, clientsData, and externalClientsData arrays.
{
"scopeMembers": {
"usersData": [
{
"name": "Alice Johnson",
"emailId": "alice.johnson@zillium.com",
"id": "60025001",
"type": "C"
},
{
"name": "Bob Smith",
"id": "60025002",
"type": "C"
},
{
"name": "Carol Davis",
"emailId": "carol.davis@zillium.com",
"id": "60025003",
"isAdmin": "true",
"type": "C",
"isScopeAdmin": "true"
}
],
"externalClientIds": [
"70005001"
],
"clientsData": [
{
"name": "Dan Lee",
"emailId": "dan.lee@external.com",
"id": "80010001",
"type": "CL"
},
{
"name": "Dan Smith",
"emailId": "dan.smith@external.com",
"id": "80010002",
"type": "CL"
}
],
"externalClientsData": [
{
"name": "Frank Wilson",
"emailId": "frank.wilson@partner.com",
"id": "70005001",
"type": "ECL"
},
{
"name": "Frank Smith",
"emailId": "frank.smith@partner.com",
"id": "70005002",
"type": "ECL"
}
],
"clientIds": [
"80010001"
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve recently joined members of a network.
Returns the list of users who recently joined the network. Returns user details such as ZUID, name, IAM role, member type(corporate/client), and join time. You can also choose the sort order using isAscSort. If successful, returns result=success with the user details. If no recent members are found, returns result=failure.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/recentOrgMembers
Scope
ZohoPulse.networklist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/recentOrgMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sorts by oldest first. If false (default), most recent first. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/recentOrgMembers?isAscSort=false&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| recentOrgMembers | JSON Object | Inner recentOrgMembers object — user details array on success, or failure result |
| result | String | Result status — 'success' or 'failure'. |
| userDetails | JSON Array | Array of recently joined member objects. Present on success. |
| role | String | Member role — e.g. 'member'. |
| formattedViewedTime | String | Human-readable formatted join time. |
| name | String | Display name of the member. |
| millisec | String | Join timestamp as epoch milliseconds. |
| type | String | Member type code: C (corporate), CL (client). |
| zuid | String | Zoho User ID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns recently joined members with ZUID, name, role, type, and formatted join timestamp.
{
"recentOrgMembers": {
"result": "success",
"userDetails": [
{
"role": "member",
"formattedViewedTime": "Mar 20, 2025 10:30 AM",
"name": "Sarah Connor",
"millisec": "1742464200000",
"type": "C",
"zuid": "10001003"
},
{
"role": "member",
"formattedViewedTime": "Mar 19, 2025 10:30 AM",
"name": "Mike Chen",
"millisec": "1742377800000",
"type": "C",
"zuid": "10001004"
}
]
}
}
Returned when no recent member joins are found.
{
"recentOrgMembers": {
"result": "failure"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Enable or disable users in a Zoho Connect network.
Enable or disable multiple users in a network at once. Use ENABLE to restore access for previously disabled users, or DISABLE to remove their access from the network.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/manageUsersInNetwork
Scope
ZohoPulse.networkAdmin.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
put /pulse/api/manageUsersInNetwork
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| actionTypeMandatory | String Allowed value:(matches: (DISABLE|ENABLE)) | Action to perform: ENABLE or DISABLE. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdsMandatory | Long | Comma-separated ZUIDs of users to enable or disable. |
| isFromReport | Boolean | If true, the action originates from a moderation report. |
| canUpdateUser | Boolean | If true, bypasses People sync check before modifying users. |
Sample Request
curl --request PUT \
--url 'https://connect.zoho.com/pulse/api/manageUsersInNetwork?actionType=DISABLE&scopeID=3000000000008&userIds=10001001,10001002&isFromReport=false&canUpdateUser=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Result status — 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Users were successfully enabled or disabled.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Disable a client user in the network.
Disable a client portal user in the network. You must be a network admin to perform this action, and you cannot disable your own account. When successful, the user’s status is changed to DISABLED.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/disableClientUsers
Scope
ZohoPulse.userDetail.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/disableClientUsers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| zuidMandatory | Long | Zoho User ID of the client user to disable. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/disableClientUsers?scopeID=3000000000008&zuid=10002001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Client user disabled successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Export network members as a CSV or ZIP file download.
Export the network’s member list as a downloadable CSV or ZIP file. Only network admins or users with export permission can use this API. The response is returned as a file, not as JSON. Depending on the export type, the response format will be text/csv or application/octet-stream.
Rate limited to 2 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/exportMembers
Scope
ZohoPulse.networklist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v2/exportMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| exportType | Integer | Export format ordinal. 0 = CSV (default), 1 = ZIP. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v2/exportMembers?scopeID=3000000000008&exportType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | File download — CSV or ZIP binary post. This API does not return JSON. |
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the current apps (modules) order for the network.
Returns the ordered list of enabled apps or modules for the network, along with the landing page position, whether the user can add web tabs, and a sorted list of apps.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/appsOrder
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/appsOrder?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canAddWebTab | Boolean | Whether user can add web tabs. |
| feedLandingPage | String | Sub-landing page for Feeds (FeedType name). |
| isDashboardDisabled | String | true when Dashboard is landing but feature disabled. |
| appList | JSON Array | Sorted app name list (when isNeedSortedAppsList). |
| displayName | String | Localised display name. |
| name | String | Internal app name (e.g. feed, attachments, blog). |
| landingPage | String | Landing page app type ordinal as string. |
| blogLandingPage | String | Sub-landing page for Forum (ForumType name). |
| apps | JSON Array | Ordered array of enabled app tabs. |
| tabName | String | Localised display name. Only present when module name is configured. |
| openInTab | Boolean | WebTab only — opens in new browser tab. |
| iconOrd | Integer | WebTab only — icon ordinal (default 0). |
| name | String | App type name (lowercase). |
| isCustomAuth | Boolean | WebTab only — true for MEDIASSIST/CORPQLO/EKINCARE. |
| createdTime | Long | WebTab only — creation timestamp (epoch ms). |
| configurationId | Long | WebTab only — configuration ID. |
| type | String | App type ordinal as string (e.g. 22 for FEEDS, 20 for DASHBOARD). |
| toSetClass | String | WebTab only — CSS class (e.g. ci-vantagecircle). |
| manualLandingPage | String | Sub-landing page for Manuals (ManualType name). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns the ordered apps and landing page preference wrapped in appsOrder.
{
"appsOrder": {
"landingPage": "22",
"apps": [
{
"tabName": "Home",
"name": "dashboard",
"type": "20"
},
{
"name": "feeds",
"type": "22"
},
{
"tabName": "Groups",
"name": "groups",
"type": "15"
},
{
"tabName": "Tasks",
"name": "task",
"type": "6"
},
{
"name": "people",
"type": "16"
},
{
"tabName": "Forums",
"name": "blog",
"type": "0"
},
{
"tabName": "Manuals",
"name": "manuals",
"type": "10"
},
{
"tabName": "Town Hall",
"name": "townhall",
"type": "17"
},
{
"tabName": "Events",
"name": "events",
"type": "1"
},
{
"tabName": "Custom Apps",
"name": "custom_app",
"type": "5"
},
{
"tabName": "Survey",
"name": "survey",
"type": "18"
},
{
"tabName": "Ideas",
"name": "ideas",
"type": "21"
},
{
"tabName": "Gamification",
"name": "gamification",
"type": "23"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the list of native app tabs available in a network.
Returns the app tabs, or modules, configured for the specified network.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/scopeApps
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | String | |
| zia | String |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scopeApps?scopeID=3000000000008&zia=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| apps | JSON Array | Array of app tab objects. |
| iconOrd | Integer | Icon ordinal. WEBTAB only. |
| subLandingPage | String | Sub-landing page type. Conditional for FEEDS/BLOG/MANUALS. |
| type | String | App tab type (FEEDS, BLOG, MANUALS, FILES, DASHBOARD, WEBTAB, etc.). |
| isWorkdrive | Boolean | WorkDrive enabled. FILES only. Conditional. |
| iframeUrl | String | Iframe URL. WEBTAB only. |
| url | String | Dashboard URL. DASHBOARD only. |
| openInTab | Boolean | Open in new tab. WEBTAB only. Conditional. |
| creatorURL | String | Creator URL. WEBTAB only. Conditional. |
| service | String | Service name (e.g. 'VANTAGECIRCLE'). Conditional. |
| name | String | Localized app name. |
| isLanding | Boolean | True if this app is the scope's landing page. Conditional. |
| isCustomAuth | Boolean | Custom auth flag. Conditional. |
| loadUrl | Boolean | True for VantageCircle integration. Conditional. |
| configurationId | Long | ThirdPartyConfiguration ID. WEBTAB only. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
App tabs for the scope.
{
"apps": [
{
"name": "Feeds",
"isLanding": true,
"type": "FEEDS"
},
{
"name": "Forum",
"type": "BLOG"
},
{
"name": "Manuals",
"type": "MANUALS"
},
{
"name": "Files",
"type": "FILES"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Reorder the apps (modules) for the network.
Update the order of apps or modules in the network. If successful, returns result=success with the updated app order.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateAppsOrder
Scope
ZohoPulse.userDetail.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateAppsOrder
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| appType[]Mandatory | String | Comma-separated list of app type names in the desired order. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateAppsOrder \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | success or failure. |
| canAddWebTab | Boolean | Whether user can add web tabs. |
| feedLandingPage | String | Sub-landing page for Feeds. |
| isDashboardDisabled | String | true when Dashboard is landing but feature disabled. |
| landingPage | String | Landing page app type ordinal as string. |
| blogLandingPage | String | Sub-landing page for Forum. |
| apps | JSON Array | Updated ordered app tabs. |
| tabName | String | Localised display name. Only present when module name is configured. |
| openInTab | Boolean | WebTab only — opens in new browser tab. |
| iconOrd | Integer | WebTab only — icon ordinal (default 0). |
| name | String | App type name (lowercase). |
| isCustomAuth | Boolean | WebTab only — true for MEDIASSIST/CORPQLO/EKINCARE. |
| createdTime | Long | WebTab only — creation timestamp (epoch ms). |
| configurationId | Long | WebTab only — configuration ID. |
| type | String | App type ordinal as string (e.g. 22 for FEEDS, 20 for DASHBOARD). |
| toSetClass | String | WebTab only — CSS class (e.g. ci-vantagecircle). |
| manualLandingPage | String | Sub-landing page for Manuals. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Apps order updated successfully. Response wrapped in appsOrder key.
{
"appsOrder": {
"result": "success",
"canAddWebTab": true,
"landingPage": "22",
"apps": [
{
"name": "feeds",
"type": "22"
},
{
"tabName": "Home",
"name": "dashboard",
"type": "20"
},
{
"tabName": "Tasks",
"name": "task",
"type": "6"
},
{
"tabName": "Forums",
"name": "blog",
"type": "0"
},
{
"tabName": "Manuals",
"name": "manuals",
"type": "10"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Remove a user from a Zoho Connect network by user ID or email address.
Remove a user from the network. You must be a network admin to perform this action, and you cannot remove your own account. Specify the user using their userId (ZUID) or emailId. In intranet networks, the user is disabled instead of being permanently deleted.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteUserFromNetwork
Scope
ZohoPulse.networkAdmin.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteUserFromNetwork
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| emailId | String Allowed value:(matches: ^[\p{L}\p{M}\p{N}\_]([\p{L}\p{M}\p{N}\_\+\-\.\'\*&!]*)@(?=.{4,256}$)(([\p{L}\p{N}\p{M}]+)(([\-\_]*[\p{L}\p{N}\p{M}])*)[\.])+[\p{L}\p{M}]{2,22}$) | Email address of the user to remove. Used to resolve userId if userId is not provided. |
| userId | Long | ZUID of the user to remove. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUserFromNetwork?scopeID=3000000000008&emailId=jane.doe@zillium.com&userId=10001002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deleteUserFromNetwork | JSON Object | Inner deleteUserFromNetwork object — result and optional reason |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Failure reason — e.g. SELF_DELETE_NOT_ALLOWED, Invalid user. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
The user was successfully removed from the network.
{
"deleteUserFromNetwork": {
"result": "success"
}
}
Returned when the userId or emailId does not match any member of the network.
{
"deleteUserFromNetwork": {
"result": "failure",
"reason": "Invalid user"
}
}
Returned when the caller attempts to remove themselves from the network.
{
"deleteUserFromNetwork": {
"result": "failure",
"reason": "SELF_DELETE_NOT_ALLOWED"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Permanently delete a Zoho Connect network.
Deletes a Zoho Connect network. You must cancel any active subscription before proceeding. Only Super admin can delete the network.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteNetwork
Scope
ZohoPulse.networkAdmin.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| soidMandatory | Long | Scope object ID of the network to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteNetwork?soid=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Result status — 'success' or 'failure'. |
| code | String | Error code — e.g. CANCEL_SUBSCRIPTION_BEFORE_DELETE_NETWORK. Present when paid plan blocks deletion. |
| message | String | Failure message with support contact information. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success or failure response |
Sample Response: HTTP 200
The network was successfully deactivated and deleted.
{
"result": "success"
}
Returned when the network is on a paid plan. The subscription must be cancelled first.
{
"result": "failure",
"code": "CANCEL_SUBSCRIPTION_BEFORE_DELETE_NETWORK"
}
Returned when network deactivation fails.
{
"result": "failure",
"message": "Unable to delete the network. Please contact support@zohoconnect.com."
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the logged-in user's profile details.
Returns the authenticated user’s own profile details, including name, ZUID, follow counts, status, designation, department, contact information, social links, and gamification data. This API always returns your profile, so no userId is required.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/myProfile
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myProfile?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| userDetails | JSON Object | User profile object — shared across myProfile, userProfile, editUserProfile |
| lastName | String | Last name. |
| extension | String | Work phone extension. |
| userStatus | String | active, disabled, or inactive. |
| isExternalUser | Boolean | True if the user is an external user. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| isLoginUser | Boolean | True if viewing own profile. |
| emailId | String | Primary email address (if visible). |
| type | String | Member type code. |
| followingCount | Integer | Number of users/groups this user follows. |
| aboutMe | String | About me text. |
| workLocation | String | Work location. |
| canBlockUser | String | 'true' if the caller can block this user. |
| seatingLocation | String | Seating location. |
| department | String | Department name. |
| followerCount | Long | Number of followers. |
| canReportSpam | String | 'true' if spam reporting is available. |
| isFollowing | Boolean | True if the caller follows this user. |
| partitionId | Long | User's partition ID. |
| canShowOrgChart | Boolean | True if org chart is available (intranet only). |
| mobile | String | Mobile phone number (intranet only). |
| canShowChatOption | Boolean | True if chat option is available. |
| employeeId | String | Employee ID. |
| zuid | Integer | User's ZUID. |
| firstName | String | First name. |
| directReporteesCount | Integer | Number of direct reportees (if org chart enabled). |
| name | String | Screen name. |
| isUserBlocked | String | 'true' if the user is blocked by the caller. |
| designation | String | Job title / designation. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns the logged-in user's profile with identity fields, follow counts, status flags, contact info, and gamification data.
{
"userDetails": {
"userStatus": "active",
"canShowOrgChart": true,
"hasCustomImg": true,
"isLoginUser": true,
"canShowChatOption": true,
"emailId": "john.smith@zillium.com",
"type": "C",
"followingCount": 5,
"zuid": "10001001",
"aboutMe": "Full-stack developer with 10 years of experience.",
"directReporteesCount": 3,
"name": "John Smith",
"designation": "Senior Engineer",
"department": "Engineering",
"followerCount": 12
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a user's profile by userId or emailId.
Returns profile details for a specific user using their userId or emailId. - In v0, it returns a basic profile. - In v1 with version=0, it returns a complete profile with social links, custom fields, and Zoho People sync status. - With version=1 or 2, it returns a structured profile view with ordered fields.
Rate limited to 60 requests per minute (lock period: 10 minutes).
Request URL
https://ServerDomain/pulse/api/v1/userProfile
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| emailId | String Allowed value:(matches: ^[\p{L}\p{M}\p{N}\_]([\p{L}\p{M}\p{N}\_\+\-\.\'\*&!]*)@(?=.{4,256}$)(([\p{L}\p{N}\p{M}]+)(([\-\_]*[\p{L}\p{N}\p{M}])*)[\.])+[\p{L}\p{M}]{2,22}$) | Email address of the target user. Alternative to userId. |
| userId | Long | ZUID of the target user. |
| version | String Allowed value:(matches: 0|1|2) | Profile version: 0 (complete), 1 (view-ordered), 2 (view-ordered alternate). Only used in v1 path. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/userProfile?scopeID=3000000000008&emailId=john.smith@zillium.com&userId=10001001&version=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| userDetails | JSON Object | User profile object — shared across myProfile, userProfile, editUserProfile |
| lastName | String | Last name. |
| extension | String | Work phone extension. |
| userStatus | String | active, disabled, or inactive. |
| isExternalUser | Boolean | True if the user is an external user. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| isLoginUser | Boolean | True if viewing own profile. |
| emailId | String | Primary email address (if visible). |
| type | String | Member type code. |
| followingCount | Integer | Number of users/groups this user follows. |
| aboutMe | String | About me text. |
| workLocation | String | Work location. |
| canBlockUser | String | 'true' if the caller can block this user. |
| seatingLocation | String | Seating location. |
| department | String | Department name. |
| followerCount | Long | Number of followers. |
| canReportSpam | String | 'true' if spam reporting is available. |
| isFollowing | Boolean | True if the caller follows this user. |
| partitionId | Long | User's partition ID. |
| canShowOrgChart | Boolean | True if org chart is available (intranet only). |
| mobile | String | Mobile phone number (intranet only). |
| canShowChatOption | Boolean | True if chat option is available. |
| employeeId | String | Employee ID. |
| zuid | Integer | User's ZUID. |
| firstName | String | First name. |
| directReporteesCount | Integer | Number of direct reportees (if org chart enabled). |
| name | String | Screen name. |
| isUserBlocked | String | 'true' if the user is blocked by the caller. |
| designation | String | Job title / designation. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns profile details for the specified user including identity, follow counts, status, contact info, and social links.
{
"userDetails": {
"lastName": "Doe",
"userStatus": "active",
"isFollowing": true,
"isExternalUser": false,
"canShowOrgChart": true,
"hasCustomImg": true,
"isLoginUser": false,
"emailId": "jane.doe@zillium.com",
"type": "C",
"followingCount": 8,
"zuid": "10001002",
"aboutMe": "Leading the backend team.",
"workLocation": "Austin, TX",
"firstName": "Jane",
"canBlockUser": "true",
"directReporteesCount": 5,
"name": "Jane Doe",
"designation": "Engineering Manager",
"department": "Engineering",
"followerCount": 25
}
}
Returned when the userId does not match a valid user in the network.
{
"userDetails": {
"result": "failure",
"reason": "Invalid User"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a user's profile in editable form.
Retrieve profile fields in edit mode, including all available options such as custom field choices and department tags. Only the user or a network admin can access this. If Zoho People sync is enabled, a redirect URL is returned instead of editable fields.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/editUserProfile
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/editUserProfile
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userId | Long | ZUID of the user whose profile to edit. Defaults to the authenticated user. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/editUserProfile?scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'failure' on error. |
| reason | String | Error message on failure. |
| scopeDateFormat | String | Date format for the scope (e.g. 'dd MMM yyyy'). |
| profileFields | JSON Array | Ordered array of editable profile field objects. |
| isOnBoarding | String | 'true' if the field is shown during onboarding. |
| hideMobile | String | 'true' if mobile number hidden. Only on MOBILE field. |
| values | JSON Array | Currently selected values for multi-select fields. Each item has id and value. |
| canHideJoiningDate | String | 'true' if joining date visibility can be toggled. Only on JOININGDATE field. |
| type | String | Custom field type — TEXT, TEXTAREA, SELECTBOX, MULTI_SELECTBOX, FILE, DATE. Only present on custom fields. |
| hideJoiningDate | String | 'true' if joining date hidden. Only on JOININGDATE field. |
| isEditable | String | 'true' if the field is editable by the caller. |
| canHideBirthday | String | 'true' if birthday visibility can be toggled. Only on BIRTHDATE field. |
| name | String | Display name of the field. |
| options | JSON Array | Available choices for select-type fields. Each item has id and value. |
| isCustom | String | 'true' for custom fields. Only present on custom fields. |
| id | String | Field identifier — built-in uppercase codes (FIRSTNAME, LASTNAME, BIRTHDATE, etc.) or numeric custom field ID. |
| isPII | String | 'true' if the field is personally identifiable information. |
| value | String | Current value. Absent when empty/unset. |
| isMandatory | String | 'true' if the field is required. |
| hideBirthday | String | 'true' if birthday hidden. Only on BIRTHDATE field. |
| editProfileRedirectURL | String | Zoho People redirect URL (if People synced). |
| isPeopleSynced | Boolean | True if Zoho People is synced — no profileFields returned. |
| zuid | String | User's ZUID as string. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns editUserProfile wrapper with profileFields array containing editable fields, options, and current values.
{
"editUserProfile": {
"scopeDateFormat": "dd MMM yyyy",
"profileFields": [
{
"isOnBoarding": "true",
"isEditable": "true",
"name": "First Name",
"isPII": "false",
"id": "FIRSTNAME",
"value": "Carol",
"isMandatory": "true"
},
{
"isOnBoarding": "true",
"isEditable": "true",
"name": "Last Name",
"isPII": "false",
"id": "LASTNAME",
"value": "Davis",
"isMandatory": "true"
},
{
"isOnBoarding": "true",
"isEditable": "true",
"canHideBirthday": "false",
"name": "Birth Date",
"isPII": "false",
"id": "BIRTHDATE",
"value": "28 Dec 1993",
"isMandatory": "false",
"hideBirthday": "false"
},
{
"isOnBoarding": "true",
"isEditable": "true",
"values": [
{
"id": "3000000005178",
"value": "Member Leadership Staff"
},
{
"id": "3000000005179",
"value": "Member Leadership Staff"
}
],
"name": "Designation",
"options": [
{
"id": "3000000005124",
"value": "Manager"
},
{
"id": "3000000005178",
"value": "Member Leadership Staff"
}
],
"isPII": "false",
"id": "DESIGNATIONS",
"isMandatory": "false"
},
{
"isOnBoarding": "false",
"isEditable": "true",
"isCustom": "true",
"name": "Custom File Field",
"id": "3000000098001",
"isPII": "false",
"type": "FILE",
"value": "",
"isMandatory": "false"
}
],
"zuid": "60025003"
}
}
Returned when the caller is neither the profile owner nor a scope admin.
{
"editUserProfile": {
"result": "failure",
"reason": "Access Denied"
}
}
When Zoho People is synced, returns redirect URL instead of editable fields.
{
"editUserProfile": {
"editProfileRedirectURL": "https://people.zoho.com/zillium/editProfile",
"isPeopleSynced": true
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Save all profile fields for a user.
Updates a user’s complete profile, including standard details such as name, designation, department, social links, and contact information, along with custom fields. This action respects Zoho People sync restrictions and any role-based field limitations. Only the user or a network admin can perform this update.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/saveUserProfile
Scope
ZohoPulse.userDetail.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/saveUserProfile
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| youtube | String Allowed value:(matches: cleartext:removehtmlentities) | YouTube channel URL. |
| lastName | String Allowed value:(matches: cleartext:removehtmlentities) | Last name. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| displayName | String Allowed value:(matches: cleartext:removehtmlentities) | Display name. |
| customFields | JSON Array | Alternative JSON array of custom field objects. |
| date | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Day component for DATE fields. |
| month | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Month component for DATE fields. |
| hour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Hour component for DATE fields. |
| year | String Allowed value:(matches: ^(19|20)\d\d$) | Year component for DATE fields. |
| optionIds | JSON Array | Selected option IDs for MULTI_SELECTBOX fields. |
| fieldIdMandatory | Long | Custom field ID. Required. |
| minute | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Minute component for DATE fields. |
| recordValue | String Allowed value:(matches: (?ims)(.*?)) | Field value for TEXT/TEXTAREA/SELECTBOX fields. |
| wiki | String Allowed value:(matches: cleartext:removehtmlentities) | Wiki URL. |
| joiningDate | String Allowed value:(matches: (?ims)(.*?)) | Date of joining. |
| language | String Allowed value:(matches: ^(ar|as|bg|bn|brx|my|zh|zh_TW|cs|da|doi|nl|en|fa|fi|fr|fr_CA|de|el|gu|hi|hr|hu|iw|ga|in|it|ja|kn|ks|kok|ko|mai|mni|ms|ml|mr|ne|no|or|pl|pt|pt_BR|pa|ro|ru|sa|sat|sd|si|sl|es|sv|ta|te|th|tr|ur|uk|vi)$) | UI language code (for guest/normal users). |
| String Allowed value:(matches: cleartext:removehtmlentities) | Instagram handle. | |
| workLocationTagId | Long | Work location tag ID. |
| blog | String Allowed value:(matches: cleartext:removehtmlentities) | Blog URL. |
| departments[] | Long | Department tag IDs. |
| aboutMe | String Allowed value:(matches: cleartext:removehtmlentities) | About me text. |
| skills | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated skills. |
| workLocation | String Allowed value:(matches: cleartext:removehtmlentities) | Work location name. |
| String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Twitter profile URL. | |
| scopeDateFormat | String Allowed value:(matches: ^(dd MMM yyyy|dd MMM yy|MMM dd yyyy|dd/MM/yyyy|MM/dd/yyyy|yyyy MMM dd|yyyy/MM/dd)$) | Date display format preference. |
| seatingLocation | String Allowed value:(matches: cleartext:removehtmlentities) | Seating location. |
| reportingTo | Long | ZUID of the reporting manager. |
| hideBirthday | Boolean | If true, hides the birthday on the profile. |
| website | String Allowed value:(matches: cleartext:removehtmlentities) | Personal website URL. |
| customFieldValue[] | String Allowed value:(matches: (?ims)(.*?)) | Custom field values corresponding to customFieldId[]. |
| String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Facebook profile URL. | |
| mobile | String Allowed value:(matches: ^[0-9a-zA-Z\-_\.\+\(\)\s/,&\:@]*$) | Mobile phone number. |
| employeeId | String Allowed value:(matches: (?ims)(.*?)) | Employee ID. |
| String Allowed value:(matches: cleartext:removehtmlentities) | LinkedIn profile URL. | |
| trigger | Boolean | If true, triggers a profile update workflow. |
| userId | Long | ZUID of the user whose profile to save. |
| birthDate | String Allowed value:(matches: (?ims)(.*?)) | Birth date string. |
| delicious | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Delicious profile URL. |
| userTimeZone | String Allowed value:(matches: cleartext:removehtmlentities) | User timezone string. |
| amazon | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Amazon profile URL. |
| firstName | String Allowed value:(matches: cleartext:removehtmlentities) | First name. |
| customFieldId[] | Long | Custom field IDs to update. |
| dateOfJoining | String Allowed value:(matches: ^([A-Za-z0-9 \-_'.,@:?!()$#]+)$) | Alternate joining date field. |
| flickr | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Flickr profile URL. |
| designation | Long | Designation tag ID. |
| interests | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated interests. |
| workPhoneExtension | String Allowed value:(matches: ^[0-9a-zA-Z\-_\.\+\(\)\s/,&\:@]*$) | Work phone extension. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/saveUserProfile \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Profile saved successfully.
{
"result": "success"
}
Returned when the profile save fails.
{
"result": "failure"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Upload a profile image for a user.
Uploads a new profile photo for a specific user. The upload is processed based on the network type (intranet vs community/client portal) and is scanned for security. The maximum allowed file size is 10 MB.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/uploadUserImage
Scope
ZohoPulse.userDetail.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/uploadUserImage
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userId | Long | ZUID of the user whose image to upload. |
- Request Body
multipart/form-data
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| photoContent | Binary |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/uploadUserImage \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'Sample Request Body
{
"photoContent": "string"
}
Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Profile image uploaded successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update the landing page preference for the current user.
Set your default landing page to either Dashboard or Feeds.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateLandingPage
Scope
ZohoPulse.userDetail.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateLandingPage
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| landingPageMandatory | String Allowed value:(matches: DASHBOARD|FEEDS) | Landing page type. Either DASHBOARD or FEEDS. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateLandingPage?scopeID=3000000000008&landingPage=DASHBOARD' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateLandingPage | JSON Object | Inner updateLandingPage object — success result |
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Landing page updated.
{
"updateLandingPage": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a custom profile field for network members.
Create a custom profile field for the network. You must be a network admin to do this. Set the field name, field type, and its visibility, editability, and required settings. Supported field types: TEXT (0): Single-line text input TEXTAREA (1): Multi-line text input DATE (2): Date picker SELECTBOX (3): Dropdown with a single selectable option FILE (4): File upload field NUMBER (6): Numeric input TIME (7): Time picker DATE_TIME (8): Date and time picker LABEL (9): Read-only label field CHECKLIST (10): Multiple selectable options (checkboxes) MULTI_SELECTBOX (11): Dropdown with multiple selectable options For Select box and Multi-select box fields, provide the list of options using fieldValues. If successful, returns result=success with the new field ID and name.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addCustomField
Scope
ZohoPulse.networkAdmin.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addCustomField
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| fieldNameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Custom field name. Required. |
| isEditableMandatory | Boolean | If true, users can edit the field value on their own profile. |
| fieldValues | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated option labels for SELECTBOX or MULTI_SELECTBOX types. Max 200 options, 200 chars each. |
| isVisibleMandatory | Boolean | If true, the field is visible on the user profile. |
| isPIIMandatory | Boolean | If true, marks the field as personally identifiable information. |
| fieldTypeMandatory | Integer | Field type ordinal: TEXT=0, TEXTAREA=1, DATE=2, SELECTBOX=3, FILE=4, PERSON=5, NUMBER=6, TIME=7, DATE_TIME=8, LABEL=9, CHECKLIST=10, MULTI_SELECTBOX=11, STATUS=12, PRIORITY=13. |
| isOnBoardMandatory | Boolean | If true, the field appears on the onboarding form. |
| isMandatoryMandatory | Boolean | If true, the field is mandatory during onboarding. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addCustomField?scopeID=3000000000008&fieldName=Employee ID&isEditable=true&isVisible=true&isPII=false&fieldType=0&isOnBoard=true&isMandatory=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addCustomField | JSON Object | Inner addCustomField object — field details on success, or error result |
| isOnBoarding | String | 'true' if shown on onboarding form. |
| getFieldOptions | JSON Object | Map of option ID to option label. Present for SELECTBOX/MULTI_SELECTBOX types. |
| result | String | Result status — 'success' or 'failure'. |
| canManage | String | 'true' — always present on success. |
| isMandatoryChecked | String | 'true' if the field is mandatory. |
| isEnabled | String | 'true' — always present on success. |
| isVisibleChecked | String | 'true' if the field is visible on profiles. |
| name | String | Custom field name. Present on success. |
| isCustom | String | 'true' — always present on success. |
| canDelete | String | 'true' — always present on success. |
| id | String | Created custom field ID. Present on success. |
| isPIIChecked | String | 'true' if the field is marked as PII. |
| isEditableChecked | String | 'true' if users can edit this field. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Custom field created. Returns the new field ID, name, and permission flags.
{
"addCustomField": {
"result": "success",
"canManage": true,
"isEnabled": true,
"isVisibleChecked": true,
"name": "Employee ID",
"isCustom": true,
"canDelete": true,
"id": "3000000090001",
"isEditableChecked": true
}
}
Custom field with SELECTBOX type created. Returns field options mapping.
{
"addCustomField": {
"result": "success",
"canManage": true,
"isEnabled": true,
"isVisibleChecked": true,
"name": "Department",
"isCustom": true,
"canDelete": true,
"id": "3000000090002",
"getFieldOptions": {
"3000000090003": "Engineering",
"3000000090004": "Marketing",
"3000000090005": "Sales"
},
"isEditableChecked": true
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Download a file attached to a user profile custom field.
Download the file uploaded in a File custom field for a specific member. The response is returned as a file, not as JSON. To access it, the field must be visible to you, or you must be a network admin. Access to files in other users’ profiles may still be restricted for sensitive fields.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/downloadCustomFieldFile
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/downloadCustomFieldFile
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| forDownload | Boolean | If true, triggers a download. If false, displays inline. |
| fromMobile | Boolean | Set to true when calling from mobile client. |
| fieldIdMandatory | Long | Custom field ID. Required. |
| memberIdMandatory | Long | ZUID of the member whose file to download. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/downloadCustomFieldFile?scopeID=3000000000008&forDownload=true&fromMobile=false&fieldId=3000000050001&memberId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follow a user in the network.
Follow a user to start receiving their posts and activity updates in your feed.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/followUser
Scope
ZohoPulse.userDetail.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| userIdMandatory | Long | ZUID of the user to follow. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/followUser \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'SUCCESS' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User followed successfully.
{
"result": "SUCCESS"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the list of users that a user is following.
Returns the list of users that a specific user is following. Each result includes details such as name, ZUID, profile picture, and follow status. Supports pagination using lastFollowTime.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/userFollowings
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/userFollowings
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| lastFollowTime | Long | Timestamp for pagination. Returns followings older than this time. |
| scopeID | Long | Network (scope) ID. |
| userIdMandatory | Long | ZUID of the user whose followings to retrieve. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/userFollowings?lastFollowTime=1772187185334&scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of user objects the user is following. |
| isFollowing | Boolean | True if the caller follows this user. |
| imageUrl | String | Profile image URL. |
| name | String | User display name. |
| emailId | String | User email (if visible). |
| type | String | Member type code. |
| zuid | Integer | User ZUID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns users the specified user is following.
{
"usersDetails": [
{
"isFollowing": true,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001002&fs=thumb",
"name": "Jane Doe",
"emailId": "jane.doe@zillium.com",
"type": "C",
"zuid": "10001002"
},
{
"isFollowing": false,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Alice Smith",
"emailId": "alice.smith@zillium.com",
"type": "C",
"zuid": "10001003"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the list of followers for a user.
Returns the list of users who follow a specific user. Each result includes details such as name, ZUID, profile picture, and follow status. Supports pagination using lastFollowTime.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/userFollowers
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/userFollowers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| lastFollowTime | Long | Timestamp for pagination. Returns followers older than this time. |
| scopeID | Long | Network (scope) ID. |
| userIdMandatory | Long | ZUID of the user whose followers to retrieve. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/userFollowers?lastFollowTime=1772187185334&scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of follower user objects. |
| isFollowing | Boolean | True if the caller follows this user. |
| imageUrl | String | Profile image URL. |
| name | String | User display name. |
| emailId | String | User email (if visible). |
| type | String | Member type code. |
| zuid | Integer | User ZUID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns followers of the specified user.
{
"usersDetails": [
{
"isFollowing": false,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Bob Wilson",
"emailId": "bob.wilson@zillium.com",
"type": "C",
"zuid": "10001003"
},
{
"isFollowing": true,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001004&fs=thumb",
"name": "Charlie Brown",
"emailId": "charlie.brown@zillium.com",
"type": "C",
"zuid": "10001004"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Stop following a user in the network.
Unfollow a user to stop receiving their posts and activity updates in your feed.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowUser
Scope
ZohoPulse.userDetail.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| userIdMandatory | Long | ZUID of the user to unfollow. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/unfollowUser \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'SUCCESS' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User unfollowed successfully.
{
"result": "SUCCESS"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Add an item to the user's favourites.
Mark a group, board, manual, article, or custom app as a favorite. Use the type parameter to specify the item type (0–5). If successful, returns result=SUCCESS with the favorited item details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/favouriteApp
Scope
ZohoPulse.userDetail.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canShowInFeed | Boolean | If true, shows the favourite action in the feed. |
| appIdMandatory | Long | ID of the item to favourite. Required. |
| typeMandatory | String Allowed value:(matches: ^[0-5]$) | Item type ordinal: 0=BOARDS, 1=GROUPS, 2=MANUALS, 3=ARTICLES, 4=CUSTOM_APP. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/favouriteApp \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'SUCCESS' on success. |
| favouriteItem | JSON Object | The favourited item details. |
| bgColor | String | Background color code (optional). |
| name | String | Item name. |
| logo | String | Item logo (optional). |
| manualUrl | String | Parent manual URL (for articles only). |
| id | Integer | Item ID. |
| type | String | Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP. |
| url | String | Item URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Item favourited successfully.
{
"result": "SUCCESS",
"favouriteItem": {
"bgColor": "E063A3",
"name": "Engineering",
"logo": "EN",
"id": "3000000050001",
"type": "GROUPS",
"url": "engineering"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the authenticated user's favourited items.
Retrieve the list of items you’ve marked as favorites. Each item includes details such as ID, name, URL, type, and optional logo or background color. You can filter the results by item type using the favouriteItemType parameter.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/myFavourites
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| limit | Integer | Maximum number of items to return. |
| favouriteItemType | String Allowed value:(matches: ^(GROUPS|MANUALS|BOARDS|ARTICLES|CUSTOM_APP|MANUALS_ONLY)$) | Filter by item type: GROUPS, MANUALS, BOARDS, ARTICLES, CUSTOM_APP, MANUALS_ONLY. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myFavourites?scopeID=3000000000008&limit=20&favouriteItemType=GROUPS' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| favourites | JSON Array | Array of favourited item objects. |
| bgColor | String | Background color code (optional). |
| name | String | Item name. |
| logo | String | Item logo (optional). |
| manualUrl | String | Parent manual URL (for articles only). |
| id | Integer | Item ID. |
| type | String | Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP. |
| url | String | Item URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns the user's favourited items.
{
"favourites": [
{
"bgColor": "E063A3",
"name": "Engineering",
"logo": "EN",
"id": "3000000050001",
"type": "GROUPS",
"url": "engineering"
},
{
"bgColor": "6EC1E4",
"name": "Product Roadmap",
"logo": "PR",
"id": "3000000060005",
"type": "BOARDS",
"url": "product-roadmap"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Remove an item from the user's favourites.
Remove a group, board, manual, article, or custom app from your favorites. Use the type parameter to specify the item type (0–5). If successful, returns result=SUCCESS with the item details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfavouriteApp
Scope
ZohoPulse.userDetail.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfavouriteApp
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| appIdMandatory | Long | ID of the item to unfavourite. Required. |
| typeMandatory | String Allowed value:(matches: ^[0-5]$) | Item type ordinal: 0=BOARDS, 1=GROUPS, 2=MANUALS, 3=ARTICLES, 4=CUSTOM_APP. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/unfavouriteApp \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'SUCCESS' on success. |
| favouriteItem | JSON Object | The unfavourited item details. |
| bgColor | String | Background color code (optional). |
| name | String | Item name. |
| logo | String | Item logo (optional). |
| manualUrl | String | Parent manual URL (for articles only). |
| id | Integer | Item ID. |
| type | String | Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP. |
| url | String | Item URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Item unfavourited successfully.
{
"result": "SUCCESS",
"favouriteItem": {
"name": "Engineering",
"id": "3000000050001",
"type": "GROUPS",
"url": "engineering"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Block a user in the network.
Block a user to prevent them from interacting with your content. You must have admin privileges to perform this action.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/blockUser
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdMandatory | Long | ZUID of the user to block. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/blockUser?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User blocked.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unblock a previously blocked user.
Unblock a previously blocked user so they can interact with your content again. You must have admin privileges to perform this action.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unblockUser
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdMandatory | Long | ZUID of the user to unblock. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unblockUser?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User unblocked.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a user's recent activities (posts, comments, votes) in a network.
Returns a user’s activity feed in the network, including posts, comments, and other activity. You can filter the results by activity type and paginate them using modifiedTime. When viewing your own activity feed, additional details like canShowLike are included.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/userActivities
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/userActivities
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Timestamp for pagination. Returns activities older than this time. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Filter activities to a specific group. |
| type | String Allowed value:(matches: ALL|POST|COMMENT|OTHERS) | Activity type filter: ALL (default), POST (posts only), COMMENT (comments only), OTHERS. |
| userIdMandatory | Long | ZUID of the user whose activities to retrieve. Required. |
| version | Integer | API version number. Defaults to 0. |
| partitionType | Integer | Filter by partition type (e.g. townhall). |
| isUserLikes | Boolean | If true, returns activities the user has liked instead of authored. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/userActivities?modifiedTime=1772187185334&scopeID=3000000000008&partitionId=3000000000303&type=ALL&userId=10001001&version=0&partitionType=2&isUserLikes=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| userActivities | JSON Object | Inner userActivities object — activities array with pagination and feature flags, or error keys |
| result | String | Result status — 'failure'. Present on error. |
| modifiedTime | String | Timestamp of the oldest activity in the current page. Use as modifiedTime param for pagination. Present when more activities exist. |
| reason | String | Error message. Present on failure. |
| canShowLike | String | 'true' when viewing own activities (enables the Likes tab). |
| activities | JSON Array | Array of activity objects. Each has a type and either a post or comment sub-object. |
| stream | JSON Object | Post object. Present when type is NEW_STREAM, NEW_VOTE, etc. |
| canMove | String | 'true' if the caller can move this post to another group. |
| reason | JSON Object | Activity reason with templated message and referenced items. |
| msg | String | Templated activity message with placeholders like ^$@_USERNAME_^$@_ZUID and ^$@_PARTITION_^$@. |
| items | JSON Object | Map of placeholder keys to their entity objects (user details, partition details). Keys are dynamic. |
| canTranslate | String | 'true' if translation is available. |
| canMarkAsMustRead | String | 'true' if the caller can mark as mandatory read. |
| uniqueViewCount | String | Unique viewer count. |
| canEdit | String | 'true' if the caller can edit this post. |
| streamModifiedTime | String | Last modified time as epoch milliseconds. |
| title | String | Post title (for announcements, tasks, etc.). |
| type | String | Post type: ANNOUNCEMENT, STATUS, BLOG, QUESTION, IDEA, EVENT, TOWNHALL, CAMPAIGN, etc. |
| content | String | Post body content (may contain HTML). |
| partition | JSON Object | Group where the post was posted. |
| typeOrd | String | Ordinal of the partition type. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| isAdmin | String | 'true' if the caller is an admin of this group. |
| type | String | Partition type: GROUP, FORUMS, DEFAULT, TOWNHALL, etc. |
| url | String | URL path of the group. |
| accessType | String | Access type: PRIVATE, PUBLIC, OPEN. |
| bgColor | String | Background color hex code for the group avatar. |
| name | String | Group display name. |
| canFollow | String | 'true' if the caller can follow this group. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT, etc. |
| id | String | Group ID. |
| isUserFollow | String | 'true' if the caller follows this group. |
| status | String | Group status: ACTIVE. |
| canShowPostAudit | String | 'true' if post audit trail is available. |
| canFollow | String | 'true' if the caller can follow this post. |
| canDelete | String | 'true' if the caller can delete this post. |
| canLock | String | 'true' if the caller can lock comments. |
| id | String | Post ID. |
| viewCount | String | Total view count. |
| isApproved | String | 'true' if content is approved (moderation). |
| streamUrl | String | URL slug of the post. |
| canMarkAsReadLater | String | 'true' if read-later is available. |
| canShowPostInsight | String | 'true' if post insights are available. |
| userDetails | JSON Object | Author of the post. |
| bgColor | String | Background color hex code for default avatar. |
| imageUrl | String | Profile image URL. Present when the user has a custom avatar. |
| name | String | Display name. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| type | String | User type: C (corporate), CL (client), ECL (external client). |
| zuid | String | Zoho User ID. |
| url | String | Full permalink URL of the post. |
| commentCount | String | Number of comments on this post. |
| formatedTime | String | Human-readable formatted time. |
| time | String | Created time as epoch milliseconds. |
| module_name | String | Module name: FEEDS, FORUMS, etc. |
| status | String | Post status: ACTIVE. |
| comment | JSON Object | Comment object. Present when type is COMMENT_OWN_POST, NEW_COMMENT, etc. |
| streamUrl | String | URL slug of the parent post. |
| reason | JSON Object | Activity reason with templated message. |
| msg | String | Templated activity message with placeholders like ^$@_USERNAME_^$@_ZUID and ^$@_PARTITION_^$@. |
| items | JSON Object | Map of placeholder keys to their entity objects (user details, partition details). Keys are dynamic. |
| canTranslate | String | 'true' if translation is available. |
| streamId | String | ID of the parent post. |
| streamAuthor | JSON Object | Author of the parent post. |
| bgColor | String | Background color hex code for default avatar. |
| imageUrl | String | Profile image URL. Present when the user has a custom avatar. |
| name | String | Display name. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| type | String | User type: C (corporate), CL (client), ECL (external client). |
| zuid | String | Zoho User ID. |
| canEdit | String | 'true' if the caller can edit this comment. |
| userDetails | JSON Object | Author of the comment. |
| bgColor | String | Background color hex code for default avatar. |
| imageUrl | String | Profile image URL. Present when the user has a custom avatar. |
| name | String | Display name. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| type | String | User type: C (corporate), CL (client), ECL (external client). |
| zuid | String | Zoho User ID. |
| content | String | Comment body content. |
| url | String | Full permalink URL of the comment. |
| formatedTime | String | Human-readable formatted time. |
| streamType | String | Type of the parent post: ANNOUNCEMENT, BLOG, STATUS, etc. |
| blogUrl | String | Blog URL slug. Present when parent is a BLOG post. |
| commentType | String | Comment type: COMMENT. |
| canDelete | String | 'true' if the caller can delete this comment. |
| id | String | Comment ID. |
| time | String | Created time as epoch milliseconds. |
| isApproved | String | 'true' if comment is approved (moderation). |
| streamPartition | JSON Object | Group of the parent post. |
| typeOrd | String | Ordinal of the partition type. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| isAdmin | String | 'true' if the caller is an admin of this group. |
| type | String | Partition type: GROUP, FORUMS, DEFAULT, TOWNHALL, etc. |
| url | String | URL path of the group. |
| accessType | String | Access type: PRIVATE, PUBLIC, OPEN. |
| bgColor | String | Background color hex code for the group avatar. |
| name | String | Group display name. |
| canFollow | String | 'true' if the caller can follow this group. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT, etc. |
| id | String | Group ID. |
| isUserFollow | String | 'true' if the caller follows this group. |
| status | String | Group status: ACTIVE. |
| type | String | Activity type: NEW_STREAM, COMMENT_OWN_POST, NEW_COMMENT, NEW_VOTE, NEW_PRIVATE_MESSAGE, FOLLOW_PARTITION, etc. |
| isBlogEnabled | String | 'true' if the blog/forum app is enabled for this network. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returned when the userId does not correspond to a valid user in the network.
{
"userActivities": {
"result": "failure",
"reason": "Oops, something went wrong here! Please try again after some time."
}
}
Activities containing a post. Each activity has type=NEW_STREAM and a post sub-object with full post details including author, group, content, and engagement counts.
{
"userActivities": {
"modifiedTime": "1772187185334",
"canShowLike": "true",
"activities": [
{
"stream": {
"streamUrl": "team-update",
"uniqueViewCount": "1",
"canEdit": "true",
"streamModifiedTime": "1772187335190",
"title": "Team Update",
"type": "ANNOUNCEMENT",
"userDetails": {
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001001&fs=thumb",
"name": "John Smith",
"canFollow": "true",
"id": "10001001",
"type": "C",
"zuid": "10001001"
},
"content": "Quarterly review meeting scheduled for next week.",
"url": "https://connect.zoho.com/portal/zillium/announcement/team-update",
"commentCount": "1",
"formatedTime": "27 Feb, 03:43 PM",
"partition": {
"accessType": "PRIVATE",
"typeOrd": "2",
"partitionUrl": "engineering",
"bgColor": "E063A3",
"name": "Engineering",
"logo": "EN",
"id": "3000000000303",
"isPrivate": "true",
"type": "GROUP",
"url": "engineering",
"status": "ACTIVE"
},
"canFollow": "true",
"canDelete": "true",
"id": "3000000237007",
"time": "1772187185334",
"viewCount": "9",
"module_name": "FEEDS",
"isApproved": "true",
"status": "ACTIVE"
},
"type": "NEW_STREAM"
},
{
"comment": {
"streamUrl": "team-update",
"streamId": "3000000237007",
"streamAuthor": {
"name": "Jane Doe",
"id": "10001002",
"type": "C",
"zuid": "10001002"
},
"canEdit": "true",
"userDetails": {
"name": "John Smith",
"id": "10001001",
"type": "C",
"zuid": "10001001"
},
"content": "Great update! Looking forward to the review.",
"url": "https://connect.zoho.com/portal/zillium/announcement/team-update/3000000237080",
"formatedTime": "27 Feb, 03:55 PM",
"streamType": "ANNOUNCEMENT",
"commentType": "COMMENT",
"canDelete": "true",
"id": "3000000237080",
"time": "1772187300000",
"isApproved": "true",
"streamPartition": {
"name": "Engineering",
"id": "3000000000303",
"type": "GROUP",
"status": "ACTIVE"
}
},
"type": "NEW_COMMENT"
}
],
"isBlogEnabled": "true"
}
}
Activities containing a comment. Each activity has type=COMMENT_OWN_POST (or NEW_COMMENT) and a comment sub-object with comment details and parent post context.
{
"userActivities": {
"activities": [
{
"comment": {
"streamUrl": "team-update",
"streamId": "3000000237007",
"streamAuthor": {
"name": "John Smith",
"id": "10001001",
"type": "C",
"zuid": "10001001"
},
"canEdit": "true",
"userDetails": {
"name": "John Smith",
"id": "10001001",
"type": "C",
"zuid": "10001001"
},
"content": "Sounds good, I will prepare the slides.",
"url": "https://connect.zoho.com/portal/zillium/announcement/team-update/3000000237073",
"formatedTime": "27 Feb, 03:44 PM",
"streamType": "ANNOUNCEMENT",
"commentType": "COMMENT",
"canDelete": "true",
"id": "3000000237073",
"time": "1772187263824",
"isApproved": "true",
"streamPartition": {
"name": "Engineering",
"id": "3000000000303",
"type": "GROUP",
"status": "ACTIVE"
}
},
"type": "COMMENT_OWN_POST"
},
{
"comment": {
"streamUrl": "project-kickoff",
"streamId": "3000000237010",
"streamAuthor": {
"name": "Jane Doe",
"id": "10001002",
"type": "C",
"zuid": "10001002"
},
"canEdit": "true",
"userDetails": {
"name": "John Smith",
"id": "10001001",
"type": "C",
"zuid": "10001001"
},
"content": "Nice write-up, very informative!",
"url": "https://connect.zoho.com/portal/zillium/status/project-kickoff/3000000237080",
"formatedTime": "27 Feb, 03:55 PM",
"streamType": "STATUS",
"commentType": "COMMENT",
"canDelete": "true",
"id": "3000000237080",
"time": "1772187300000",
"isApproved": "true",
"streamPartition": {
"name": "Engineering",
"id": "3000000000303",
"type": "GROUP",
"status": "ACTIVE"
}
},
"type": "NEW_COMMENT"
}
],
"isBlogEnabled": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve directory users with offset-limit pagination.
Fetches directory users for mobile clients with offset-based pagination using startLmt and endLmt. You can also filter the results by department and member type.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getDirectoryUserDetails
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getDirectoryUserDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| filter | JSON Object | Input filter template for directory search |
| userFieldMandatory | JSON Array | Array of filter field objects. |
| name | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Field name to filter on. |
| isCustom | String Allowed value:(matches: (true|false)) | Whether this is a custom field. |
| value | JSON Array | Array of filter values. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| memberType | String Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$) | Filter by member type (e.g., C, E). |
| startLmt | Integer | Pagination start offset (default 0). |
| isUserDeptOnly | Boolean | If true, return only users from the caller's department. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getDirectoryUserDetails?scopeID=3000000000008&memberType=C&startLmt=0&isUserDeptOnly=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canUpdateReportingTo | Boolean | True if caller has MANAGE_USERS permission. |
| usersDetails | JSON Array | Array of user directory entries. |
| role | String | Member role — ADMIN or MEMBER. |
| isExternalUser | Boolean | True if EXTERNAL_USER_CLIENT type. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| emailId | String | Email address. Present based on scope visibility. |
| type | String | Member type code — C (corporate), CL (client), ECL (external client). |
| workLocation | String | Work location. Present for admins/same-org users. |
| isUserActive | Boolean | Whether the user account is active. |
| memberSince | String | Formatted join date. Present if available. |
| seatingLocation | String | Seating location. Present for admins/same-org users. |
| imageUrl | String | Profile image URL. Present when custom image exists. |
| canFollow | Boolean | True if caller can follow this user. |
| id | Long | User ID (same as zuid). |
| departments | JSON Array | Array of department objects. Present if user has departments. |
| id | Long | Department ID. |
| value | String | Department name. |
| department | String | Department name. Present if available and persona allows. |
| reportingTo | Long | Reporting-to user ZUID. Present if set. |
| isFollowing | Boolean | True if caller follows this user. |
| reportingToData | JSON Object | Reporting-to user object. Present if reportingTo is set. |
| name | String | Reporting-to user display name. |
| id | Long | Reporting-to user ZUID. |
| mobile | String | Mobile phone number. Present if available and persona allows. |
| canShowChatOption | Boolean | True if chat is available between users. |
| isAdmin | Boolean | True if user is scope admin. |
| zuid | Long | Zoho User ID. |
| name | String | Display name. |
| designation | String | Job title. Present if available and persona allows. |
| status | String | Entity status — ACTIVE, INVITED, etc. |
| designationData | JSON Object | Designation object. Present if user has designation data. |
| id | Long | Designation ID. |
| value | String | Designation name. |
| loadMore | Boolean | True if more results are available. |
| limitCount | Integer | Same as count. |
| count | Integer | Filtered result count for this page. |
| aditionalInfo | JSON Object | Additional counts and permissions. Present on first page when needAditionalInfo=true. |
| externalGuestCount | Integer | External guest count. Present if EXTERNAL_USER_CLIENT allowed. |
| scopeMemberCount | Integer | Total members in scope. |
| pendingCount | Integer | Pending invite count. Present for scope admins. |
| pendingClientUsersCount | Integer | Pending client user count. Present for scope admins. |
| pendingRestrictedExternalGuestUsersCount | Integer | Pending restricted external guest count. Present for scope admins. |
| disableCount | Integer | Disabled user count. Present for scope admins on intranet. |
| guestCount | Integer | Client guest count. Present if CLIENT invite type is allowed. |
| pendingRestrictedClientUsersCount | Integer | Pending restricted client user count. Present for scope admins. |
| pendingExternalGuestUsersCount | Integer | Pending external guest count. Present for scope admins. |
| canShowAddToBoard | Boolean | True if scope admin and task app enabled. |
| canDisableUsers | Boolean | True if caller can disable users. Present for intranet admins. |
| totalCount | Integer | Total matching user count. Present on first page. |
| canManageUser | Boolean | True if caller can manage users. |
| isPeopleSynced | Boolean | Whether Zoho People is synced. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns paginated directory user entries.
{
"canUpdateReportingTo": true,
"usersDetails": [
{
"isUserActive": true,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001002&fs=thumb",
"name": "Jane Doe",
"hasCustomImg": true,
"emailId": "jane.doe@zillium.com",
"id": 10001002,
"designation": "Engineer",
"type": "C",
"department": "Engineering",
"zuid": 10001002
},
{
"isUserActive": false,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Alice Smith",
"hasCustomImg": false,
"emailId": "alice.smith@zillium.com",
"id": 10001003,
"designation": "Engineer",
"type": "C",
"department": "Engineering",
"zuid": 10001003
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve directory users with page-based pagination and search.
Returns the main directory listing endpoint supporting page-based pagination, free-text search, and structured filtering. Branches based on memberType: client users go through getDirectoryClientDetails, regular users through getDirectoryUserDetails.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/directoryUserDetails
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/directoryUserDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| filter | JSON Object | Input filter template for directory search |
| userFieldMandatory | JSON Array | Array of filter field objects. |
| name | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Field name to filter on. |
| isCustom | String Allowed value:(matches: (true|false)) | Whether this is a custom field. |
| value | JSON Array | Array of filter values. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| searchTerm | String Allowed value:(matches: cleartext:removehtmlentities) | Free-text search term to match user names/details. |
| needHeaderInfo | Boolean | If true, include column header metadata. |
| isMemberTypeFilter | Boolean | If true, apply member type as a filter. |
| pageIndex | Integer | Page index for pagination (default 0). |
| needAditionalInfo | Boolean | If true, include additional info (department/designation lists). |
| memberType | String Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$) | Filter by member type. Client types use a different code path. |
| fromSetup | Boolean | If true, called from admin setup context. |
| isUserDeptOnly | Boolean | If true, return only users from the caller's department. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/directoryUserDetails?scopeID=3000000000008&searchTerm=Jane&needHeaderInfo=true&pageIndex=0&needAditionalInfo=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canUpdateReportingTo | Boolean | True if caller has MANAGE_USERS permission. |
| usersDetails | JSON Array | Array of user directory entries. |
| role | String | Member role — ADMIN or MEMBER. |
| isExternalUser | Boolean | True if EXTERNAL_USER_CLIENT type. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| emailId | String | Email address. Present based on scope visibility. |
| type | String | Member type code — C (corporate), CL (client), ECL (external client). |
| workLocation | String | Work location. Present for admins/same-org users. |
| isUserActive | Boolean | Whether the user account is active. |
| memberSince | String | Formatted join date. Present if available. |
| seatingLocation | String | Seating location. Present for admins/same-org users. |
| imageUrl | String | Profile image URL. Present when custom image exists. |
| canFollow | Boolean | True if caller can follow this user. |
| id | Long | User ID (same as zuid). |
| departments | JSON Array | Array of department objects. Present if user has departments. |
| id | Long | Department ID. |
| value | String | Department name. |
| department | String | Department name. Present if available and persona allows. |
| reportingTo | Long | Reporting-to user ZUID. Present if set. |
| isFollowing | Boolean | True if caller follows this user. |
| reportingToData | JSON Object | Reporting-to user object. Present if reportingTo is set. |
| name | String | Reporting-to user display name. |
| id | Long | Reporting-to user ZUID. |
| mobile | String | Mobile phone number. Present if available and persona allows. |
| canShowChatOption | Boolean | True if chat is available between users. |
| isAdmin | Boolean | True if user is scope admin. |
| zuid | Long | Zoho User ID. |
| name | String | Display name. |
| designation | String | Job title. Present if available and persona allows. |
| status | String | Entity status — ACTIVE, INVITED, etc. |
| designationData | JSON Object | Designation object. Present if user has designation data. |
| id | Long | Designation ID. |
| value | String | Designation name. |
| loadMore | Boolean | True if more results are available. |
| limitCount | Integer | Same as count. |
| count | Integer | Filtered result count for this page. |
| aditionalInfo | JSON Object | Additional counts and permissions. Present on first page when needAditionalInfo=true. |
| externalGuestCount | Integer | External guest count. Present if EXTERNAL_USER_CLIENT allowed. |
| scopeMemberCount | Integer | Total members in scope. |
| pendingCount | Integer | Pending invite count. Present for scope admins. |
| pendingClientUsersCount | Integer | Pending client user count. Present for scope admins. |
| pendingRestrictedExternalGuestUsersCount | Integer | Pending restricted external guest count. Present for scope admins. |
| disableCount | Integer | Disabled user count. Present for scope admins on intranet. |
| guestCount | Integer | Client guest count. Present if CLIENT invite type is allowed. |
| pendingRestrictedClientUsersCount | Integer | Pending restricted client user count. Present for scope admins. |
| pendingExternalGuestUsersCount | Integer | Pending external guest count. Present for scope admins. |
| canShowAddToBoard | Boolean | True if scope admin and task app enabled. |
| canDisableUsers | Boolean | True if caller can disable users. Present for intranet admins. |
| totalCount | Integer | Total matching user count. Present on first page. |
| canManageUser | Boolean | True if caller can manage users. |
| isPeopleSynced | Boolean | Whether Zoho People is synced. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns paged directory user entries with optional header info.
{
"usersDetails": [
{
"isUserActive": true,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001002&fs=thumb",
"name": "Jane Doe",
"hasCustomImg": true,
"emailId": "jane.doe@zillium.com",
"id": 10001002,
"designation": "Engineer",
"type": "C",
"department": "Engineering",
"zuid": 10001002
},
{
"isUserActive": false,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Alice Smith",
"hasCustomImg": false,
"emailId": "alice.smith@zillium.com",
"id": 10001003,
"designation": "Engineer",
"type": "C",
"department": "Engineering",
"zuid": 10001003
}
],
"count": 50,
"totalCount": 150,
"isPeopleSynced": false
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve intranet member listing with search and filtering.
Fetches the member listing for intranet-type networks. Supports search, filtering, and offset-limit pagination.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/intranetUsers
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| filter | JSON Object | Input filter template for directory search |
| userFieldMandatory | JSON Array | Array of filter field objects. |
| name | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Field name to filter on. |
| isCustom | String Allowed value:(matches: (true|false)) | Whether this is a custom field. |
| value | JSON Array | Array of filter values. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| searchTerm | String Allowed value:(matches: cleartext:removehtmlentities) | Free-text search term. |
| needAditionalInfo | Boolean | If true, include additional info. |
| memberType | String Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$) | Filter by member type. |
| isMoreIntranetMembers | Boolean | If true, fetch additional pages of members. |
| fromSetup | Boolean | If true, called from admin setup context. |
| startLmt | Integer | Pagination start offset. |
| endLmt | Integer | Pagination end offset. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/intranetUsers?scopeID=3000000000008&searchTerm=Bob&startLmt=0&endLmt=50' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of intranet user entries. |
| role | String | Member role — ADMIN or MEMBER. |
| isExternalUser | Boolean | True if EXTERNAL_USER_CLIENT type. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| emailId | String | Email address. Present based on scope visibility. |
| type | String | Member type code — C (corporate), CL (client), ECL (external client). |
| workLocation | String | Work location. Present for admins/same-org users. |
| isUserActive | Boolean | Whether the user account is active. |
| memberSince | String | Formatted join date. Present if available. |
| seatingLocation | String | Seating location. Present for admins/same-org users. |
| imageUrl | String | Profile image URL. Present when custom image exists. |
| canFollow | Boolean | True if caller can follow this user. |
| id | Long | User ID (same as zuid). |
| departments | JSON Array | Array of department objects. Present if user has departments. |
| id | Long | Department ID. |
| value | String | Department name. |
| department | String | Department name. Present if available and persona allows. |
| reportingTo | Long | Reporting-to user ZUID. Present if set. |
| isFollowing | Boolean | True if caller follows this user. |
| reportingToData | JSON Object | Reporting-to user object. Present if reportingTo is set. |
| name | String | Reporting-to user display name. |
| id | Long | Reporting-to user ZUID. |
| mobile | String | Mobile phone number. Present if available and persona allows. |
| canShowChatOption | Boolean | True if chat is available between users. |
| isAdmin | Boolean | True if user is scope admin. |
| zuid | Long | Zoho User ID. |
| name | String | Display name. |
| designation | String | Job title. Present if available and persona allows. |
| status | String | Entity status — ACTIVE, INVITED, etc. |
| designationData | JSON Object | Designation object. Present if user has designation data. |
| id | Long | Designation ID. |
| value | String | Designation name. |
| loadMore | Boolean | True if more results are available. |
| count | Integer | Result count for this page. |
| totalCount | Integer | Total number of matching users. |
| isPeopleSynced | Boolean | Whether Zoho People is synced. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns intranet user listing.
{
"usersDetails": [
{
"isUserActive": true,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Bob Wilson",
"hasCustomImg": true,
"emailId": "bob.wilson@zillium.com",
"id": 10001003,
"designation": "Designer",
"type": "C",
"department": "Product",
"zuid": 10001003
},
{
"isUserActive": false,
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001004&fs=thumb",
"name": "Charlie Brown",
"hasCustomImg": false,
"emailId": "charlie.brown@zillium.com",
"id": 10001004,
"designation": "Designer",
"type": "C",
"department": "Product",
"zuid": 10001004
}
],
"count": 45,
"totalCount": 45
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve available filter options for the user directory.
Returns the profile filter definitions (departments, designations, custom fields, etc.) that can be used to filter the directory.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/userFilterDetails
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/userFilterDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userFilterDetails?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| filterOrder | JSON Array | Array of available filter definitions. |
| values | JSON Array | Array of filter value objects. |
| name | String | Display value. |
| id | Long | Tag ID, persona ID, or option ID. |
| name | String | Localised display name. |
| isCustom | Boolean | True for custom fields. |
| id | String | Field reference ID — e.g. 'DEPARTMENTS', 'DESIGNATIONS', 'WORKLOCATION', or a custom field ID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns available filter definitions.
{
"filterOrder": [
{
"values": [
{
"name": "Engineering",
"id": 3000000001001
},
{
"name": "Product",
"id": 3000000001002
}
],
"name": "Department",
"id": "DEPARTMENTS"
},
{
"values": [
{
"name": "Engineer",
"id": 3000000002001
},
{
"name": "Manager",
"id": 3000000002002
}
],
"name": "Designation",
"id": "DESIGNATIONS"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a specific dashboard and its widgets.
Returns a dashboard by ID or type, including its widget layout and data. Dashboard types include DEFAULT (public), MEMBER (personal), GROUP, and AUDIENCE.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/dashboard
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| dashboardId | Long | Dashboard ID. |
| partitionId | Long | Group ID (required for GROUP type dashboards). |
| dashboardType | String Allowed value:(matches: ^(0|1|2|3)$) | Dashboard type ordinal — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/dashboard?scopeID=3000000000008&dashboardType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canCreateWidgets | String | 'true' if the user can edit this dashboard. |
| isExternalUser | String | 'true' when caller is external/client user. |
| partitionId | Long | Group ID (for GROUP dashboards). |
| fileInfo | JSON Object | Last editor info — version, lastModified, userDetails. |
| widgets | JSON Array | Array of widget objects with layout and type-specific data. |
| canDisplayTitle | String | 'true' if title can be toggled. |
| defaultHeight | String | Default grid height. |
| loadMore | String | 'true' if paginated loading is available. |
| icon | String | CSS icon class. |
| canAdd | String | 'true' if widget can be added by users. |
| banner | JSON Object | HERO type — allowScrolling, linkText, content. |
| minWidth | String | Minimum grid width. |
| defaultWidth | String | Default grid width. |
| widgetType | String | Widget type — HERO, TIMER, LINKS, HTML, FEEDS, PEOPLE, GROUPS, EVENTS, TASKS, EMBED, etc. |
| widgetTitle | String | Display title. |
| minHeight | String | Minimum grid height. |
| displayTitle | String | 'true' if title is displayed. |
| timer | JSON Object | TIMER type — remYear, remMonth, remDay, remHour, remMinutes, display. |
| name | String | Widget name. |
| x | String | Grid X position (column). |
| width | String | Grid width in columns (out of 12). |
| viewType | String | LINKS type — view type ordinal. |
| y | String | Grid Y position (row). |
| links | JSON Object | LINKS type — showTitle, showDesc, viewType, links[], align, thumbnailView, showIcon. |
| html | JSON Object | HTML type — align, content. |
| canReuse | String | 'true' if widget can be reused. |
| isConnectDefault | String | 'true' if this is a Connect default widget. |
| height | String | Grid height in rows. |
| message | String | Error message (mobile, when not found). |
| url | String | Dashboard URL slug. Empty string for default dashboards. |
| audienceIds | JSON Array | Audience IDs (AUDIENCE dashboards). |
| deniedReason | String | noDashboardFound or notQualified when access denied. |
| result | String | failure when access denied. |
| isDefault | String | 'true' if this is the default dashboard. |
| dashboardId | String | Dashboard ID as string. |
| name | String | Dashboard display name. |
| id | Long | Native dashboard ID (mobile only). |
| publishedPref | JSON Object | Dashboard display preferences — titleColor, titleSize, radius, isFullWidth. |
| dashboardType | String | Dashboard type ordinal as string — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE. |
| status | String | 'success' on success; 'failure' when not found (mobile). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Dashboard returned with widgets, preferences, and file info.
{
"dashboard": {
"canCreateWidgets": "true",
"dashboardId": "3000000263004",
"name": "Zillum",
"fileInfo": {
"lastModified": "06 Apr 2026, 02:50 pm",
"version": "1.1",
"userDetails": {
"name": "Vignesh Thangavel",
"id": "15065799",
"zuid": "15065799"
}
},
"widgets": [
{
"displayTitle": "false",
"name": "banner",
"x": "0",
"width": "12",
"y": "0",
"banner": {
"allowScrolling": "false",
"content": "<p>Welcome</p>"
},
"widgetType": "HERO",
"isConnectDefault": "true",
"widgetTitle": "Hero Banner",
"height": "3"
},
{
"displayTitle": "true",
"timer": {
"display": "DH",
"remDay": "7",
"remMonth": "3",
"remYear": "2026"
},
"name": "timer",
"x": "0",
"width": "4",
"y": "3",
"widgetType": "TIMER",
"widgetTitle": "Timer",
"height": "3"
}
],
"publishedPref": {
"titleColor": "#111",
"titleSize": "16",
"radius": {
"all": "3"
},
"isFullWidth": "false"
},
"dashboardType": "0",
"url": ""
}
}
Access denied — user not qualified.
{
"dashboard": {
"deniedReason": "notQualified",
"result": "failure",
"isExternalUser": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve all dashboards available to the current user.
Returns the list of dashboards the authenticated user has access to, including default, personal, and audience-targeted dashboards.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/dashboards
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/dashboards?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canCreatePrivateDashboard | String | Mobile only — 'true' if can create personal dashboard. |
| permissions | JSON Object | Dashboard creation/management permissions. |
| canManage | String | 'true' if can manage admin dashboards. |
| canCreatePrivate | String | 'true' if can create personal dashboard. |
| canCreateAudience | String | 'true' if can create audience dashboard. |
| canCreatePublic | String | 'true' if can create public dashboard. |
| canSetUserLanding | String | 'true' if can set landing dashboard. |
| canCreate | String | 'true' if any create permission granted. |
| dashboards | JSON Array | Ordered array of dashboard objects. |
| canCreateWidgets | String | 'true' if user can edit widgets. |
| lastModifiedTime | Long | Last modified timestamp epoch ms (fetchAll mode). |
| partitionId | Long | Group ID (fetchAll, GROUP dashboards). |
| url | String | Dashboard URL slug. Empty string for default dashboards. |
| audienceIds | JSON Array | Audience IDs (AUDIENCE dashboards). |
| isDefault | String | 'true' if this is the default dashboard. |
| dashboardId | String | Dashboard ID as string. |
| createdBy | Long | Creator ZUID (fetchAll mode). |
| canCreateDashboard | String | Mobile + personal — 'true' if can create a dashboard. |
| name | String | Dashboard display name. |
| createdTime | Long | Creation timestamp epoch ms (fetchAll mode). |
| id | Long | Native dashboard ID (mobile only). |
| isLandingDashboard | String | 'true' for the landing dashboard. |
| dashboardType | String | Type ordinal as string — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE. |
| status | String | 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Dashboards returned with permissions.
{
"dashboards": {
"permissions": {
"canManage": "true",
"canCreatePrivate": "true",
"canCreateAudience": "false",
"canCreatePublic": "false",
"canSetUserLanding": "false",
"canCreate": "true"
},
"dashboards": [
{
"canCreateWidgets": "true",
"dashboardId": "3000000263004",
"name": "Zillum",
"isLandingDashboard": "true",
"dashboardType": "0",
"url": ""
},
{
"canCreateWidgets": "true",
"dashboardId": "3000000263005",
"name": "Zillum 2",
"isLandingDashboard": "true",
"dashboardType": "0",
"url": ""
}
],
"status": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve multiple posts by their IDs.
Returns multiple posts in a single request by passing comma-separated post IDs. Supports up to 30 IDs per request and returns full post objects.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/streams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Optional partition ID filter. |
| streamIdsMandatory | Long | Comma-separated post IDs. Required. Max 30. |
| commentLimit | Integer | Maximum number of comments per post. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streams?scopeID=3000000000008&streamIds=3000000070001,3000000070002,3000000070003&commentLimit=5' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streams | JSON Array | Array of post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Multiple posts retrieved by IDs.
{
"streams": [
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070001,
"type": "STATUS",
"content": "Hello team!"
},
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070002,
"type": "STATUS",
"content": "Group update."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Get metadata about available actions on a post.
Returns post state details including bookmark, follow, mandatory read, and notification status, along with available post type conversion options. Fields are returned only when applicable.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamActionsMeta
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/streamActionsMeta
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| needNotification | Boolean | If true, includes isNotifDisabled flag. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamActionsMeta?scopeID=3000000000008&needNotification=true&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| isBookmarked | String | 'true' if the user has bookmarked the post. Absent if not. |
| canConvertToIdea | String | 'true' if the post can be converted to Idea. |
| canConvertToForum | String | 'true' if the post can be converted to Forum. |
| canConvertToStatus | String | 'true' if the post can be converted to Status. |
| canConvertToAnnouncement | String | 'true' if the post can be converted to Announcement. |
| isReadLater | String | 'true' if the user has marked the post as read later. Absent if not. |
| canConvertStream | String | 'true' if any conversion is available. |
| canCreateSocialAdvocacy | String | 'true' if social advocacy can be created. |
| isNotifDisabled | String | 'true' if the user has disabled notifications. Absent if not. Only present when needNotification=true. |
| isFollowingFeed | String | 'true' if the user is following the post. Absent if not. |
| canConvertToQuestion | String | 'true' if the post can be converted to Question. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post actions meta retrieved.
{
"result": "success",
"isBookmarked": "true",
"canConvertToIdea": "true",
"canConvertToForum": "true",
"canConvertToStatus": "true",
"canConvertToAnnouncement": "true",
"isReadLater": "true",
"canConvertStream": "true",
"canCreateSocialAdvocacy": "true",
"isNotifDisabled": "true",
"isFollowingFeed": "true",
"canConvertToQuestion": "true"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the editable content and metadata of a post.
Get a post’s editable details for the edit form, including raw content, title, link info, partition, and available post type conversion options. Returns a post object with editable fields.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamEditInfo
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isConvert | Boolean | If true, loading for post type conversion. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to edit. Required. |
| isIdeaConvert | Boolean | If true, loading for conversion to Idea type. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamEditInfo?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Post object with editable fields and conversion flags. |
| canConvertToIdea | String | 'true' if the post can be converted to Idea. |
| partition | JSON Object | Target group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| canConvertToForum | String | 'true' if the post can be converted to Forum. |
| canConvertToStatus | String | 'true' if the post can be converted to Status. |
| canConvertToAnnouncement | String | 'true' if the post can be converted to Announcement. |
| link | String | Link URL (for LINK type posts). |
| canConvertStream | String | 'true' if any conversion is available. |
| id | Long | Post ID. |
| title | String | Post title (for titled types). |
| content | String | Raw editable content (HTML/rich text). |
| status | String | Post status — ACTIVE, DRAFT, etc. |
| canConvertToQuestion | String | 'true' if the post can be converted to Question. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post edit info retrieved.
{
"stream": {
"canConvertToIdea": "true",
"canConvertToStatus": "true",
"canConvertToAnnouncement": "true",
"link": "",
"type": "STATUS",
"title": "",
"content": "Hello team! Here is our weekly update.",
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canConvertToForum": "true",
"canConvertStream": "true",
"id": 3000000070001,
"status": "ACTIVE",
"canConvertToQuestion": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Get latest posts with new post count.
Retrieve posts created after the last viewed time, along with the count of new posts. You can optionally filter results by group. Returns both the list of posts and the number of new entries.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/getLatestStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getLatestStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| partitionId | Long | Partition ID (optional — omit for network-wide). |
| lastViewedTimeMandatory | Long | Epoch ms — return posts newer than this. Required. |
| fetchTime | Long | Upper bound timestamp (epoch ms). Defaults to current time. |
| streamLimit | Integer | Max posts to return. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getLatestStreams?scopeID=3000000000008&lastViewedTime=1710800000000&streamLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor. |
| streams | JSON Array | Array of post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| count | Integer | Count of new posts since lastViewedTime. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Latest posts with new-post count.
{
"modifiedTime": 1710900000000,
"streams": [
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070005,
"type": "IDEA",
"title": "Add dark mode"
},
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070006,
"type": "IDEA",
"title": "Add dark mode (2)"
}
],
"count": 3
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve recent posts from the network feed.
Retrieve recent posts with optional type filtering and sorting. Supports pagination via modifiedTime cursor. First page (no filters) includes scheduled feeds.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/recentStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/recentStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — last modified time from previous response. |
| scopeID | Long | Network (scope) ID. |
| sortingType | String Allowed value:(matches: ^(createdTimeDesc|mostUpvoted|mostDownvoted|mostDiscussed)$) | Sorting — createdTimeDesc, mostUpvoted, mostDownvoted, mostDiscussed. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|DOCS|POLL|QUESTION||EVENT|ANNOUNCEMENT|VIDEO|PAGE|CAMPAIGN|IDEA|OTHERS)$) | Filter by post type — STATUS, BLOG, POLL, QUESTION, IDEA, ANNOUNCEMENT, etc. |
| isCustomIdeaStatus | Boolean | If true, ideaStatus values are custom status IDs. |
| commentLimit | Integer | Max comments per post. |
| showUserDetails | Boolean | If true, includes login user details in response. |
| ideaStatus | Long | Filter by idea status IDs. Max 20. |
| streamLimit | Integer | Max posts to return. Range: 10–30. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/recentStreams?scopeID=3000000000008&commentLimit=5&streamLimit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — last modified time. |
| scheduledFeeds | JSON Array | Array of scheduled post objects. Present on first page only. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| streams | JSON Array | Array of post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Recent posts from the network feed.
{
"modifiedTime": 1710900000000,
"streams": [
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070005,
"type": "IDEA",
"title": "Add dark mode"
},
{
"author": {
"name": "John Doe",
"zuid": 700000001
},
"id": 3000000070001,
"type": "STATUS",
"content": "Hello team!"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Get private (direct message) posts for the authenticated user.
Retrieve private posts that are visible only to the user and the selected recipients. Returns a list of posts in the same format as Recent Posts. Supports pagination using the modifiedTime cursor.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/privateStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — pass the last post's modifiedTime for the next page. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentLimit | Integer | Max comments per post. Range 1–200. |
| streamLimit | Integer | Max number of posts to return. Range 1–200. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/privateStreams?scopeID=3000000000008&commentLimit=5&streamLimit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for the next page. Present only when more pages are available. |
| streams | JSON Array | Array of private post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Private posts retrieved.
{
"modifiedTime": 1700000000001,
"streams": [
{
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000080001,
"canComment": "true",
"type": "STATUS",
"content": "This is a private message.",
"status": "ACTIVE"
},
{
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": false,
"canDelete": false,
"id": 3000000080002,
"canComment": "true",
"type": "STATUS",
"content": "This is a private message.",
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Hide a post from the authenticated user’s feed
Hide a post from your feed without deleting it. The post will no longer appear in your view. Returns result=success when completed successfully.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/hideStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to hide. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/hideStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post hidden successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unhide a hidden post.
Restore a hidden post back to the user's feed. Returns result=success on success.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unhideStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to unhide. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unhideStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post unhidden successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Moves a post to another group.
Moves a post from one group to another. Requires write permission in the destination group and move or admin permission in the source group. Broadcast, Showtime event, meeting event, and Connect bot posts cannot be moved. Returns the moved post with the updated group.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/moveStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to move. Required. |
| partitionId | Long | Destination group ID. |
| categoryIds[] | Long | Idea category IDs in the destination. |
| partitionTypeMandatory | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Destination partition type — MEMBER, GROUP, DEFAULT, or PAGE. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/moveStream?scopeID=3000000000008&streamId=3000000070001&partitionId=3000000256099&partitionType=GROUP' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | The moved post object with updated group. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post moved to another group.
{
"result": "success",
"stream": {
"partition": {
"name": "Marketing",
"id": 3000000256099,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070001,
"canComment": "true",
"type": "STATUS",
"content": "Hello team! Here is our weekly update.",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Locks a post to prevent further comments.
Locks a post to prevent new comments from being added. Only the post creator or a group admin can lock a post. Returns result=success when successful.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/lockStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to lock. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/lockStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post locked successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unlocks a previously locked post to allow comments again.
Unlock a post to allow new comments to be added again. Returns result=success when successful.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unlockStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to unlock. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlockStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post unlocked successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a post from the feed.
Delete a post by its ID.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post deleted successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a conversation post in the network or group feed.
Creates a conversation post with optional attachments, link preview, and rich text content. To post in the network feed, leave partitionID empty. To post in a specific group, provide the partitionID. You can also create a private post visible only to selected members or groups.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionID | Long | Target group/townhall ID. Omit to post to the network feed. |
| isAnnouncement | Boolean | If true, sends email notification to all members. Used with ANNOUNCEMENT type. |
| streamGroups | Long | Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true. |
| isPrivate | Boolean | If true, creates a private post visible only to specified members/groups. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — GROUP, CHANNEL, TOWNHALL, FORUMS, DEFAULT, MEMBER. Required when partitionID is provided. |
| version | Integer | API version hint. Use 2. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link preview description. Used with LINK type. |
| disableComments | Boolean | If true, disables all comments on the post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link preview title. Used with LINK type. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. Used with IDEA type. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS (default), ANNOUNCEMENT, QUESTION, or IDEA. Other values: LINK, EVENT, CAMPAIGN. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post body content (rich-text HTML). Max 30,000 characters. |
| announcementExpiryTime | Long | Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link preview image URL. Used with LINK type. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| streamMembers | Long | Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | URL to share. Used with LINK type. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addStream?scopeID=3000000000008&partitionID=3000000256092&isAnnouncement=true&streamGroups=3000000256092&isPrivate=true&partitionType=GROUP&categoryIds=3000000080001&streamType=STATUS&streamContent=This is a private update for the team leads.&announcementExpiryTime=1743033000000&streamMembers=700000002,700000003&streamTitle=Add dark mode to the mobile app' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addStream | JSON Object | Inner addStream object — post detail on success, error keys on failure |
| result | String | Result status — 'failure'. Present on failure. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Created post object. Present on success. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Conversation post created in a group.
{
"addStream": {
"stream": {
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070002,
"canComment": "true",
"type": "STATUS",
"content": "Group update for the engineering team.",
"status": "ACTIVE"
}
}
}
Conversation post created in the network feed.
{
"addStream": {
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070001,
"canComment": "true",
"type": "STATUS",
"content": "Hello team! Here is our weekly update.",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create an announcement in a group or network.
Creates an announcement post for a specific group. The partitionID is required, since announcements can only be posted within a group. You can optionally set an expiry date using announcementExpiryTime and send an email notification to all group members by setting isAnnouncement to true.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionID | Long | Target group/townhall ID. Omit to post to the network feed. |
| isAnnouncement | Boolean | If true, sends email notification to all members. Used with ANNOUNCEMENT type. |
| streamGroups | Long | Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true. |
| isPrivate | Boolean | If true, creates a private post visible only to specified members/groups. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — GROUP, CHANNEL, TOWNHALL, FORUMS, DEFAULT, MEMBER. Required when partitionID is provided. |
| version | Integer | API version hint. Use 2. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link preview description. Used with LINK type. |
| disableComments | Boolean | If true, disables all comments on the post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link preview title. Used with LINK type. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. Used with IDEA type. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS (default), ANNOUNCEMENT, QUESTION, or IDEA. Other values: LINK, EVENT, CAMPAIGN. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post body content (rich-text HTML). Max 30,000 characters. |
| announcementExpiryTime | Long | Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link preview image URL. Used with LINK type. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| streamMembers | Long | Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | URL to share. Used with LINK type. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addStream?scopeID=3000000000008&partitionID=3000000256092&isAnnouncement=true&streamGroups=3000000256092&isPrivate=true&partitionType=GROUP&categoryIds=3000000080001&streamType=STATUS&streamContent=This is a private update for the team leads.&announcementExpiryTime=1743033000000&streamMembers=700000002,700000003&streamTitle=Add dark mode to the mobile app' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addStream | JSON Object | Inner addStream object — post detail on success, error keys on failure |
| result | String | Result status — 'failure'. Present on failure. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Created post object. Present on success. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Announcement created with expiry and email notification.
{
"addStream": {
"stream": {
"canFixAtTop": true,
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070003,
"canComment": "true",
"type": "ANNOUNCEMENT",
"title": "Office Closed — March 25",
"content": "The office will be closed on March 25 for a public holiday.",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a question post for Q&A.
Creates a question post with a required title and optional body content. Questions support best answer selection and can be posted in the network feed or within a group. In a town hall, questions can also be used as part of the Q&A flow.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionID | Long | Target group/townhall ID. Omit to post to the network feed. |
| isAnnouncement | Boolean | If true, sends email notification to all members. Used with ANNOUNCEMENT type. |
| streamGroups | Long | Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true. |
| isPrivate | Boolean | If true, creates a private post visible only to specified members/groups. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — GROUP, CHANNEL, TOWNHALL, FORUMS, DEFAULT, MEMBER. Required when partitionID is provided. |
| version | Integer | API version hint. Use 2. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link preview description. Used with LINK type. |
| disableComments | Boolean | If true, disables all comments on the post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link preview title. Used with LINK type. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. Used with IDEA type. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS (default), ANNOUNCEMENT, QUESTION, or IDEA. Other values: LINK, EVENT, CAMPAIGN. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post body content (rich-text HTML). Max 30,000 characters. |
| announcementExpiryTime | Long | Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link preview image URL. Used with LINK type. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| streamMembers | Long | Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | URL to share. Used with LINK type. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addStream?scopeID=3000000000008&partitionID=3000000256092&isAnnouncement=true&streamGroups=3000000256092&isPrivate=true&partitionType=GROUP&categoryIds=3000000080001&streamType=STATUS&streamContent=This is a private update for the team leads.&announcementExpiryTime=1743033000000&streamMembers=700000002,700000003&streamTitle=Add dark mode to the mobile app' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addStream | JSON Object | Inner addStream object — post detail on success, error keys on failure |
| result | String | Result status — 'failure'. Present on failure. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Created post object. Present on success. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Question post created.
{
"addStream": {
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070004,
"canComment": "true",
"type": "QUESTION",
"title": "How do I reset my VPN credentials?",
"content": "I need to reset my VPN credentials after a password change. What is the process?",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a private post visible only to specified recipients.
Creates a private post visible only to you and selected recipients by setting isPrivate=true. The post is published to your personal space. Supports only STATUS, LINK, and DOCS post types. Use streamMembers and streamGroups to add recipients. The author is included by default. Requires the isCreatePvtPostAllowed setting to be enabled.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionID | Long | Target group/townhall ID. Omit to post to the network feed. |
| isAnnouncement | Boolean | If true, sends email notification to all members. Used with ANNOUNCEMENT type. |
| streamGroups | Long | Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true. |
| isPrivate | Boolean | If true, creates a private post visible only to specified members/groups. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — GROUP, CHANNEL, TOWNHALL, FORUMS, DEFAULT, MEMBER. Required when partitionID is provided. |
| version | Integer | API version hint. Use 2. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link preview description. Used with LINK type. |
| disableComments | Boolean | If true, disables all comments on the post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link preview title. Used with LINK type. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. Used with IDEA type. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS (default), ANNOUNCEMENT, QUESTION, or IDEA. Other values: LINK, EVENT, CAMPAIGN. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post body content (rich-text HTML). Max 30,000 characters. |
| announcementExpiryTime | Long | Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link preview image URL. Used with LINK type. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| streamMembers | Long | Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | URL to share. Used with LINK type. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addStream?scopeID=3000000000008&partitionID=3000000256092&isAnnouncement=true&streamGroups=3000000256092&isPrivate=true&partitionType=GROUP&categoryIds=3000000080001&streamType=STATUS&streamContent=This is a private update for the team leads.&announcementExpiryTime=1743033000000&streamMembers=700000002,700000003&streamTitle=Add dark mode to the mobile app' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addStream | JSON Object | Inner addStream object — post detail on success, error keys on failure |
| result | String | Result status — 'failure'. Present on failure. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Created post object. Present on success. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Private conversation post shared with specific members and a group.
{
"addStream": {
"stream": {
"memberListCount": 3,
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"isPrivate": "true",
"sharedMembers": [
{
"name": "Jane Smith",
"hasCustomImg": false,
"zuid": 700000002
},
{
"name": "Bob Wilson",
"hasCustomImg": true,
"zuid": 700000003
}
],
"type": "STATUS",
"content": "This is a private update for the team leads.",
"sharedGroups": [
{
"partitionName": "Engineering",
"partitionId": 3000000256092,
"isMember": true
},
{
"partitionName": "Engineering",
"partitionId": 3000000256093,
"isMember": false
}
],
"canDelete": true,
"id": 3000000070006,
"canComment": "true",
"status": "ACTIVE"
}
}
}
Private posts are disabled in scope preferences.
{
"addStream": {
"result": "failure",
"errorCode": "ACCESS_DENIED"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a conversation post's content and attachments.
Updates an existing conversation post by editing its content, link preview, and attachments. The streamId and scopeID are required.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| newTextOptions | String Allowed value:(matches: (?ims)(.*?)) | New text options to add to the poll. |
| removedOptionIds | Long | Poll option IDs to remove. |
| existingOptions | JSON Array | Existing poll option updates (JSON array). Max 25 items. |
| canEditVote | Boolean | Whether voters can change their vote. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | Whether voted users are visible — 0: no, 1: yes. |
| streamIdMandatory | Long | Post ID to update. Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| partitionID | Long | Target partition ID for draft. |
| textOptions | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll (alias). Max 25. |
| isDraft | Boolean | If true, saves as draft. |
| voteDisplayType | String Allowed value:(matches: 0|1|2) | How votes are displayed — 0: count, 1: percentage, 2: hidden. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Announcement expiry year. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview description. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Announcement expiry date. |
| canDeclareResult | Boolean | Whether poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link URL. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated post title. Max 300 characters. |
| imageIds | Long | Image option IDs for the poll. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Announcement expiry month. |
| newPollImageIds | Long | New image option IDs to add to the poll. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| version | Integer | API version hint. |
| disableComments | Boolean | If true, disables comments. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview title. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Updated post body content (rich-text HTML). Max 30,000 characters. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link preview image URL. |
| allowMultiple | Boolean | Whether multiple option selection is allowed. |
| draftStreamType | String Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$) | Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA. |
| optionOrders | String Allowed value:(matches: (?ims)(.*?)) | Poll option display order. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateStream?newTextOptions=Saturday,Sunday&removedOptionIds=3000000090003&scopeID=3000000000008&streamId=3000000070005&voteDisplayType=1&expiryYear=2026&expiryDate=26&streamTitle=Add dark mode to the mobile and desktop apps&expiryMonth=3&categoryIds=3000000080001,3000000080002&streamContent=Extended idea: dark mode for both mobile and desktop.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Updated post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Conversation post updated.
{
"result": "success",
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000070001,
"canComment": "true",
"type": "STATUS",
"content": "Updated: Here is the revised weekly update.",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates an announcement post including expiry date.
Updates an existing announcement by editing its content, title, and expiry date. Set the expiry using expiryYear, expiryMonth, and expiryDate.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| newTextOptions | String Allowed value:(matches: (?ims)(.*?)) | New text options to add to the poll. |
| removedOptionIds | Long | Poll option IDs to remove. |
| existingOptions | JSON Array | Existing poll option updates (JSON array). Max 25 items. |
| canEditVote | Boolean | Whether voters can change their vote. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | Whether voted users are visible — 0: no, 1: yes. |
| streamIdMandatory | Long | Post ID to update. Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| partitionID | Long | Target partition ID for draft. |
| textOptions | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll (alias). Max 25. |
| isDraft | Boolean | If true, saves as draft. |
| voteDisplayType | String Allowed value:(matches: 0|1|2) | How votes are displayed — 0: count, 1: percentage, 2: hidden. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Announcement expiry year. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview description. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Announcement expiry date. |
| canDeclareResult | Boolean | Whether poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link URL. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated post title. Max 300 characters. |
| imageIds | Long | Image option IDs for the poll. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Announcement expiry month. |
| newPollImageIds | Long | New image option IDs to add to the poll. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| version | Integer | API version hint. |
| disableComments | Boolean | If true, disables comments. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview title. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Updated post body content (rich-text HTML). Max 30,000 characters. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link preview image URL. |
| allowMultiple | Boolean | Whether multiple option selection is allowed. |
| draftStreamType | String Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$) | Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA. |
| optionOrders | String Allowed value:(matches: (?ims)(.*?)) | Poll option display order. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateStream?newTextOptions=Saturday,Sunday&removedOptionIds=3000000090003&scopeID=3000000000008&streamId=3000000070005&voteDisplayType=1&expiryYear=2026&expiryDate=26&streamTitle=Add dark mode to the mobile and desktop apps&expiryMonth=3&categoryIds=3000000080001,3000000080002&streamContent=Extended idea: dark mode for both mobile and desktop.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Updated post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Announcement updated with new expiry.
{
"result": "success",
"stream": {
"canFixAtTop": true,
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"type": "ANNOUNCEMENT",
"title": "Office Closed — March 26 (Updated)",
"content": "The closure has been extended to March 26.",
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"hasHistory": "true",
"canDelete": true,
"id": 3000000070003,
"canComment": "true",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates a question post's title and content.
Updates an existing question post by editing its title and content. The streamId and scopeID are required.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| newTextOptions | String Allowed value:(matches: (?ims)(.*?)) | New text options to add to the poll. |
| removedOptionIds | Long | Poll option IDs to remove. |
| existingOptions | JSON Array | Existing poll option updates (JSON array). Max 25 items. |
| canEditVote | Boolean | Whether voters can change their vote. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | Whether voted users are visible — 0: no, 1: yes. |
| streamIdMandatory | Long | Post ID to update. Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| partitionID | Long | Target partition ID for draft. |
| textOptions | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll (alias). Max 25. |
| isDraft | Boolean | If true, saves as draft. |
| voteDisplayType | String Allowed value:(matches: 0|1|2) | How votes are displayed — 0: count, 1: percentage, 2: hidden. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Announcement expiry year. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview description. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Announcement expiry date. |
| canDeclareResult | Boolean | Whether poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link URL. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated post title. Max 300 characters. |
| imageIds | Long | Image option IDs for the poll. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Announcement expiry month. |
| newPollImageIds | Long | New image option IDs to add to the poll. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| version | Integer | API version hint. |
| disableComments | Boolean | If true, disables comments. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview title. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Updated post body content (rich-text HTML). Max 30,000 characters. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link preview image URL. |
| allowMultiple | Boolean | Whether multiple option selection is allowed. |
| draftStreamType | String Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$) | Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA. |
| optionOrders | String Allowed value:(matches: (?ims)(.*?)) | Poll option display order. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateStream?newTextOptions=Saturday,Sunday&removedOptionIds=3000000090003&scopeID=3000000000008&streamId=3000000070005&voteDisplayType=1&expiryYear=2026&expiryDate=26&streamTitle=Add dark mode to the mobile and desktop apps&expiryMonth=3&categoryIds=3000000080001,3000000080002&streamContent=Extended idea: dark mode for both mobile and desktop.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Updated post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Question post updated.
{
"result": "success",
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000070004,
"canComment": "true",
"type": "QUESTION",
"title": "How do I reset my VPN credentials after a password change?",
"content": "Updated: I need to reset my VPN credentials. What are the exact steps?",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a single post by ID.
Retrieve complete details of a post using streamId, including comments, poll options, author details, and partition information.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/singleStream
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/singleStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streamUrl | String Allowed value:(matches: (?ims)(.*?)) | Post URL (alternative to streamId). |
| commentIndex | Integer | Comment pagination start index. |
| scopeID | Long | Network (scope) ID. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Filter by post type. |
| needAllComments | Boolean | If true, returns all comments (no pagination). |
| streamId | Long | Post ID. |
| isRecent | Boolean | If true, returns most recent comments first. |
| commentView | String Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED) | Comment view mode. |
| commentLimit | Integer | Maximum number of comments to return. |
| isThread | Boolean | If true, returns threaded comments. |
| includeUnapproved | Boolean | If true, includes unapproved/moderated comments. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/singleStream?scopeID=3000000000008&streamId=3000000070001&commentLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Full post object with comments, and task or event metadata when applicable. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Single post with comments.
{
"stream": {
"comments": [
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"id": 3000000080001,
"content": "Great update!"
},
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"id": 3000000080002,
"content": "Great update!"
}
],
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070001,
"canComment": "true",
"type": "STATUS",
"content": "Hello team! Here is our weekly update.",
"status": "ACTIVE",
"commentCount": 2
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Saves a post as a draft without publishing.
Saves a post as a draft without publishing it. Supports all post types, such as status, announcement, question, and idea. You can edit and publish the draft later.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/saveDraftStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/saveDraftStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| partitionID | Long | Group ID to post in. |
| isAnnouncement | Boolean | If true, sends mail to all group members / page followers. |
| categoryIds[] | Long | Idea category IDs. |
| streamGroups | Long | Private post group IDs. |
| isPrivate | Boolean | If true, creates a private draft. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — MEMBER, GROUP, DEFAULT, etc. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link description. |
| version | Integer | API version hint. |
| draftedFor | Long | ZUID of user the draft is being saved on behalf of. |
| disableComments | Boolean | Disable all comments on this post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link title. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post content body. Max 30,000 characters. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| announcementExpiryTime | Long | Expiry time for announcement. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link image URL. |
| videoUrl | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Video URL. |
| fileIds | Long | Comma-separated file IDs. |
| fromApproval | Boolean | If true, saving from an approval workflow. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link URL to attach. |
| streamMembers | Long | Private post member user IDs. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Title for special post types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction (ltr/rtl). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/saveDraftStream?scopeID=3000000000008&partitionID=3000000256092&partitionType=GROUP&streamContent=Work in progress — draft post.&streamType=STATUS' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | The saved draft post object (same structure as addStream). |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft post saved successfully.
{
"stream": {
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000090001,
"canComment": "true",
"type": "STATUS",
"content": "Work in progress — draft post.",
"status": "DRAFT"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a paginated list of draft posts.
Returns draft posts for the current user. You can filter the results by group, post type, user IDs, or status.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftPosts
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| fromEditor | Boolean | Whether the request comes from the editor context. |
| modifiedTime | Long | Pagination cursor — fetch drafts older than this timestamp. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Filter drafts by group ID. |
| userIds | String Allowed value:(matches: ^[a-zA-Z0-9_\.]+$) | Comma-separated user IDs to filter drafts by. |
| type | String Allowed value:(matches: drafter|finalAuthor) | Filter by relationship: 'drafter' (drafted by me) or 'finalAuthor' (drafted for me). |
| version | Integer | API version flag. |
| needMeta | Boolean | Whether to return only draft metadata instead of full posts. |
| status | String Allowed value:(matches: 4|13|14) | Comma-separated draft status codes to filter by (4=Draft, 13=Draft Approval, 14=Draft Rejected). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftPosts?scopeID=1000000008002&partitionId=3000000001234&type=drafter&version=1&status=4' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for the next page. |
| streams | JSON Array | Array of draft post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft posts retrieved successfully.
{
"modifiedTime": 1700000000000,
"streams": [
{
"formatedTime": "Apr 01, 2026",
"streamModifiedTime": 1700000000000,
"likeCount": 0,
"id": 3000000045678,
"time": 1700000000000,
"title": "Draft Blog Post",
"type": "BLOG",
"isApproved": false,
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"id": 60025012345,
"zuid": 60025012345
},
"content": "This is a draft...",
"status": "DRAFT",
"commentCount": 0
},
{
"formatedTime": "Apr 01, 2026",
"streamModifiedTime": 1700086400000,
"likeCount": 3,
"id": 3000000045679,
"time": 1700086400000,
"title": "Draft Blog Post (2)",
"type": "BLOG",
"isApproved": true,
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"id": 60025012345,
"zuid": 60025012345
},
"content": "This is a draft...",
"status": "DRAFT",
"commentCount": 3
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the full details of a drafted post.
Returns the details of a drafted post, including drafter information and review status. If the draft was rejected, the response also includes paginated rejection details.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftedEntity
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Draft post ID. Required. |
| pageIndex | Integer | Page index for rejection details pagination (0-based). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftedEntity?scopeID=1000000008002&streamId=3000000045678&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' when the post has been rejected. |
| stream | JSON Object | Full post object with draft metadata (first page only). |
| streamModifiedTime | Long | Last modification timestamp (epoch ms). |
| likeCount | Long | Number of likes. |
| title | String | Post title. |
| type | String | Post type (STATUS, BLOG, ANNOUNCEMENT, POLL, etc.). |
| userDetails | JSON Object | Author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Post body content. |
| commentCount | Integer | Number of comments. |
| formatedTime | String | Formatted creation time string. |
| partition | JSON Object | Group details. |
| id | Long | Post ID. |
| time | Long | Creation timestamp (epoch ms). |
| viewCount | Long | View count. |
| isApproved | Boolean | Whether the post is approved. |
| status | String | Post status (e.g. DRAFT, DRAFT_APPROVAL, DRAFT_REJECTED, ACTIVE). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Drafted entity retrieved successfully.
{
"stream": {
"formatedTime": "Apr 01, 2026",
"canReviewDraft": "true",
"draftedBy": {
"name": "John Doe",
"hasCustomImg": true,
"id": 60025012345,
"zuid": 60025012345
},
"streamModifiedTime": 1700000000000,
"id": 3000000045678,
"time": 1700000000000,
"title": "Draft Blog Post",
"type": "BLOG",
"isApproved": false,
"userDetails": {
"name": "Jane Smith",
"hasCustomImg": true,
"id": 60025012346,
"zuid": 60025012346
},
"content": "Full blog content here...",
"status": "DRAFT_APPROVAL"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the count of draft posts.
Returns the draft count for the current user. You can also filter the count by group.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftPostsCount
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/draftPostsCount
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Filter by group ID. |
| needDraftForCount | Boolean | Whether to include draft-for-others counts. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftPostsCount?scopeID=1000000008002&partitionId=3000000001234' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| draftsCount | Integer | Number of draft posts. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft posts count retrieved successfully.
{
"result": "success",
"draftsCount": 5
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Grants draft-for-others permission to users.
Grants draft permission for one or more users to create draft posts on behalf of the current user.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/addDraftPermission
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addDraftPermission
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdsMandatory | Long | Comma-separated user IDs (ZUIDs) to grant draft permission. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addDraftPermission?scopeID=1000000008002&userIds=60025012345,60025012346' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
| permissions | JSON Array | Array of newly created draft permission objects. |
| formattedAddedTime | String | Formatted date when the draft permission was granted. |
| role | String | Member role (e.g. MEMBER). |
| name | String | Display name of the user. |
| hasCustomImg | Boolean | Whether the user has a custom profile image. |
| canFollow | Boolean | Whether the caller can follow this user. |
| id | Long | User ID (same as zuid). |
| zuid | Long | User ID (ZUID) of the permitted user. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft permissions added successfully.
{
"result": "success",
"permissions": [
{
"formattedAddedTime": "Apr 01, 2026",
"role": "MEMBER",
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"id": 60025012345,
"zuid": 60025012345
},
{
"formattedAddedTime": "Apr 01, 2026",
"role": "MEMBER",
"name": "John Smith",
"hasCustomImg": false,
"canFollow": false,
"id": 60025012346,
"zuid": 60025012346
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the list of users with draft permissions.
Returns the list of users with draft permission who can create draft posts for or on behalf of the current user. Supports pagination.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftPermissions
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/draftPermissions
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| fromDraftedBy | Boolean | When true, returns users who the current user can draft for. When false, returns users who can draft for the current user. |
| pageIndex | Integer | Page index for pagination (0-based). |
| forFilter | Boolean | Whether the request is for filter purposes (returns all without pagination). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftPermissions?scopeID=1000000008002&fromDraftedBy=false&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| pageIndex | Integer | Next page index (present when more results exist). |
| permissions | JSON Array | Array of draft permission objects. |
| formattedAddedTime | String | Formatted date when the draft permission was granted. |
| role | String | Member role (e.g. MEMBER). |
| name | String | Display name of the user. |
| hasCustomImg | Boolean | Whether the user has a custom profile image. |
| canFollow | Boolean | Whether the caller can follow this user. |
| id | Long | User ID (same as zuid). |
| zuid | Long | User ID (ZUID) of the permitted user. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft permissions retrieved successfully.
{
"result": "success",
"pageIndex": 1,
"permissions": [
{
"formattedAddedTime": "Mar 15, 2026",
"role": "MEMBER",
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"id": 60025012345,
"zuid": 60025012345
},
{
"formattedAddedTime": "Mar 15, 2026",
"role": "MEMBER",
"name": "John Smith",
"hasCustomImg": false,
"canFollow": false,
"id": 60025012346,
"zuid": 60025012346
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Revokes draft-for-others permission from a user.
Removes a user's draft permission. This cannot be done if there are drafts waiting for approval.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteDraftPermission
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteDraftPermission
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIdMandatory | Long | ZUID of the user whose draft permission to revoke. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteDraftPermission?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft permission revoked successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the ZUIDs of users who have drafted for the current user.
Returns the list of user IDs that the current user has granted draft permission to.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftedByZuids
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftedByZuids?scopeID=1000000008002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| zuids | JSON Array | Array of ZUID values of users who have drafted for the current user. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Drafted-by ZUIDs retrieved successfully.
{
"result": "success",
"zuids": [
60025012345,
60025012346
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves draft-for-others counts.
Returns draft counts grouped by relationship, including draftedByCount, draftedForCount, and draftedByCountEditor.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/draftForOthersCount
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/draftForOthersCount
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftForOthersCount?scopeID=1000000008002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| draftedByCountEditor | Integer | Count of editor-mode drafts drafted by the current user. |
| draftedByCount | Integer | Count of drafts drafted by the current user. |
| draftedForCount | Integer | Count of drafts drafted for the current user (awaiting review). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft-for-others counts retrieved successfully.
{
"result": "success",
"draftedByCountEditor": 1,
"draftedByCount": 3,
"draftedForCount": 2
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Sends a reminder to the draft approver.
Sends a reminder to the final author for a draft that is waiting for approval.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/sendDraftReminder
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/sendDraftReminder
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Draft post ID awaiting approval. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/sendDraftReminder?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Reminder sent successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Rejects a draft post awaiting approval.
Rejects a draft post that was submitted for approval. Only the final author can do this. Returns the rejected post ID and updated draft counts.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/rejectDraft
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Draft post ID to reject. Required. |
| message | String Allowed value:(matches: (?ims)(.*?)) | Rejection reason message (max 250 characters). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/rejectDraft?scopeID=1000000008002&streamId=3000000045678&message=Please revise the introduction section.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
| draftedByCountEditor | Integer | Updated count of editor drafts drafted by the current user. |
| draftCount | Integer | Updated total draft count. |
| streamId | Long | ID of the rejected post. |
| draftedByCount | Integer | Updated count of drafts drafted by the current user. |
| draftedForCount | Integer | Updated count of drafts drafted for the current user. |
| draftStreams | JSON Array | Array of draft metadata objects. |
| formatedTime | String | Formatted creation time string. |
| canReviewDraft | String | 'true' if the caller can review this draft. |
| canEdit | String | 'true' if the drafter can edit. |
| createdTime | Long | Creation timestamp (epoch ms). |
| draftedBy | JSON Object | Author details of who created the draft. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canRemindAuthor | String | 'true' if the drafter can send a reminder. |
| canDelete | String | 'true' if the caller can delete this draft. |
| id | Long | Post ID. |
| type | String | Post type. |
| draftTitle | String | Truncated draft title (max 25 characters). |
| draftedFor | JSON Object | Author details of whom the draft is for. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| status | String | Post status. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft rejected successfully.
{
"result": "success",
"draftedByCountEditor": 0,
"draftCount": 3,
"streamId": 3000000045678,
"draftedByCount": 2,
"draftedForCount": 1,
"draftStreams": [
{
"formatedTime": "Apr 01, 2026",
"createdTime": 1700000000000,
"draftedBy": {
"name": "John Doe",
"id": 60025012345,
"zuid": 60025012345
},
"canDelete": "true",
"id": 3000000045678,
"type": "BLOG",
"draftTitle": "Draft Blog Post...",
"draftedFor": {
"name": "Jane Smith",
"id": 60025012346,
"zuid": 60025012346
},
"status": "DRAFT_REJECTED"
},
{
"formatedTime": "Apr 01, 2026",
"createdTime": 1700086400000,
"draftedBy": {
"name": "John Doe",
"id": 60025012345,
"zuid": 60025012345
},
"canDelete": "true",
"id": 3000000045679,
"type": "BLOG",
"draftTitle": "Draft Blog Post...",
"draftedFor": {
"name": "Jane Smith",
"id": 60025012346,
"zuid": 60025012346
},
"status": "DRAFT_REJECTED"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a poll post in the feed.
Create a poll with text and/or image options. Supports multiple selection, vote display settings, end date, and mandatory read announcements. Can be posted to a group or the network feed.
Rate limited to 5 requests per minute.
Request URL
https://ServerDomain/pulse/api/addPoll
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canEditVote | Boolean | If true, voters can change their vote. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| scopeID | Long | Network (scope) ID. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | If 1, voted users are visible. |
| question | String Allowed value:(matches: (?ims)(.*?)) | Poll question (rich-text HTML). Max 10,000 characters. |
| partitionId | Long | Target group ID. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| voteDisplayTypeMandatory | String Allowed value:(matches: 0|1|2) | Vote display — 0: count, 1: percentage, 2: hidden. Required. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| disableComments | Boolean | If true, disables comments. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| canDeclareResult | Boolean | If true, poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25 options, 200 chars each. |
| allowMultiple | Boolean | If true, allows selecting multiple options. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
| imageIds | Long | Image option IDs. Max 25. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addPoll?canEditVote=true&scopeID=3000000000008&canViewVotedUsers=1&question=Which day works best for the team outing?&voteDisplayType=0&textOption=Sunday&allowMultiple=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Created poll post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Poll created in network feed.
{
"result": "success",
"stream": {
"canLike": "true",
"canDisablePoll": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"polls": {
"canAddVote": "true",
"canViewVotedUsers": "true",
"totalVote": 0,
"options": [
{
"canDelete": "true",
"id": 3000000070011,
"option": "Friday"
},
{
"canDelete": "true",
"id": 3000000070012,
"option": "Saturday"
},
{
"canDelete": "true",
"id": 3000000070013,
"option": "Sunday"
}
],
"voteDisplayType": 0,
"isVoted": false,
"canShowResult": "true",
"whoCanViewVotedUsers": 1
},
"id": 3000000070010,
"canComment": "true",
"type": "POLL",
"content": "Which day works best for the team outing?",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds a new option to an existing poll.
Adds a text or image option to an existing poll, whether it is published or saved as a draft.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/addPollOption
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| imageId | Long | Image attachment ID for image poll option. |
| streamIdMandatory | Long | Poll post ID. Required. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text for poll option. Max 200 chars. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addPollOption?scopeID=3000000000008&streamId=3000000070001&textOption=Vue.js' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| option | JSON Object | The newly added poll option. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Poll option added.
{
"result": "success",
"option": {
"canDelete": "true",
"id": 3000000012347,
"option": "Vue.js"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Saves a poll as draft without publishing.
Creates a poll as a draft. You can publish it later by using addPoll with isPublish=true.
Rate limit: 5 requests per minute.
Request URL
https://ServerDomain/pulse/api/saveDraftPoll
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canEditVote | Boolean | Allow voters to change vote. |
| scopeID | Long | Network (scope) ID. |
| mustReadDueDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Mandatory read due date. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | 0=hidden, 1=visible. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| isDraft | Boolean | true to save as draft. |
| voteDisplayTypeMandatory | String Allowed value:(matches: 0|1|2) | Vote display: 0=count, 1=percentage, 2=hidden. |
| mustReadReminderDay | Integer | Reminder interval: 0, 1, 2, or 7 days. |
| createdYear | String Allowed value:(matches: ^(19|20)\d\d$) | Backdated creation year. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| canDeclareResult | Boolean | Allow creator to declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text option(s). Max 200 chars each, up to 25. |
| mustReadDueYear | String Allowed value:(matches: ^(19|20)\d\d$) | Mandatory read due year. |
| mustReadButtonText | String Allowed value:(matches: (?ims)(.*?)) | Mandatory read button text. |
| createdMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Backdated creation month. |
| imageIds | Long | Comma-separated image attachment IDs. Max 25. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction: ltr or rtl. |
| mustReadReminderHour | Integer | Reminder hour (0-23). |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| mustReadColor | String Allowed value:(matches: [1-5]) | Mandatory read badge color (1-5). |
| question | String Allowed value:(matches: (?ims)(.*?)) | Poll question. Max 10000 chars. |
| partitionId | Long | Group ID for the draft poll. |
| createdMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Backdated creation minute. |
| createdHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Backdated creation hour. |
| mustReadReminderMinute | Integer | Reminder minute: 0, 15, 30, or 45. |
| mustReadDescription | String Allowed value:(matches: (?ims)(.*?)) | Mandatory read description. |
| mustReadDueMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Mandatory read due month. |
| disableComments | Boolean | Disable all commenting. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| createdDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Backdated creation date. |
| allowMultiple | Boolean | Allow multiple option selection. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/saveDraftPoll?scopeID=3000000000008&isDraft=true&voteDisplayType=0&textOption=React&question=Which framework do you prefer?&partitionId=3000000060001&allowMultiple=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Full post object of the saved draft poll. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Draft poll saved. Returns full post object.
{
"stream": {
"question": "Which framework do you prefer?",
"isDraft": true,
"options": [
{
"canDelete": "true",
"id": 3000000012346,
"option": "React"
},
{
"canDelete": "true",
"id": 3000000012347,
"option": "React"
}
],
"id": 3000000012345,
"type": "poll"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Re-enables voting on a previously disabled poll.
Turns ON voting for a poll post. If successful, returns result=success.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/enablePoll
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Poll post ID to enable. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/enablePoll?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Poll voting re-enabled.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Disables voting on a poll (close the poll).
Turns OFF voting for a poll post to close the poll. If successful, returns result=success.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/disablePoll
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Poll post ID to disable. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/disablePoll?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Poll voting disabled.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Cast or change a vote on a poll option.
Votes for a poll option or remove your vote. Set isSelected=true to vote and isSelected=false to remove your vote. If successful, returns result=success with the updated poll details.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/addVoting
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Poll post ID. Required. |
| isSelectedMandatory | Boolean | true to vote, false to remove vote. Required. |
| optionIdMandatory | Long | Poll option ID to vote for. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addVoting?scopeID=1000000008002&streamId=3000000012345&isSelected=true&optionId=3000000012346' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| canDeclareResult | String | 'true' if the caller can declare the poll result. |
| polls | JSON Object | Updated poll state object. |
| canEditVote | Boolean | Whether the current user can change their vote. |
| canAddVote | String | 'true' if the current user can vote. |
| canViewVotedUsers | String | 'true' if the current user can view who voted. |
| totalVote | Integer | Total number of votes cast. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display type ordinal (0=DEFAULT, 1=SHOW_AFTER_VOTE, 2=SHOW_AFTER_ADMIN_APPROVAL). |
| allowmultiple | String | 'true' if the poll allows selecting multiple options. |
| isVoted | Boolean | Whether the current user has voted. |
| canShowResult | String | 'true' if the current user can see vote results. |
| whoCanViewVotedUsers | Integer | Permission level (0=admin only, 1=all). |
| canShowRemoveVote | String | 'true' if the current user can remove their vote. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Vote cast successfully.
{
"result": "success",
"polls": {
"totalVote": 10,
"options": [
{
"id": 3000000012346,
"voteCount": 6,
"option": "React"
},
{
"id": 3000000012347,
"voteCount": 4,
"option": "Vue.js"
}
],
"voteDisplayType": 0,
"isVoted": true,
"canShowResult": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve users who voted for a poll option.
Retrieve the list of users who voted for a specific poll option. Requires the caller to be the poll creator, a moderator, or canViewVotedUsers to be enabled (1).
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/votedMembers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Poll post ID. Required. |
| optionIdMandatory | Long | Poll option ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/votedMembers?scopeID=3000000000008&streamId=3000000070010&optionId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of user objects who voted for the option, via constructUsersDetails(). |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User does not have permission to view voted members.
{
"result": "failure",
"errorCode": "YOU_DONTHAVE_PERMISSION_TO_GETPOLL_USERS"
}
Users who voted for a poll option.
{
"usersDetails": [
{
"isFollowing": false,
"imageUrl": "/api/v1/getPhoto?userId=700000001",
"name": "John Doe",
"hasCustomImg": true,
"id": 700000001,
"type": "C",
"zuid": 700000001
},
{
"isFollowing": true,
"imageUrl": "/api/v1/getPhoto?userId=700000002",
"name": "Jane Smith",
"hasCustomImg": true,
"id": 700000002,
"type": "C",
"zuid": 700000002
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates a poll's question, options, and settings.
Updates a poll by changing the question, adding, removing, or reordering options, updating vote display settings, or modifying the end date. The poll end time must be set to a future time.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| newTextOptions | String Allowed value:(matches: (?ims)(.*?)) | New text options to add to the poll. |
| removedOptionIds | Long | Poll option IDs to remove. |
| existingOptions | JSON Array | Existing poll option updates (JSON array). Max 25 items. |
| canEditVote | Boolean | Whether voters can change their vote. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | Whether voted users are visible — 0: no, 1: yes. |
| streamIdMandatory | Long | Post ID to update. Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| partitionID | Long | Target partition ID for draft. |
| textOptions | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll (alias). Max 25. |
| isDraft | Boolean | If true, saves as draft. |
| voteDisplayType | String Allowed value:(matches: 0|1|2) | How votes are displayed — 0: count, 1: percentage, 2: hidden. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Announcement expiry year. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview description. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Announcement expiry date. |
| canDeclareResult | Boolean | Whether poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link URL. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated post title. Max 300 characters. |
| imageIds | Long | Image option IDs for the poll. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Announcement expiry month. |
| newPollImageIds | Long | New image option IDs to add to the poll. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| version | Integer | API version hint. |
| disableComments | Boolean | If true, disables comments. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview title. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Updated post body content (rich-text HTML). Max 30,000 characters. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link preview image URL. |
| allowMultiple | Boolean | Whether multiple option selection is allowed. |
| draftStreamType | String Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$) | Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA. |
| optionOrders | String Allowed value:(matches: (?ims)(.*?)) | Poll option display order. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateStream?newTextOptions=Saturday,Sunday&removedOptionIds=3000000090003&scopeID=3000000000008&streamId=3000000070005&voteDisplayType=1&expiryYear=2026&expiryDate=26&streamTitle=Add dark mode to the mobile and desktop apps&expiryMonth=3&categoryIds=3000000080001,3000000080002&streamContent=Extended idea: dark mode for both mobile and desktop.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Updated post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Poll updated with new options.
{
"result": "success",
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070010,
"canComment": "true",
"type": "POLL",
"content": "Which day works best for the team outing? (Updated)",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds members or groups to a private post.
Adds users or groups to a private post. You can add up to 10 user IDs and 10 group IDs in a single request. If successful, returns result=success along with any IDs that could not be added.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/addStreamMembers
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addStreamMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| userIds | Long | Comma-separated ZUIDs. Max 10. |
| partitionIds | Long | Comma-separated group IDs. Max 10. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addStreamMembers?scopeID=3000000000008&streamId=3000000045001&userIds=60028305,60028306&partitionIds=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Members added to the private post.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve members of a private post.
Returns the member list (usersDetails) and group list (partitions) included in a private post. Also returns canManageUsers flag for the post creator.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamMembers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamMembers?scopeID=3000000000008&streamId=3000000045001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| partitions | JSON Array | Array of group objects added to the post. |
| usersDetails | JSON Array | Array of user member objects. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canManageUsers | String | 'true' if the caller is the post creator. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns user members and group members of the private post.
{
"partitions": [
{
"canManage": "true",
"name": "Engineering",
"id": 3000000070001
},
{
"canManage": "true",
"name": "Engineering 2",
"id": 3000000070002
}
],
"usersDetails": [
{
"canManage": "true",
"isFollowing": false,
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"id": 60028305,
"zuid": 60028305
},
{
"canManage": "true",
"isFollowing": true,
"name": "John Smith",
"hasCustomImg": false,
"canFollow": false,
"id": 60028306,
"zuid": 60028306
}
],
"canManageUsers": "true"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Remove members or groups from a private post.
Removes users or groups from a private post. You can remove up to 10 user IDs and 10 group IDs in a single request. If successful, returns result=success along with any IDs that could not be removed.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteStreamMembers
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteStreamMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| userIds | Long | Comma-separated ZUIDs. Max 10. |
| partitionIds | Long | Comma-separated group IDs. Max 10. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteStreamMembers?scopeID=3000000000008&streamId=3000000045001&userIds=60028305&partitionIds=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Members removed from the private post.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds a comment to a post.
Add a comment to a post. Supports threaded replies via parentCommentId, file attachments, private comments, and best-answer marking for townhall Q&A.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addComment
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| commentMembers | Long | Comma-separated ZUIDs for private comment recipients. Max 20. |
| streamId | Long | Post ID to comment on. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| parentCommentId | Long | Parent comment ID for threaded replies. Omit for top-level comments. |
| isThread | Boolean | If true, indicates threaded comment. |
| commentContent | String Allowed value:(matches: (?ims)(.*?)) | Comment body (rich-text HTML). Max 10,000 characters. |
| isPrivate | Boolean | If true, creates a private comment. |
| version | Integer | API version hint. |
| isAnswer | Boolean | If true, marks as best answer (townhall Q&A). |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addComment?scopeID=3000000000008&streamId=3000000070001&commentContent=Great update! Thanks for sharing.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| comment | JSON Object | Created comment object. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Threaded reply to a comment.
{
"comment": {
"streamType": "STATUS",
"streamId": 3000000070001,
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"parentCommentId": 3000000080001,
"id": 3000000080002,
"content": "Thanks Jane! Glad it was helpful."
}
}
Comment added to a post.
{
"comment": {
"streamType": "STATUS",
"streamId": 3000000070001,
"author": {
"name": "Jane Smith",
"hasCustomImg": false,
"zuid": 700000002
},
"parentCommentId": 0,
"id": 3000000080001,
"content": "Great update! Thanks for sharing."
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates an existing comment.
Updates a comment’s content, attachments, and file order. Returns the updated comment details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateComment
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| commentIdMandatory | Long | Comment ID to update. Required. |
| isThread | Boolean | If true, indicates threaded comment. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| commentContent | String Allowed value:(matches: (?ims)(.*?)) | Updated comment body (rich-text HTML). Max 10,000 characters. |
| version | Integer | API version hint. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateComment?scopeID=1000000008002&commentId=3000000067890&commentContent=Updated comment text' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| comment | JSON Object | The updated comment object. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment updated.
{
"comment": {
"formatedTime": "Apr 01, 2026",
"streamType": "STATUS",
"attachments": [],
"streamId": 3000000012345,
"canEdit": "true",
"commentType": "COMMENT",
"hasHistory": "true",
"likeCount": 0,
"id": 3000000067890,
"time": 1700000000000,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Updated comment text"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds multiple members to a private comment thread.
Add multiple users to a private comment at once. If some users cannot be added, the response includes partial failure details.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/addCommentMembers
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addCommentMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIds | Long | Comma-separated ZUIDs of users to add. Max 10. |
| commentIdMandatory | Long | Comment ID to add members to. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addCommentMembers?scopeID=3000000000008&userIds=60012345678,60012345679&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' — returned even on partial failure. |
| failedUsers | JSON Array | Users that could not be added. Only present on partial failure. |
| userId | Long | ZUID of the user that could not be added. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Some members could not be added.
{
"result": "success",
"failedUsers": [
{
"userId": 60012345679
},
{
"userId": 60012345680
}
]
}
All members added.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves a single comment by ID.
Returns a single comment with full details including author, attachments, and metadata.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/comment
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentIdMandatory | Long | Comment ID. Required. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/comment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| comment | JSON Object | The comment object. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment retrieved.
{
"comment": {
"attachments": [],
"streamId": 3000000012345,
"isCurrentUserLiked": false,
"canEdit": "true",
"likeCount": 3,
"isPinnedComment": false,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Great post!",
"formatedTime": "Apr 01, 2026",
"streamType": "STATUS",
"commentType": "COMMENT",
"canDelete": "true",
"id": 3000000067890,
"time": 1700000000000,
"isApproved": true
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves all comments for a post.
Returns all comments for a post. Supports thread view, recent view, most discussed, and most reacted sorting.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/allComments
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isActivities | Boolean | If true, includes task activity comments. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| isRecent | Boolean | If true, returns most recent comments first. |
| commentView | String Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED) | Comment view mode. |
| commentType | String Allowed value:(matches: COMMENT|ANSWER) | Filter by comment type — COMMENT or ANSWER. |
| isThread | Boolean | If true, returns threaded comments. |
| version | Integer | API version hint. |
| includeUnapproved | Boolean | If true, includes unapproved/moderated comments. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allComments?scopeID=1000000008002&streamId=3000000012345&commentView=RECENT' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — modifiedTime of the last comment. |
| comments | JSON Array | Array of comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
All comments retrieved.
{
"comments": [
{
"streamId": 3000000012345,
"commentType": "COMMENT",
"likeCount": 3,
"id": 3000000067890,
"time": 1700000000000,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Great post!"
},
{
"streamId": 3000000012345,
"commentType": "COMMENT",
"likeCount": 1,
"id": 3000000067891,
"time": 1700000001000,
"userDetails": {
"name": "John Doe",
"hasCustomImg": false,
"id": 60000000002,
"zuid": 60000000002
},
"content": "Thanks!"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves additional comments for a post (pagination).
Loads more comments for a post using cursor-based pagination.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/moreComments
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/moreComments
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — last comment's modified time. |
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID. Required. |
| commentLimit | Integer | Maximum number of comments to return. |
| commentType | String Allowed value:(matches: COMMENT|ANSWER) | Filter by comment type — COMMENT or ANSWER. |
| includeUnapproved | Boolean | If true, includes unapproved/moderated comments. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/moreComments?scopeID=1000000008002&streamId=3000000012345&commentLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — modifiedTime of the last comment. |
| comments | JSON Array | Array of comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
More comments retrieved.
{
"modifiedTime": 1700000001000,
"comments": [
{
"formatedTime": "Apr 01, 2026",
"streamId": 3000000012345,
"commentType": "COMMENT",
"likeCount": 1,
"id": 3000000067891,
"time": 1700000001000,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Thanks!"
},
{
"formatedTime": "Apr 01, 2026",
"streamId": 3000000012346,
"commentType": "COMMENT",
"likeCount": 4,
"id": 3000000067892,
"time": 1700086401000,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Thanks!"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves additional pinned comments for a post.
Returns pinned comments using cursor-based pagination to load additional results.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/morePinnedComments
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/morePinnedComments
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pinnedTimeMandatory | Long | Pagination cursor — last pinned comment's pinned time. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| commentType | String Allowed value:(matches: COMMENT|ANSWER) | Filter by comment type — COMMENT or ANSWER. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/morePinnedComments?pinnedTime=1700000000000&scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pinnedComments | JSON Array | Array of pinned comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
More pinned comments retrieved.
{
"pinnedComments": [
{
"formatedTime": "Apr 01, 2026",
"streamId": 3000000012345,
"commentType": "COMMENT",
"likeCount": 2,
"id": 3000000067892,
"time": 1700000002000,
"isPinnedComment": true,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Pinned update"
},
{
"formatedTime": "Apr 01, 2026",
"streamId": 3000000012346,
"commentType": "COMMENT",
"likeCount": 5,
"id": 3000000067893,
"time": 1700086402000,
"isPinnedComment": false,
"userDetails": {
"name": "Jane Doe",
"hasCustomImg": true,
"id": 60000000001,
"zuid": 60000000001
},
"content": "Pinned update"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves private (members-only) comments on a post.
Returns a list of private comments, along with the parent post, member details, and privateCommentCount.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamPrivateComments
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/streamPrivateComments
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamId | Long | Post ID to fetch private comments for. |
| commentId | Long | Comment ID for pagination (return comments before this ID). |
| version | Integer | Version parameter for compatibility. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamPrivateComments?scopeID=3000000000008&streamId=3000000070001&commentId=3000000090001&version=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| isCommentBot | Boolean | Whether the comment is from a bot. Conditional. |
| modifiedTime | Long | Epoch ms for pagination cursor. Conditional. |
| comments | JSON Array | Array of private comment objects via constructComment(). |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| stream | JSON Object | Parent post context object. |
| streamUrl | String | Relative post URL. Conditional. |
| partitionUrl | String | Absolute partition URL. Conditional. |
| createdBy | Long | ZUID of the post creator. Conditional. |
| partitionId | Long | Partition ID. Conditional. |
| id | Long | Post ID. |
| type | String | StreamType enum (STATUS, QUESTION, etc.). |
| partitionType | String | PartitionType enum (GROUP, TOWNHALL, etc.). Conditional. |
| url | String | Absolute post URL. Conditional. |
| members | JSON Array | Array of member objects. Conditional: TASK in project or PAGE type. |
| member | Long | ZUID of the member. |
| privateCommentCount | Integer | Count of private comments. Conditional: only when commentId is null and streamId is provided. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Private comments retrieved successfully.
{
"result": "success",
"comments": [],
"stream": {
"id": 3000000070001,
"type": "STATUS"
},
"members": [],
"privateCommentCount": 5
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Sets or remove the best (accepted) comment on a post.
Passes commentId to mark a comment as the best comment. Omit it or pass -1 to remove the best comment. The native API returns only result, the web API returns result and post, and the remove action returns status and result.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBestComment
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateBestComment
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID on which to set/remove best comment. Required. |
| commentId | Long | Comment ID to mark as best. Omit or pass -1 to remove best comment. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBestComment?scopeID=3000000000008&streamId=3000000070001&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Full post object. Conditional: only for web set-best-comment (not native, not remove). |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| status | String | 'removedBestComment' when removing best comment. Conditional. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Best comment removed.
{
"result": "success",
"status": "removedBestComment"
}
Best comment set (native API).
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves all tags associated with a specific comment.
Returns a list of tags, including tagName, tagId, and isFollowing.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/getCommentTags
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentIdMandatory | Long | Comment ID to fetch tags for. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getCommentTags?scopeID=3000000000008&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| tags | JSON Array | Array of tag wrapper objects. |
| tag | JSON Object | Tag object. |
| isFollowing | Boolean | Whether the current user follows this tag. Conditional: only present if true. |
| tagId | Long | Tag ID. |
| tagName | String | Tag display name (HTML-escaped for web, raw for native). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tags retrieved for comment.
{
"tags": [
{
"tag": {
"isFollowing": true,
"tagId": 112233,
"tagName": "ProjectAlpha"
}
},
{
"tag": {
"isFollowing": true,
"tagId": 112233,
"tagName": "ProjectAlpha"
}
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a comment from a post.
Deletes a comment using its ID and returns result=success if the operation is successful.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteComment
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentIdMandatory | Long | Comment ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteComment?scopeID=3000000000008&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment deleted successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes multiple members from a private comment in bulk.
Removes up to 10 members from a private comment. Returns result=success on success, and includes a failedUsers array for any members that could not be removed.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteCommentMembers
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteCommentMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIds | Long | Comma-separated ZUIDs of members to remove (max 10). |
| commentIdMandatory | Long | Comment ID from which to remove members. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteCommentMembers?scopeID=3000000000008&userIds=60028305,60028306&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Always 'success', even if some users failed. |
| failedUsers | JSON Array | Array of users that could not be removed. Conditional: only present when failures occur. |
| userId | Long | ZUID of the user that could not be added. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Members removed. failedUsers present if any failed.
{
"result": "success",
"failedUsers": [
{
"userId": 60028306
},
{
"userId": 60028307
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Likes (react to) a post.
Likes a post. For Idea/Townhall posts, returns upvoteCount and downvoteCount. For regular posts, returns reactionType, likeCount, reactions[], and likes[].
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/likeStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to like. Required. |
| likeType | Integer | Reaction type (e.g., like, love, etc.). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/likeStream?scopeID=3000000000008&streamId=3000000070001&likeType=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| downvoteCount | Integer | Downvote count. Conditional: Idea/Townhall posts only. |
| reactionType | String | Current user's reaction type. Conditional: regular posts only. |
| likeCount | Integer | Total like count. Conditional: regular posts only. |
| reactions | JSON Array | Top 3 most-used reaction types. Conditional: regular posts only. |
| reactionType | JSON Object | Reaction type details. |
| count | Integer | Number of users with this reaction. |
| type | String | LikeType enum (LIKE, LOVE, etc.). |
| upvoteCount | Integer | Upvote count. Conditional: Idea/Townhall posts only. |
| likes | JSON Array | Up to 5 users who liked. Conditional: regular posts only. |
| user | JSON Object | User who liked. |
| name | String | User display name. |
| zuid | Long | User ZUID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Like an Idea/Townhall post (upvote/downvote).
{
"result": "success",
"downvoteCount": 3,
"upvoteCount": 12
}
Like a regular post (reactions).
{
"result": "success",
"reactionType": "LIKE",
"likeCount": 25,
"reactions": [
{
"reactionType": {
"count": 20,
"type": "LIKE"
}
},
{
"reactionType": {
"count": 20,
"type": "LIKE"
}
}
],
"likes": [
{
"user": {
"name": "User Name",
"zuid": 111111
}
},
{
"user": {
"name": "User Name",
"zuid": 111111
}
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a like (reaction) from a post.
Unlikes a post. For Idea/Townhall posts, returns upvoteCount and downvoteCount. For regular posts, returns likeCount, reactions[], and likes[] (does not include reactionType).
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unlikeStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to unlike. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlikeStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| downvoteCount | Integer | Downvote count. Conditional: Idea/Townhall posts only. |
| likeCount | Integer | Total like count. Conditional: regular posts only. |
| reactions | JSON Array | Top 3 most-used reaction types. Conditional: regular posts only. |
| reactionType | JSON Object | Reaction type details. |
| count | Integer | Number of users with this reaction. |
| type | String | LikeType enum (LIKE, LOVE, etc.). |
| upvoteCount | Integer | Upvote count. Conditional: Idea/Townhall posts only. |
| likes | JSON Array | Up to 5 users who liked. Conditional: regular posts only. |
| user | JSON Object | User who liked. |
| name | String | User display name. |
| zuid | Long | User ZUID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Unlike an Idea/Townhall post.
{
"result": "success",
"downvoteCount": 3,
"upvoteCount": 11
}
Unlike a regular post.
{
"result": "success",
"likeCount": 24,
"reactions": [
{
"reactionType": {
"count": 19,
"type": "LIKE"
}
},
{
"reactionType": {
"count": 19,
"type": "LIKE"
}
}
],
"likes": [
{
"user": {
"name": "User Name",
"zuid": 111111
}
},
{
"user": {
"name": "User Name",
"zuid": 111111
}
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Likes (react to) a comment.
Likes or reacts to a comment. For Townhall answer comments, returns upvoteCount and downvoteCount. For regular comments, returns reactionType, likeCount, and reactions[].
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/likeComment
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamId | Long | Post ID the comment belongs to. |
| commentIdMandatory | Long | Comment ID to like. Required. |
| likeType | Integer | Reaction type ordinal (e.g., 0=LIKE). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/likeComment?scopeID=1000000008002&commentId=3000000067890&likeType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| downvoteCount | Integer | Downvote count. For townhall answer comments only. |
| reactionType | String | Reaction type of the current user (e.g., 'LIKE'). For regular comments. |
| likeCount | Long | Total like count after liking. |
| reactions | JSON Array | Array of reaction type objects with type and count. For regular comments. |
| upvoteCount | Integer | Upvote count. For townhall answer comments only. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment liked.
{
"result": "success",
"reactionType": "LIKE",
"likeCount": 5,
"reactions": [
{
"count": 5,
"type": "LIKE"
},
{
"count": 8,
"type": "LIKE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a like (reaction) from a comment.
Unlikes a comment. For Townhall answer comments, returns upvoteCount and downvoteCount. For regular comments, returns likeCount and reactions[].
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unlikeComment
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamId | Long | Post ID the comment belongs to. |
| commentIdMandatory | Long | Comment ID to unlike. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlikeComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| downvoteCount | Integer | Downvote count. For townhall answer comments only. |
| likeCount | Integer | Total like count after unliking. |
| reactions | JSON Array | Array of reaction type objects with type and count. For regular comments. |
| upvoteCount | Integer | Upvote count. For townhall answer comments only. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment unliked.
{
"result": "success",
"likeCount": 4,
"reactions": [
{
"count": 4,
"type": "LIKE"
},
{
"count": 7,
"type": "LIKE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves users who liked a post.
Returns a list of users who liked the specified post, with optional filtering by reaction type and a breakdown of reactions.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamLikedMembers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/streamLikedMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor. |
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID. Required. |
| reactionType | String Allowed value:(matches: 0|1|2|3|4|5|6|7|8) | Filter by reaction type (0-8). Omit for all reactions. |
| needReactions | Boolean | If true, include reaction breakdown. |
| fetchAll | Boolean | If true, fetch all liked members at once. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamLikedMembers?modifiedTime=1742464200000&scopeID=3000000000008&streamId=3000000045001&reactionType=0&needReactions=true&fetchAll=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of user objects who liked the post. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| reactions | JSON Array | Reaction breakdown array. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns users who liked the post with reaction breakdown.
{
"usersDetails": [
{
"isFollowing": false,
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"likeType": 0,
"id": 60028305,
"zuid": 60028305
},
{
"isFollowing": true,
"name": "John Smith",
"hasCustomImg": false,
"canFollow": false,
"likeType": 1,
"id": 60028306,
"zuid": 60028306
}
],
"reactions": [
{
"reactionType": {
"count": 5,
"type": 0
}
},
{
"reactionType": {
"count": 5,
"type": 0
}
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves users who liked a comment.
Retrieves users who liked or reacted to a specific comment, with support for reaction type filtering and cursor-based pagination using modifiedTime.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/commentLikedMembers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/commentLikedMembers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — pass from previous response. |
| scopeID | Long | Network (scope) ID. |
| reactionType | String Allowed value:(matches: 0|1|2|3|4|5|6|7|8) | Filter by reaction type ordinal. |
| needReactions | Boolean | If true, includes reaction type counts in response. |
| commentIdMandatory | Long | Comment ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/commentLikedMembers?scopeID=1000000008002&needReactions=true&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canExport | Boolean | true if the caller is a partition admin (can export data). |
| modifiedTime | Long | Pagination cursor — pass as modifiedTime for the next page. |
| usersDetails | JSON Array | Array of user objects who liked the comment. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| reactions | JSON Array | Array of reaction type objects with type and count. Only when needReactions=true. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment liked members retrieved.
{
"usersDetails": [
{
"reactionType": "LIKE",
"name": "Jane Doe",
"zuid": 60000000001
},
{
"reactionType": "LIKE",
"name": "Alice Smith",
"zuid": 60000000002
}
],
"reactions": [
{
"count": 3,
"type": "LIKE"
},
{
"count": 6,
"type": "LIKE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Uploads a temporary file attachment.
Uploads a file for use in a post, comment, or poll. Uses multipart/form-data and rejects executable files.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/uploadFiles
Scope
ZohoPulse.attachments.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isEmbedImage | Boolean | true if file is an embedded image. |
| scopeID | Long | Network (scope) ID. |
| isPoll | Boolean | true if file is for a poll option image. |
- Request Body
multipart/form-data
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| previewFile | Binary |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/uploadFiles?isEmbedImage=false&scopeID=3000000000008&isPoll=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'Sample Request Body
{
"previewFile": "string"
}
Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| uploadedFiles | JSON Array | Array of successfully uploaded files. |
| attachmentId | Long | Attachment ID of the uploaded file. |
| notUploadedFiles | JSON Array | Array of files that failed validation. Only present on partial failure. |
| fileInfo | JSON Object | Details about the failed upload. |
| fileIndex | Integer | Zero-based index of the file in the request. |
| message | String | Reason the file was not uploaded. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
File uploaded.
{
"uploadedFiles": [
{
"attachmentId": 3000000012345
},
{
"attachmentId": 3000000012346
}
],
"notUploadedFiles": []
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Renames a previously uploaded attachment.
Updates the display name of an attachment file.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateAttachFileName
Scope
ZohoPulse.attachments.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateAttachFileName
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| fileNameMandatory | String Allowed value:(matches: (?ims)(.*?)) | New file name. Max 1000 chars. Required. |
| isCommentAttachment | Boolean | true if renaming a comment attachment. |
| isTempAttachment | Boolean | true if renaming a temp (not-yet-posted) attachment. |
| fileIdMandatory | Long | Attachment file ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateAttachFileName?scopeID=3000000000008&fileName=report-final.pdf&isCommentAttachment=false&isTempAttachment=true&fileId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| fileName | String | New file name after rename. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Attachment renamed.
{
"result": "success",
"fileName": "report-final.pdf"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Checks video processing status in temporary storage.
Polls the processing status of a previously uploaded video.
Rate limited to 150 requests per minute.
Request URL
https://ServerDomain/pulse/api/checkVideoUploadedInTemp
Scope
ZohoPulse.attachments.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/checkVideoUploadedInTemp
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| isStreamAttachment | Boolean | true if video is for a post attachment. |
| fileIdMandatory | Long | Temp file ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/checkVideoUploadedInTemp?scopeID=3000000000008&isStreamAttachment=true&fileId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success', 'In progress', or 'failure'. |
| fileId | Long | File ID of the video being processed. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Video processing complete.
{
"result": "success",
"fileId": 3000000012345
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Delete a temporary file before it is attached.
Removes a temp file from the server before it is added to a post or comment.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deletePreviewFile
Scope
ZohoPulse.attachments.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deletePreviewFile
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| fileIdMandatory | Long | Temp file ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePreviewFile?scopeID=3000000000008&fileId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Temp file deleted.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Gets all tags for a post.
Returns all tags associated with a specific post.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/getStreamTags
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getStreamTags?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| tags | JSON Array | Array of tag objects. |
| isFollowing | Boolean | Whether the current user follows this tag. |
| tagId | Long | Tag ID. |
| tagName | String | Tag name. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post tags retrieved.
{
"tags": [
{
"isFollowing": true,
"tagId": 3000000056789,
"tagName": "release"
},
{
"tagId": 3000000056790,
"tagName": "update"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a tag.
Starts following a tag to receive updates for posts with this tag.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/followTag
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| tagIdMandatory | Long | Tag ID to follow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followTag?scopeID=1000000008002&tagId=3000000056789' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unfollows a tag.
Stops following a tag.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unFollowTag
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| tagIdMandatory | Long | Tag ID to unfollow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unFollowTag?scopeID=1000000008002&tagId=3000000056789' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Gets the list of users following a tag.
Returns details of all users who follow a specific tag by name.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/getTagFollowersDetails
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getTagFollowersDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| tagnameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Tag name to look up followers for. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getTagFollowersDetails?scopeID=1000000008002&tagname=release' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| tag | JSON Object | Tag details with followers list. |
| tagname | String | Tag name. |
| tagId | Long | Tag ID. |
| followersDetails | JSON Array | Array of user objects who follow this tag. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| followersCount | Integer | Number of followers for this tag. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag followers retrieved.
{
"tag": {
"tagname": "release",
"tagId": 3000000056789,
"followersDetails": [
{
"name": "Jane Doe",
"emailId": "jane.doe@example.com",
"zuid": 60000000001
},
{
"name": "Alice Smith",
"emailId": "alice.smith@example.com",
"zuid": 60000000002
}
],
"followersCount": 2
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Gets all available tags in the network.
Returns a paginated list of all available tags. You can also search for tags by name.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/getAllAvailableTags
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getAllAvailableTags
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| pageIndex | Integer | Page index for pagination (0-based). |
| searchByTagName | String Allowed value:(matches: (?ims)(.*?)) | Filter tags by name (partial match). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getAllAvailableTags?scopeID=1000000008002&pageIndex=0&searchByTagName=release' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| fetchMore | Boolean | true when pagination was requested. |
| allTags | JSON Array | Array of tag objects with post counts. |
| tagname | String | Tag name. |
| postCount | Integer | Number of posts with this tag. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Available tags retrieved.
{
"allTags": [
{
"tagname": "release",
"postCount": 15
},
{
"tagname": "update",
"postCount": 8
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Gets trending tags for a group or board.
Retrieves trending tags for a specific partition, such as a group or board.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/getTrendingTags
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getTrendingTags
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getTrendingTags?scopeID=1000000008002&partitionId=3000000099001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| tags | JSON Array | Array of trending tag objects with post counts. |
| tagname | String | Tag name. |
| postCount | Integer | Number of posts with this tag. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Trending tags retrieved.
{
"tags": [
{
"tagname": "release",
"postCount": 42
},
{
"tagname": "announcement",
"postCount": 30
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Get posts tagged with a specific tag.
Retrieves a paginated list of feed posts associated with the specified tag. The response includes both the tag metadata and the list of related posts.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/tagStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Fetch posts modified after this timestamp. |
| scopeID | Long | Network (scope) ID. |
| pageIndex | Integer | Page index for pagination (0-based). |
| commentLimit | Integer | Number of comments to include per post. |
| startTime | Long | Filter posts created after this timestamp. |
| streamLimit | Integer | Number of posts per page (5–20). |
| endTime | Long | Filter posts created before this timestamp. |
| tagNameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Tag name to filter posts by. Required. |
| version | Integer | API version flag. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/tagStreams?scopeID=1000000008002&pageIndex=0&commentLimit=3&streamLimit=10&tagName=release' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streams | JSON Array | Array of post objects tagged with this tag. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| tag | JSON Object | Tag metadata. |
| tagname | String | Tag name. |
| isFollowing | Boolean | Whether the current user follows this tag. |
| tagId | Long | Tag ID. |
| postCount | Integer | Number of posts with this tag. |
| followersCount | Integer | Number of followers for this tag. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag posts retrieved.
{
"streams": [
{
"streamId": 3000000012345,
"createdTime": 1700000000000,
"title": "v2.0 Release Notes",
"type": "STATUS",
"content": "We are excited to announce..."
},
{
"streamId": 3000000012346,
"createdTime": 1700086400000,
"title": "v2.0 Release Notes (2)",
"type": "STATUS",
"content": "We are excited to announce..."
}
],
"tag": {
"tagname": "release",
"isFollowing": true,
"tagId": 3000000056789,
"postCount": 15,
"followersCount": 5
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Marks a post as mandatory read with optional due date and acknowledgement button.
Marks a post as mandatory to read. If successful, returns result=success along with the must-read configuration details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/markAsMustRead
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markAsMustRead
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| buttonText | String Allowed value:(matches: (?ims)(.*?)) | Custom acknowledgement button text (max 100 chars). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to mark as mandatory read. Required. |
| color | String Allowed value:(matches: [1-5]) | Color theme (1-5). |
| dueMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Due date month (1-12). |
| dueDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Due date day (1-31). |
| description | String Allowed value:(matches: (?ims)(.*?)) | Mandatory read description/instructions (max 500 chars). |
| reminderHour | Integer | Reminder hour of day (0-23). |
| reminderMinute | Integer | Reminder minute (0, 15, 30, or 45). |
| reminderDay | Integer | Reminder interval in days before due (0, 1, 2, or 7). |
| dueYear | String Allowed value:(matches: ^(19|20)\d\d$) | Due date year. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/markAsMustRead?buttonText=Acknowledge&scopeID=3000000000008&streamId=3000000070001&color=1&dueMonth=4&dueDate=15&description=Please read and acknowledge&reminderHour=10&reminderMinute=0&reminderDay=2&dueYear=2026' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| mustRead | JSON Object | Mandatory read configuration object. |
| buttonText | String | Custom acknowledgement button text. |
| color | Integer | Color theme (1-5). |
| dueMonth | Integer | Due date month (1-indexed). Conditional. |
| dueDate | Integer | Due date day. Conditional. |
| description | String | Mandatory read description/instructions. |
| dueYear | Integer | Due date year. Conditional: only if due date set. |
| mustReadDueFormattedTime | String | Formatted due date. Conditional: only if due date set. |
| mustReadDueTime | Long | Due date epoch ms. Conditional: only if due date set. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post marked as mandatory read.
{
"result": "success",
"mustRead": {
"buttonText": "Acknowledge",
"color": 1,
"dueMonth": 4,
"dueDate": 15,
"description": "Please read and acknowledge",
"dueYear": 2026
},
"mustReadDueFormattedTime": "Apr 15, 2026",
"mustReadDueTime": 1681516800000
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes the mandatory read designation from a post.
Unmarks a post as mandatory read. If successful, returns result=success.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unMarkAsMustRead
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unMarkAsMustRead
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to unmark. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unMarkAsMustRead?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Mandatory read designation removed.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the current mandatory read reminder settings for a post.
Returns the reminder settings in days, hours, or minutes. Returns an empty object if no reminder is set.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/mustReadReminder
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/mustReadReminder
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to get reminder settings for. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mustReadReminder?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. Conditional: only when alarm exists. |
| min | Integer | Minute (0-59). Conditional: only when alarm exists. |
| hour | Integer | Hour of day (0-23). Conditional: only when alarm exists. |
| day | Long | Days before due time. Conditional: only when alarm exists. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Reminder settings retrieved.
{
"result": "success",
"min": 30,
"hour": 10,
"day": 2
}
No reminder set.
{}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves posts marked as mandatory read.
Returns a paginated list of posts marked as mandatory to read. You can filter by mandatory read status and paginate results using modifiedTime.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/mustReadPosts
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). Alias for lastModifiedTime. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| lastModifiedTime | Long | Pagination cursor (epoch ms). Alias: modifiedTime. |
| filterType | String Allowed value:(matches: ^(unread|all)$) | Filter by mandatory read status — e.g. unread only. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mustReadPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of mandatory read post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Mandatory read posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "ANNOUNCEMENT",
"streamId": 3000000012002,
"content": "Important policy update"
},
{
"streamType": "ANNOUNCEMENT",
"streamId": 3000000012003,
"content": "Important policy update"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Marks a mandatory read post as read by the current user.
Marks a mandatory read post as read. If successful, returns result=success.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/markStreamAsRead
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markStreamAsRead
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to mark as read. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/markStreamAsRead?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post marked as read.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the list of users who have read (or not read) a mandatory read post.
Returns the list of usersDetails who have read or not read the post, along with the total counts and pagination details.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamReadUsers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/streamReadUsers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | Sort direction: true for ascending. |
| modifiedTime | Long | Pagination cursor (epoch ms). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| searchTerm | String Allowed value:(matches: cleartext:removehtmlentities) | Filter users by name search. |
| streamIdMandatory | Long | Post ID (must be a mandatory read post). Required. |
| pageIndex | Integer | Page index for pagination. |
| sortByType | String Allowed value:(matches: (byTime|byAlpha)) | Sort field: byTime or byAlpha. |
| isUnread | Boolean | If true, return unread users; if false, return read users. |
| isClientUsers | Boolean | If true, return client/guest users. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamReadUsers?isAscSort=false&modifiedTime=1680000000000&scopeID=3000000000008&searchTerm=John&streamId=3000000070001&pageIndex=1&sortByType=byTime&isUnread=false&isClientUsers=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | Echoed sort direction. Conditional. |
| modifiedTime | Long | Pagination cursor (epoch ms). Conditional. |
| usersDetails | JSON Array | Array of user objects with read status. |
| role | String | User role. Conditional. |
| name | String | User display name. |
| hasCustomImg | Boolean | Whether user has a custom image. Conditional. |
| readTime | Long | Epoch ms when user read the post. Conditional: read users only. |
| id | Long | User ID. |
| designation | String | User designation. Conditional. |
| department | String | User department. Conditional. |
| zuid | Long | User ZUID. |
| status | Integer | User status. |
| formattedReadTime | String | Display-formatted read time. Conditional: read users only. |
| searchTerm | String | Echoed search term. Conditional. |
| pageIndex | Integer | Page index. Conditional. |
| readUsersCount | Integer | Total read users count. Conditional: first page only. |
| unreadUsersCount | Integer | Total unread users count. Conditional: first page only. |
| sortByType | String | Echoed sort field. Conditional. |
| isClientUsers | String | 'true' when switching to client users. Conditional. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Read users retrieved.
{
"usersDetails": [
{
"name": "User Name",
"readTime": 1680000000000,
"id": 60028305,
"zuid": 60028305,
"formattedReadTime": "Mar 31, 2026 10:00 AM"
},
{
"name": "User Smith",
"readTime": 1680086400000,
"id": 60028306,
"zuid": 60028306,
"formattedReadTime": "Mar 31, 2026 10:00 AM"
}
],
"readUsersCount": 15,
"unreadUsersCount": 5
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Sends a reminder notification to unread users of a mandatory read post.
Send a reminder to all unread users or to a specific user. If successful, returns result=success.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/remindMustReadUsers
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/remindMustReadUsers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID (must be a mandatory read post). Required. |
| userId | Long | Specific user ZUID to remind. Omit to remind all unread users. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/remindMustReadUsers?scopeID=3000000000008&streamId=3000000070001&userId=60028305' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Reminder sent successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Bookmarks a post for later reference.
Bookmarks a post. If successful, returns result=success.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/bookmarkStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/bookmarkStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to bookmark. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/bookmarkStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post bookmarked successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a bookmark from a post.
Removes bookmark from a post. If successful, returns result=success.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/unbookmarkStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unbookmarkStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamIdMandatory | Long | Post ID to unbookmark. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unbookmarkStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post unbookmarked successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches the current user's bookmarked posts.
Returns a paginated list of posts bookmarked by the authenticated user.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/bookmarkedStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/bookmarkedStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). |
| scopeID | Long | Network (scope) ID. |
| streamLimit | Integer | Max posts to return. |
| type | String Allowed value:(matches: ^(STATUS|BLOG|LINK|DOCS|POLL|QUESTION||EVENT|ANNOUNCEMENT|VIDEO|PAGE|CAMPAIGN|IDEA|OTHERS)$) | Filter by post type. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/bookmarkedStreams?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of bookmarked post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Bookmarked posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012004,
"content": "Bookmarked post"
},
{
"streamType": "STATUS",
"streamId": 3000000012005,
"content": "Bookmarked post"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a feed post.
Follows a specific post to receive updates about its activity in your followed content.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/followStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to follow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followStream?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unfollows a feed post.
Stops following a specific feed post.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfollowStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to unfollow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowStream?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves posts followed by the current user.
Returns a paginated list of posts followed by the authenticated user, with support for cursor-based pagination using modifiedTime and an optional partitionType filter.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/postsIFollow
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — last modified time from previous response (epoch ms). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Filter by partition type — GROUP, TOWNHALL, etc. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postsIFollow?modifiedTime=1711000000000&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of post objects the user is following. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Followed posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012001,
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"content": "Quarterly review notes"
},
{
"streamType": "STATUS",
"streamId": 3000000012002,
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"content": "Quarterly review notes"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches posts and comments where the current user is mentioned.
Returns posts and comments where the authenticated user is @mentioned.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/mentionedItems
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| startIndex | Integer | Start index for pagination. |
| partitionId | Long | Filter by specific group ID. |
| streamLimit | Integer | Max posts to return. |
| type | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Filter by partition type. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mentionedItems?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of post objects mentioning the user. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Mentioned items returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012005,
"content": "Hey @user, review this"
},
{
"streamType": "STATUS",
"streamId": 3000000012006,
"content": "Hey @user, review this"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds a post to the current user's read-later list.
Bookmarks a post for reading later. Returns result=success.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/markAsReadLater
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markAsReadLater
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to add to read-later list. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/markAsReadLater?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post added to read-later list.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a post from the current user's read-later list.
Removes a post from the read-later list. Returns result=success.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/unMarkAsReadLater
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unMarkAsReadLater
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to remove from read-later list. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unMarkAsReadLater?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post removed from read-later list.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves posts saved for later reading.
Returns a paginated list of posts the current user has marked as read-later. Supports cursor-based pagination via modifiedTime.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/readLaterPosts
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). Alias for lastModifiedTime. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| lastModifiedTime | Long | Pagination cursor (epoch ms). Alias: modifiedTime. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/readLaterPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of read-later post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Read-later posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012003,
"content": "Saved for later"
},
{
"streamType": "STATUS",
"streamId": 3000000012004,
"content": "Saved for later"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Sets a reminder alarm for a read-later post.
Set a reminder for a post in the user's read-later list. Returns result=success with alarm details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/setPostReminder
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/setPostReminder
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| createdDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Reminder day (1-31). |
| streamIdMandatory | Long | Post ID to set reminder for. Required. |
| createdMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Reminder minute (0-59). |
| createdYear | String Allowed value:(matches: ^(19|20)\d\d$) | Reminder year. |
| createdHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Reminder hour (0-23). |
| createdMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Reminder month (1-12). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/setPostReminder?scopeID=3000000000008&createdDate=15&streamId=3000000070001&createdMin=0&createdYear=2026&createdHour=10&createdMonth=4' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| reminderMonth | Integer | Reminder month. Conditional: native API only. |
| formattedRemTime | String | Formatted reminder time. Conditional: native API only. |
| alarm | JSON Object | Alarm details wrapper (web clients). |
| read_later | JSON Object | Read-later alarm container. |
| alarm | JSON Object | Alarm detail object. |
| formattedTime | String | Formatted alarm time. |
| time | JSON Object | Time components. |
| date | Integer | Day of month. |
| month | Integer | Month. |
| hour | Integer | Hour (0-23). |
| year | Integer | Year. |
| minute | Integer | Minute (0-59). |
| second | Integer | Second (0-59). |
| type | Integer | NotifyType ordinal. |
| reminderYear | Integer | Reminder year. Conditional: native API only. |
| reminderType | Integer | NotifyType ordinal. Conditional: native API only. |
| reminderHour | Integer | Reminder hour. Conditional: native API only. |
| reminderMinute | Integer | Reminder minute. Conditional: native API only. |
| reminderDate | Integer | Reminder day of month. Conditional: native API only. |
| isSelfReminder | Boolean | Whether this is a self-reminder. Conditional: native API only. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post reminder set successfully.
{
"result": "success",
"alarm": {
"read_later": {
"alarm": {
"formattedTime": "Apr 15, 2026 10:00 AM",
"time": {
"date": 15,
"month": 3,
"hour": 10,
"year": 2026,
"minute": 0,
"second": 0
},
"type": 1
}
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Clears a previously set post reminder for a read-later post.
Clears a reminder. Returns result=success.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/clearPostReminder
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/clearPostReminder
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to clear reminder for. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/clearPostReminder?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post reminder cleared.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves posts scheduled for future publishing.
Returns a paginated list of posts scheduled to be published later. You can also sort the results if needed. Supports pagination using modifiedTime.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/scheduledPosts
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). Alias for lastModifiedTime. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sortingType | String Allowed value:(matches: ^(recent|oldest)$) | Sort order for results. |
| lastModifiedTime | Long | Pagination cursor (epoch ms). Alias: modifiedTime. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scheduledPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of scheduled post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Scheduled posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012001,
"content": "Upcoming announcement"
},
{
"streamType": "STATUS",
"streamId": 3000000012002,
"content": "Upcoming announcement"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves scheduled tasks, checklists, events, and town halls for a date range.
Returns scheduled items grouped by type, along with the count of overdue items.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/scheduledEntities
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/scheduledEntities
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| eyear | String Allowed value:(matches: ^(19|20)\d\d$) | End year. |
| entities | String Allowed value:(matches: (TASK|CHECKLIST|EVENT|TOWNHALL|ALL)) | Entity types: ALL, TASK, CHECKLIST, EVENT, TOWNHALL. Max 5. Defaults to ALL. |
| emonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | End month (1-12). |
| eday | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | End day (1-31). |
| sday | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Start day (1-31). |
| smonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Start month (1-12). |
| syear | String Allowed value:(matches: ^(19|20)\d\d$) | Start year. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scheduledEntities?scopeID=3000000000008&eyear=2024&entities=TASK,EVENT&emonth=3&eday=31&sday=1&smonth=3&syear=2024' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| overDueCount | JSON Object | Overdue counts. Only present when overdue items exist. |
| taskCount | Integer | Number of overdue tasks. |
| checklistCount | Integer | Number of overdue checklists. |
| taskScheduledEntities | JSON Array | Tasks and checklists. |
| streamId | Long | Associated post ID. |
| parentTaskId | Long | Parent task ID. Checklist only. |
| isUpcomingDue | String | 'true' if upcoming. Conditional. |
| type | String | Entity type: TASK, CHECKLIST, EVENT, or TOWNHALL. |
| title | String | Entity title. |
| allDay | Boolean | True for all-day events. Conditional. |
| isOverDue | String | 'true' if overdue. Conditional. |
| isTaskCompleted | String | 'true' if completed. Conditional. |
| partition | JSON Object | Partition info. Conditional. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| parentTaskTitle | String | Parent task title. Checklist only. |
| subEventType | String | Event sub-type (EVENT, SHOWTIME_EVENT, etc.). Event only. |
| percentage | Integer | Task completion percentage. Task/checklist only. |
| startTime | Long | Start time in epoch millis. |
| id | Long | Entity ID. |
| formattedDueDate | String | Formatted due date string. |
| taskStatus | JSON Object | Custom or default task status. Task only. |
| name | String | Status name. |
| id | Integer | Status ID. |
| colorType | String | Status color type. |
| taskPriority | JSON Object | Custom or default task priority. Task only. |
| name | String | Priority name. |
| id | Integer | Priority ID. |
| colorType | String | Priority color type. |
| isStarted | Boolean | True if event has started. Event only. |
| priority | String | Priority: HIGH, MEDIUM, LOW, or NONE. Task only. |
| users | JSON Array | Array of user ZUIDs (long values). Conditional. |
| location | String | Location string. Conditional. |
| isTodayDue | String | 'true' if due today. Conditional. |
| endTime | Long | End time in epoch millis. Conditional. |
| isExpired | Boolean | True if event has expired. Event only. |
| status | Integer | Task status code. Task/checklist only. |
| eventScheduledEntities | JSON Array | Events and townhalls. |
| streamId | Long | Associated post ID. |
| parentTaskId | Long | Parent task ID. Checklist only. |
| isUpcomingDue | String | 'true' if upcoming. Conditional. |
| type | String | Entity type: TASK, CHECKLIST, EVENT, or TOWNHALL. |
| title | String | Entity title. |
| allDay | Boolean | True for all-day events. Conditional. |
| isOverDue | String | 'true' if overdue. Conditional. |
| isTaskCompleted | String | 'true' if completed. Conditional. |
| partition | JSON Object | Partition info. Conditional. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| parentTaskTitle | String | Parent task title. Checklist only. |
| subEventType | String | Event sub-type (EVENT, SHOWTIME_EVENT, etc.). Event only. |
| percentage | Integer | Task completion percentage. Task/checklist only. |
| startTime | Long | Start time in epoch millis. |
| id | Long | Entity ID. |
| formattedDueDate | String | Formatted due date string. |
| taskStatus | JSON Object | Custom or default task status. Task only. |
| name | String | Status name. |
| id | Integer | Status ID. |
| colorType | String | Status color type. |
| taskPriority | JSON Object | Custom or default task priority. Task only. |
| name | String | Priority name. |
| id | Integer | Priority ID. |
| colorType | String | Priority color type. |
| isStarted | Boolean | True if event has started. Event only. |
| priority | String | Priority: HIGH, MEDIUM, LOW, or NONE. Task only. |
| users | JSON Array | Array of user ZUIDs (long values). Conditional. |
| location | String | Location string. Conditional. |
| isTodayDue | String | 'true' if due today. Conditional. |
| endTime | Long | End time in epoch millis. Conditional. |
| isExpired | Boolean | True if event has expired. Event only. |
| status | Integer | Task status code. Task/checklist only. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Scheduled tasks and events.
{
"overDueCount": {
"taskCount": 3,
"checklistCount": 1
},
"taskScheduledEntities": [
{
"streamId": 3000000070002,
"percentage": 50,
"startTime": 1711000000000,
"isTodayDue": "true",
"id": 3000000070001,
"type": "TASK",
"title": "Review PR",
"priority": "HIGH",
"formattedDueDate": "Mar 21, 2024",
"status": 1
},
{
"streamId": 3000000070003,
"percentage": 51,
"startTime": 1711086400000,
"isTodayDue": "true",
"id": 3000000070002,
"type": "TASK",
"title": "Review PR (2)",
"priority": "HIGH",
"formattedDueDate": "Mar 21, 2024",
"status": 2
}
],
"eventScheduledEntities": [
{
"allDay": false,
"streamId": 3000000080002,
"startTime": 1711000000000,
"id": 3000000080001,
"endTime": 1711003600000,
"isStarted": true,
"type": "EVENT",
"title": "Team Standup",
"isExpired": false
},
{
"allDay": true,
"streamId": 3000000080003,
"startTime": 1711086400000,
"id": 3000000080002,
"endTime": 1711090000000,
"isStarted": false,
"type": "EVENT",
"title": "Team Standup (2)",
"isExpired": true
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches counts of scheduled entities for the current user.
Returns the count of each item type, such as tasks, checklists, events, town halls, and related items.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/scheduledEntitiesCount
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/scheduledEntitiesCount
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scheduledEntitiesCount?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| schedulesCount | JSON Object | Per-type schedule counts. |
| readLaterPostCount | Integer | Number of read-later posts. |
| scheduledPostCount | Integer | Number of scheduled posts. |
| moderationPostCount | Integer | Number of moderation-pending posts. |
| tasksCount | Integer | Number of scheduled tasks. |
| townhallsCount | Integer | Number of scheduled townhalls. |
| checklistsCount | Integer | Number of scheduled checklists. |
| eventsCount | Integer | Number of scheduled events. |
| totalCount | Integer | Total count across all types. |
| mustReadPostCount | Integer | Number of mandatory read posts. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Schedule counts.
{
"schedulesCount": {
"readLaterPostCount": 8,
"scheduledPostCount": 2,
"tasksCount": 15,
"townhallsCount": 2,
"checklistsCount": 5,
"eventsCount": 3,
"totalCount": 25,
"mustReadPostCount": 4
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the scheduled publish time of a draft/scheduled post.
Reschedules a draft post to a new date and time. If successful, returns result=success along with the updated modifiedTime and formatedTime.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateScheduledPostTime
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateScheduledPostTime
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| createdDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Day of month (1-31). |
| streamIdMandatory | Long | Post ID to reschedule. Required. |
| createdMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Minute (0-59). |
| createdYear | String Allowed value:(matches: ^(19|20)\d\d$) | Year for the new scheduled time. |
| createdHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Hour (0-23). |
| createdMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Month (1-12). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateScheduledPostTime?scopeID=3000000000008&createdDate=15&streamId=3000000070001&createdMin=30&createdYear=2026&createdHour=10&createdMonth=4' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| modifiedTime | Long | New scheduled epoch ms. |
| formatedTime | String | Formatted display time (note: 'formated' is the actual key). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Scheduled post time updated.
{
"result": "success",
"modifiedTime": 1681554600000,
"formatedTime": "Apr 15, 2026 10:30 AM"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the user's daily schedule notification preferences.
Sets your email and push notification preferences, and choose the time of day they are delivered.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateMySchedulePreference
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateMySchedulePreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sendEmail | Boolean | Whether to send email notifications. |
| sendPushNotification | Boolean | Whether to send push notifications. |
| executionMinMandatory | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Minute of the hour (0-59). Required. |
| executionHourMandatory | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Hour of the day (0-23). Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateMySchedulePreference?scopeID=3000000000008&sendEmail=true&sendPushNotification=true&executionMin=0&executionHour=9' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Preference updated.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes the user's daily schedule notification preferences.
Removes the user's schedule notification preference configuration.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteMySchedulePreference
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteMySchedulePreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteMySchedulePreference?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Preference deleted.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Pins a post to the top of a group or feed.
Pins a post to keep it easily visible. You can also set an expiry date for the pin.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/pinPost
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Pin expiry date (1-31). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to pin. Required. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Pin expiry month (1-12). |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Pin expiry year. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/pinPost?expiryDate=31&scopeID=3000000000008&streamId=3000000070001&expiryMonth=12&expiryYear=2025' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post pinned.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes the pin from a previously pinned post.
Unpins a post so it returns to its original place in the feed.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unPinPost
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to unpin. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unPinPost?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post unpinned.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Pins a comment within a post.
Pins a comment so it appears at the top of the thread. Optionally set an expiry date.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/pinComment
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Pin expiry date (1-31). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Pin expiry month (1-12). |
| commentIdMandatory | Long | Comment ID to pin. Required. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Pin expiry year. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/pinComment?expiryDate=31&scopeID=3000000000008&expiryMonth=12&commentId=3000000080001&expiryYear=2025' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment pinned.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes the pin from a previously pinned comment.
Unpins a comment.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/unPinComment
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentIdMandatory | Long | Comment ID to unpin. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unPinComment?scopeID=3000000000008&commentId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment unpinned.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Detects the language of a post, comment, or article.
Returns the ISO language code for the specified content.
Rate limit: 200 requests per minute.
Request URL
https://ServerDomain/pulse/api/detectContentLanguage
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/detectContentLanguage
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamId | Long | Post ID to detect language for. |
| articleId | Long | Article ID to detect language for. |
| commentId | Long | Comment ID to detect language for. |
| language | String | Language hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/detectContentLanguage?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| languageCode | String | ISO language code (e.g. 'en', 'fr', 'ja'). Empty response if detection fails. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Language detected.
{
"languageCode": "en"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Translates a post, comment, or article to the user's language.
Translates the content into the current user’s preferred language.
Rate limit: 200 requests per minute.
Request URL
https://ServerDomain/pulse/api/translateContent
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/translateContent
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamId | Long | Post ID to translate. |
| requestId | String | Client-provided request ID for tracking. |
| articleId | Long | Article ID to translate. |
| commentId | Long | Comment ID to translate. |
| language | String | Source language code. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/translateContent?scopeID=3000000000008&streamId=3000000070001&language=en' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| title | String | Translated title. Only present when the source has a title. |
| content | String | Translated HTML content. For native API non-blog, this is a JSONArray of content elements. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Content translated.
{
"title": "Translated Title",
"content": "<p>Translated content...</p>"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches overall engagement insight for a post.
Returns engagement insights for a post, including the author, view count, and engagement score.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/postInsight
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsight?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| insight | JSON Object | Post insight wrapper object. |
| info | JSON Object | Post insight info with author, counts, and engagement. |
| canExport | String | 'true' if current user can export. Conditional: scope admins only. |
| startedTime | String | Post creation date in yyyy-MM-dd (GMT). |
| totalVoteCount | Integer | Total poll votes. Conditional: POLL posts only. |
| engagement | JSON Object | Engagement score and emotion data. |
| score | String | Engagement score formatted as '%.2f'. Formula: (participatingUsers / uniqueViewCount) * 100. '0' when no views. |
| percentage | Double | Emotion percentage: floor(avgEmotion / 5 * 100). Conditional: only when avgEmotion > 0. |
| type | Integer | Emotion type on 1-5 scale. Conditional: only when avgEmotion > 0. |
| uniqueViewCount | Integer | Unique views within date range. |
| likeCount | Integer | Reactions count within date range. |
| type | String | Post type: STATUS, POLL, CAMPAIGN, etc. |
| title | String | Post title. Conditional: when title is non-empty. |
| userDetails | JSON Object | Post author details from constructAuthor. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | First 30 chars of post body. Conditional: when title is empty. |
| url | String | Full URL to the post. |
| commentCount | Integer | Comments count within date range. |
| totalViewCount | Long | All-time total view count. |
| formatedTime | String | Localized display time of post creation. |
| socialAdvSharesCount | Integer | Advocacy shares count. Conditional: CAMPAIGN posts with social sharing. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post insight with engagement data.
{
"insight": {
"info": {
"totalViewCount": 580,
"startedTime": "2024-03-15",
"formatedTime": "Mar 15, 2024 10:30 AM",
"engagement": {
"score": "18.26",
"percentage": 60,
"type": 3
},
"uniqueViewCount": 230,
"likeCount": 42,
"type": "STATUS",
"title": "Important Update",
"userDetails": {
"role": "MEMBER",
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"id": 60012345678,
"zuid": 60012345678
},
"url": "https://connect.zoho.com/pulse/#s/3000000070001",
"commentCount": 15
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves an AI-generated summary of a post.
Returns an AI-generated summary of the specified post, including the content overview, tone, and sentiment. If the summary is still being generated, the API returns SUMMARY_IN_PROGRESS.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/postSummary
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID to get summary for. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postSummary?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| summary | JSON Object | AI-generated summary object. |
| sentiment | String | Detected sentiment (e.g. 'positive'). Conditional. |
| tone | String | Detected tone (e.g. 'formal'). Conditional. |
| content | String | Sanitized HTML summary of the post. |
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
AI summary with tone and sentiment.
{
"summary": {
"sentiment": "positive",
"tone": "formal",
"content": "<p>This post discusses the new quarterly goals and team alignment strategies.</p>"
},
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches unique users who viewed a post.
Returns the list of unique users who viewed the specified post, along with the total view count. You can also sort the results and paginate them using lastModifiedTime.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/streamViewUniqueUsers
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/streamViewUniqueUsers
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | Ascending sort if true. Default false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| lastModifiedTime | Long | Pagination cursor. Returns users viewed before this time. |
| streamIdMandatory | Long | Post ID. Required. |
| sortByType | String Allowed value:(matches: (byTime|byAlpha)) | Sort field: byTime (default) or byAlpha. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamViewUniqueUsers?isAscSort=false&scopeID=3000000000008&lastModifiedTime=1742464200000&streamId=3000000045001&sortByType=byTime' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canExport | Boolean | Whether the caller can export the data. |
| usersDetails | JSON Array | Array of viewer user objects. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| lastModifiedTime | Long | Pagination cursor for next page. |
| uniqueViewCount | Long | Unique viewer count. |
| viewCount | Long | Total view count. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns unique viewers with view counts and pagination.
{
"canExport": true,
"usersDetails": [
{
"isFollowing": false,
"formattedViewedTime": "Mar 20, 2026 11:15 AM",
"name": "John Doe",
"hasCustomImg": true,
"canFollow": true,
"viewedTimeLong": 1742464500000,
"id": 60028305,
"zuid": 60028305
},
{
"isFollowing": true,
"formattedViewedTime": "Mar 20, 2026 11:15 AM",
"name": "John Smith",
"hasCustomImg": false,
"canFollow": false,
"viewedTimeLong": 1742550900000,
"id": 60028306,
"zuid": 60028306
}
],
"uniqueViewCount": 18,
"viewCount": 25
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns per-department engagement statistics for a post.
Gets engagement statistics grouped by department or by a custom field. Supports pagination.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/postInsightUserStats
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/postInsightUserStats
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | true for ascending sort order. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| pageIndex | Integer | Pagination index. |
| postInsightType | String Allowed value:(matches: 0|1|2|3|4) | Insight type: 0=UniqueViews, 1=Comments, 2=Reactions, 3=StreamReactions, 4=PollVotes/Shares. |
| days | String Allowed value:(matches: 7|30) | Time range in days: 7 or 30. |
| sortBy | String Allowed value:(matches: (?ims)(.*?)) | Sort field. |
| from | String Allowed value:(matches: ^[0-9\-\/\ ]+$) | Start date for custom range. |
| to | String Allowed value:(matches: ^[0-9\-\/\ ]+$) | End date for custom range. |
| fieldTypeMandatory | Long | Tag type ordinal or custom field ID for grouping. Required. |
| zipPassword | String | Password for encrypted export. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsightUserStats?scopeID=3000000000008&streamId=3000000070001&postInsightType=0&days=30&fieldType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| fetchMore | String | 'true' when more pages exist. Conditional. |
| stats | JSON Array | Array of stat objects grouped by department/custom field. |
| REACTIONS_COUNT | Integer | Comment reactions count. |
| COMMENTS_COUNT | Integer | Comments count. |
| POLL_VOTES_COUNT | Integer | Poll votes count. Conditional: POLL posts only. |
| STREAM_REACTIONS_COUNT | Integer | Post reactions count. |
| department | String | Department name, designation, or custom field option. |
| UNIQUE_VIEWS_COUNT | Integer | Unique views count. |
| ADVOCACY_SHARES_COUNT | Integer | Advocacy shares count. Conditional: CAMPAIGN posts only. |
| pageIndex | Integer | Next page index. Conditional: only when more pages exist. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User stats grouped by department.
{
"result": "success",
"stats": [
{
"REACTIONS_COUNT": 45,
"COMMENTS_COUNT": 30,
"STREAM_REACTIONS_COUNT": 20,
"department": "Engineering",
"UNIQUE_VIEWS_COUNT": 150
},
{
"REACTIONS_COUNT": 48,
"COMMENTS_COUNT": 33,
"STREAM_REACTIONS_COUNT": 23,
"department": "Engineering",
"UNIQUE_VIEWS_COUNT": 153
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves available tab categories for post insight user stats grouping.
Returns available grouping tabs (departments, designations, custom fields) for post insight stats.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/postInsightUserStatsTab
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/postInsightUserStatsTab
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsightUserStatsTab?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| tabs | JSON Array | Array of available grouping tab objects. |
| name | String | Tab display name (i18n translated). |
| isCustom | String | 'true' for custom field tabs. Absent for built-in tabs. |
| fieldId | Long | Tag type ordinal (DEPARTMENTS=0, DESIGNATIONS=1, WORKLOCATION=2) or custom field ID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Available grouping tabs retrieved.
{
"result": "success",
"tabs": [
{
"name": "Departments",
"fieldId": 0
},
{
"name": "Designations",
"fieldId": 1
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches chart data for a post's engagement metrics.
Gets engagement chart data for a selected date range. The chart data is returned as a stringified JSON value.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/postInsightChart
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/postInsightChart
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| days | String Allowed value:(matches: 7|30) | Time range in days: 7 or 30. |
| range | Boolean | true to use custom date range via from/to. |
| from | String Allowed value:(matches: ^[0-9\-\/\ ]+$) | Start date for custom range. |
| to | String Allowed value:(matches: ^[0-9\-\/\ ]+$) | End date for custom range. |
| zipPassword | String | Password for encrypted export. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsightChart?scopeID=3000000000008&streamId=3000000070001&days=30' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| charts | String | Stringified JSON containing chart data (tooltip, dataset[], yaxisthreshold). Conditional: only when stats exist. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Chart data retrieved as stringified JSON.
{
"charts": "{\"tooltip\":true,\"dataset\":[{\"color\":\"#a26eef\",\"type\":\"area\",\"seriesname\":\"Unique Views\",\"data\":[[\"Mar 15\",42,\"Mar 15\"]]}],\"yaxisthreshold\":{\"color\":[],\"values\":[],\"text\":[]}}"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Triggers an asynchronous CSV export of post insight data.
Schedules an async CSV export of post insight data. The response body is empty, and the CSV file is generated separately.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/exportPostInsightCSV
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/exportPostInsightCSV
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
| zipPassword | String | Password for the encrypted ZIP file. |
| fieldIds | String Allowed value:(matches: DISPLAYNAME|ZUID|EMAILID|DESIGNATIONS|DEPARTMENTS|REPORTING_TO|[0-9]+) | Comma-separated field identifiers to include in export. Max 100. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/exportPostInsightCSV?scopeID=3000000000008&streamId=3000000070001&zipPassword=pass1234&fieldIds=DISPLAYNAME,EMAILID,DEPARTMENTS' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Not returned. Response body is empty — the CSV export runs asynchronously. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Export scheduled. Response body is empty.
{}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the widget configuration for the current user's feed.
Returns the list of sidebar widgets enabled for the user’s main feed.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/myfeedWidgets
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myfeedWidgets?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| customwidgets | JSON Array | Array of widget objects for the user's feed. |
| widgetName | String | Display name of the widget. |
| widgetId | String | Widget ID — e.g. TRENDING_TAGS, BIRTHDAY_BUDDIES, TOP_CONTRIBUTORS. |
| widgetType | String | Widget type enum value. |
| cssUrl | String | URL for default CSS. |
| customCssUrl | String | URL for custom CSS (if enabled). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Feed widgets returned.
{
"customwidgets": [
{
"widgetName": "Trending Tags",
"widgetId": "TRENDING_TAGS",
"widgetType": "TRENDING_TAGS"
},
{
"widgetName": "Trending Tags",
"widgetId": "TRENDING_TAGS",
"widgetType": "TRENDING_TAGS"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Approves a single post pending moderation.
Approves a post that is currently under moderation.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/approveStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamId | Long | Post ID to approve. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveStream?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Post approved.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Approves multiple posts pending moderation.
Approves multiple posts that are currently under moderation.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/approveStreams
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/approveStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIds | Long | Comma-separated post IDs to approve. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveStreams?scopeID=1000000008002&streamIds=3000000045678,3000000045679' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Posts approved.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a single unapproved post.
Permanently deletes a single post under moderation.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteUnapprovedStream
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteUnapprovedStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| streamId | Long | Post ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedStream?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Unapproved post deleted.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes multiple unapproved posts.
Permanently deletes multiple posts under moderation.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteUnapprovedStreams
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteUnapprovedStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIds | Long | Comma-separated post IDs to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedStreams?scopeID=1000000008002&streamIds=3000000045678,3000000045679' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Unapproved posts deleted.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Approves a single comment pending moderation.
Approves a single comment under moderation.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/approveComment
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/approveComment
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| commentId | Long | Comment ID to approve. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comment approved.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Approves multiple comments pending moderation.
Approves multiple comments under moderation.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/approveComments
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/approveComments
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentIds | Long | Comma-separated comment IDs to approve. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveComments?scopeID=1000000008002&commentIds=3000000067890,3000000067891' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Comments approved.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a single unapproved comment.
Permanently deletes a single comment under moderation.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteUnapprovedComment
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteUnapprovedComment
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| commentId | Long | Comment ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Unapproved comment deleted.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Rejects a post or comment with a reason.
Rejects a post or comment by adding a rejection message or tags. The author is notified when the content is rejected.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/rejectEntity
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| entityTypeMandatory | String Allowed value:(matches: 0|1) | Entity type ordinal: 0=POST, 1=COMMENT. Required. |
| entityIdMandatory | Long | Entity ID (post or comment). Required. |
| message | String Allowed value:(matches: (?ims)(.*?)) | Rejection reason message (max 250 chars). |
| tags | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated rejection tags (max 20). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/rejectEntity?scopeID=1000000008002&entityType=0&entityId=3000000045678&message=Violates community guidelines&tags=inappropriate,spam' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Entity rejected.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches rejection details for a post or comment.
Returns the full item details along with its paginated rejection history.
Rate limit: 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/rejectedEntity
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| itemIdMandatory | Long | Entity ID (post or comment). Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| itemTypeMandatory | String Allowed value:(matches: 0|1) | Entity type ordinal: 0=POST, 1=COMMENT. Required. |
| pageIndex | Integer | Pagination page index (0-based). |
| version | Integer | API version flag. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/rejectedEntity?itemId=3000000045678&scopeID=1000000008002&itemType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| rejections | JSON Array | Array of rejection detail objects. |
| rejectedUser | JSON Object | User who rejected the entity. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| rejectedTime | Long | Rejection timestamp (epoch ms). |
| formattedRejectedTime | String | Formatted rejection time. |
| rejectionMessage | String | Rejection reason message. |
| tags | JSON Array | Array of rejection tags. |
| fetchMore | String | 'true' if more pages exist. |
| stream | JSON Object | Full post object (first page, itemType=0). |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| pageIndex | Integer | Next page index. |
| comment | JSON Object | Full comment object (first page, itemType=1). |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Rejected entity details retrieved.
{
"result": "success",
"rejections": [
{
"rejectedUser": {
"name": "Admin User",
"hasCustomImg": false,
"id": 60025012346,
"zuid": 60025012346
},
"rejectedTime": 1700001000000,
"formattedRejectedTime": "Apr 01, 2026",
"rejectionMessage": "Violates guidelines",
"tags": [
{
"tag": "inappropriate"
},
{
"tag": "inappropriate"
}
]
},
{
"rejectedUser": {
"name": "Admin User",
"hasCustomImg": false,
"id": 60025012346,
"zuid": 60025012346
},
"rejectedTime": 1700087400000,
"formattedRejectedTime": "Apr 01, 2026",
"rejectionMessage": "Violates guidelines",
"tags": [
{
"tag": "inappropriate"
},
{
"tag": "inappropriate"
}
]
}
],
"stream": {
"formatedTime": "Apr 01, 2026",
"id": 3000000045678,
"time": 1700000000000,
"title": "Rejected Post",
"type": "STATUS",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"id": 60025012345,
"zuid": 60025012345
},
"content": "Post content",
"status": "MODERATION_REJECTED"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Reports a post, comment, or user as spam.
Reports a post, comment, or user as spam or inappropriate. The admins/moderators are notified when a content is flagged.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/reportEntity
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| itemIdMandatory | Long | Entity ID (post ID, comment ID, or user ZUID). Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| typeMandatory | String Allowed value:(matches: POST|COMMENT|USER) | Entity type: POST, COMMENT, or USER. Required. |
| messageMandatory | String Allowed value:(matches: (?ims)(.*?)) | Report reason message (max 250 chars). Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/reportEntity?itemId=3000000045678&scopeID=1000000008002&type=POST&message=Spam content' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Entity reported.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns all items (posts and comments) awaiting moderation.
Returns all feed items waiting for instant moderation in groups where you have moderator or admin privileges.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/moderationItems
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/moderationItems
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/moderationItems?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| items | JSON Array | Array of moderation item objects. |
| msg | String | Notification message. |
| streamType | String | Post type — status, announcement, etc. |
| stream_Id | Long | Associated post ID. |
| author | JSON Object | Item author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| notifier | Long | Notifier user ID. |
| formattedTime | String | Formatted timestamp. |
| id | Long | Item ID. |
| type | String | Item type — MODERATION_STREAM, MODERATION_COMMENT. |
| partitionType | String | Partition type — GROUP, PAGE, TOWNHALL, etc. |
| content | String | Content text. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Moderation items returned.
{
"modifiedTime": 1717171717000,
"items": [
{
"msg": "Alice posted in Engineering",
"streamType": "status",
"stream_Id": 3000000050001,
"author": {
"name": "Alice",
"id": 3000000000123
},
"notifier": 3000000000123,
"formattedTime": "Jan 12, 2025 03:15 PM",
"id": 3000000050001,
"type": "MODERATION_STREAM",
"partitionType": "GROUP",
"content": "Pending post content"
},
{
"msg": "Alice posted in Engineering",
"streamType": "status",
"stream_Id": 3000000050002,
"author": {
"name": "Alice",
"id": 3000000000123
},
"notifier": 3000000000124,
"formattedTime": "Jan 12, 2025 03:15 PM",
"id": 3000000050002,
"type": "MODERATION_STREAM",
"partitionType": "GROUP",
"content": "Pending post content"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves the current user's own items pending or rejected by moderation.
Returns the current user's own posts that are pending moderation approval or have been rejected.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/userModerationItems
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/userModerationItems
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — return items modified before this epoch ms. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| isRejected | Boolean | If true, returns only rejected items. Defaults to false (pending items). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userModerationItems?modifiedTime=1717171717000&scopeID=3000000000008&isRejected=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| awaitingCount | Integer | Number of items awaiting moderation. |
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| rejectedCount | Integer | Number of rejected items. |
| canReject | String | 'true' if the caller can reject items. |
| items | JSON Array | Array of moderation item objects. |
| msg | String | Notification message. |
| streamType | String | Post type — status, announcement, etc. |
| stream_Id | Long | Associated post ID. |
| author | JSON Object | Item author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| notifier | Long | Notifier user ID. |
| formattedTime | String | Formatted timestamp. |
| id | Long | Item ID. |
| type | String | Item type — MODERATION_STREAM, MODERATION_COMMENT. |
| partitionType | String | Partition type — GROUP, PAGE, TOWNHALL, etc. |
| content | String | Content text. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User moderation items returned.
{
"awaitingCount": 3,
"modifiedTime": 1717171717000,
"rejectedCount": 1,
"canReject": "true",
"items": [
{
"streamType": "status",
"stream_Id": 3000000050002,
"notifier": 3000000000456,
"formattedTime": "Jan 12, 2025 04:00 PM",
"id": 3000000050002,
"type": "MODERATION_STREAM",
"partitionType": "GROUP",
"content": "My pending post"
},
{
"streamType": "status",
"stream_Id": 3000000050003,
"notifier": 3000000000457,
"formattedTime": "Jan 12, 2025 04:00 PM",
"id": 3000000050003,
"type": "MODERATION_STREAM",
"partitionType": "GROUP",
"content": "My pending post"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for posts (posts) matching a query string.
Searches posts using full-text search and returns matching results with pagination.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/searchStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v1/searchStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter: -1, 0, or 1. |
| partitionId | Long | Filter to a specific group. |
| searchType | String Allowed value:(matches: ^(townhallQuestionsAutoSuggestion|townhallQuestions)$) | Search type: townhallQuestionsAutoSuggestion or townhallQuestions. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query (must contain at least one letter or digit). |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by author user ID. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/searchStreams?scopeID=3000000000008&query=quarterly update&pageIndex=0&limit=20&sortBy=relevance' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Pagination index. Only present when more results are available. |
| streams | JSON Array | Array of matching post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching posts with pagination.
{
"pageIndex": 1,
"streams": [
{
"id": 3000000070001,
"type": "STATUS",
"content": "Quarterly update..."
},
{
"id": 3000000070002,
"type": "STATUS",
"content": "Quarterly update..."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for forum posts matching a query string.
Searches forum posts using full-text search and returns matching results with pagination.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchBlogs
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by author. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchBlogs?scopeID=3000000000008&query=getting started&pageIndex=0&sortBy=date' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Last modified time. Conditional. |
| pageIndex | Integer | Pagination index. Conditional. |
| blogs | JSON Array | Array of matching blog objects. |
| attachments | JSON Array | Attachment list. Conditional. |
| canShare | Boolean | Whether current user can share. Conditional. |
| isLiked | Boolean | Whether the current user liked this post. Conditional. |
| isDraft | Boolean | Whether this is a draft. Conditional. |
| likeCount | Integer | Number of likes. Only when > 0. |
| isScheduled | Boolean | Whether this is scheduled. Conditional. |
| type | String | Always 'BLOG'. |
| title | String | Blog post title. |
| userDetails | JSON Object | Author user details. |
| name | String | User display name. |
| id | Long | User ID. |
| zuid | Long | User Zoho UID. |
| url | String | Blog post URL path. |
| commentCount | Integer | Number of comments. Only when > 0. |
| formatedTime | String | Formatted creation time string. |
| reactionType | String | Current user's reaction type. Conditional. |
| reactions | JSON Array | Reaction details. Conditional. |
| reactionType | JSON Object | Reaction type details. |
| count | Integer | Number of users with this reaction. |
| type | String | LikeType enum (LIKE, LOVE, etc.). |
| id | Long | Blog post ID. |
| module_name | String | Always 'BLOGS'. |
| viewCount | Integer | Number of views. Only when > 0. |
| isMustRead | Boolean | Whether this is marked mandatory read. Conditional. |
| status | String | Blog status (e.g. 'ACTIVE'). |
| allowFooter | String | Always 'false' for search results. |
| lastBlogCreatedTime | Long | Last blog creation time for pagination cursor. Conditional. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching blog posts.
{
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 15, 2024 10:30 AM",
"likeCount": 5,
"id": 3000000080001,
"module_name": "BLOGS",
"viewCount": 150,
"type": "BLOG",
"title": "Getting Started Guide",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/blog/...",
"status": "ACTIVE",
"commentCount": 3
},
{
"formatedTime": "Mar 15, 2024 10:30 AM",
"likeCount": 8,
"id": 3000000080002,
"module_name": "BLOGS",
"viewCount": 153,
"type": "BLOG",
"title": "Getting Started Guide (2)",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/blog/...",
"status": "ACTIVE",
"commentCount": 6
}
],
"allowFooter": "false"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for board tasks matching a query string.
Searches board tasks using full-text search and returns matching task objects with pagination.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchTasks
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter: -1, 0, or 1. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by creator. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchTasks?scopeID=3000000000008&query=bug fix&pageIndex=0&boardId=3000000075001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Pagination index. Conditional. |
| streams | JSON Array | Array of matching task objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching tasks.
{
"pageIndex": 1,
"streams": [
{
"id": 3000000070001,
"type": "TASK",
"content": "Fix login bug..."
},
{
"id": 3000000070002,
"type": "TASK",
"content": "Fix login bug..."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for manuals matching a query string.
Searches across manuals using full-text search and returns matching manual objects with partition info.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchManuals
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by author. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchManuals?scopeID=3000000000008&query=employee handbook&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| fetchMore | Boolean | Whether more results are available. |
| pageIndex | Integer | Pagination index. Conditional. |
| manuals | JSON Array | Array of matching manual objects. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | URL-safe partition slug. |
| bgColor | String | Background color hex. |
| name | String | Manual name. |
| logo | String | Manual logo URL. |
| id | Long | Manual ID. |
| isPrivate | Boolean | Whether this manual is private. Conditional. |
| type | String | Partition type (e.g. 'PAGE'). |
| url | String | Manual URL path. |
| isUserFollow | Boolean | Whether the current user follows this manual. |
| status | String | Manual status (e.g. 'PUBLISHED'). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching manuals.
{
"fetchMore": true,
"pageIndex": 1,
"manuals": [
{
"typeOrd": 3,
"partitionUrl": "employee-handbook",
"name": "Employee Handbook",
"id": 3000000080001,
"type": "PAGE",
"url": "/pulse/manual/...",
"isUserFollow": true,
"status": "PUBLISHED"
},
{
"typeOrd": 4,
"partitionUrl": "employee-handbook",
"name": "Employee Smith",
"id": 3000000080002,
"type": "PAGE",
"url": "/pulse/manual/...",
"isUserFollow": false,
"status": "PUBLISHED"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for manual articles matching a query string.
Searches across manual articles using full-text search and returns matching results along with their article, manual, and partition details.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchArticles
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by author. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchArticles?scopeID=3000000000008&query=onboarding process&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| fetchMore | Boolean | Whether more results are available. |
| pageIndex | Integer | Pagination index. Conditional. |
| articles | JSON Array | Array of matching article objects. |
| comments | JSON Array | Matching comments. Present when isCommentSearch is true. |
| isPublished | Boolean | Whether the article is published. |
| formattedTime | String | Formatted time string. |
| type | String | Always 'ARTICLE'. |
| userDetails | JSON Object | Author user details. |
| name | String | User display name. |
| id | Long | User ID. |
| zuid | Long | User Zoho UID. |
| url | String | URL-safe article slug. |
| originalName | String | Original article name. |
| partition | JSON Object | Parent manual partition info. |
| typeOrd | Integer | Partition type ordinal. |
| name | String | Manual name. |
| id | Long | Manual (partition) ID. |
| type | String | Partition type (e.g. 'PAGE'). |
| isCommentSearch | Boolean | Whether the match was on a comment. Conditional. |
| name | String | Article name. |
| manualUrl | String | Parent manual URL slug. |
| id | Long | Article ID. |
| manualName | String | Parent manual name. |
| nativeUrl | String | Native article content URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching articles with manual info.
{
"fetchMore": true,
"pageIndex": 1,
"articles": [
{
"partition": {
"typeOrd": 3,
"name": "Employee Handbook",
"id": 3000000080001,
"type": "PAGE"
},
"isPublished": true,
"name": "Onboarding Process",
"formattedTime": "Mar 15, 2024",
"manualUrl": "employee-handbook",
"id": 3000000090001,
"manualName": "Employee Handbook",
"type": "ARTICLE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "onboarding-process"
},
{
"partition": {
"typeOrd": 3,
"name": "Employee Handbook",
"id": 3000000080001,
"type": "PAGE"
},
"isPublished": false,
"name": "Onboarding Smith",
"formattedTime": "Mar 15, 2024",
"manualUrl": "employee-handbook",
"id": 3000000090002,
"manualName": "Employee Handbook",
"type": "ARTICLE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "onboarding-process"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for town hall groups matching a query string.
Searches town halls using full-text search and returns matching results along with their town hall and partition info.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchTownhalls
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/searchTownhalls
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by author. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchTownhalls?scopeID=3000000000008&query=company townhall&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| fetchMore | Boolean | Whether more results are available. |
| pageIndex | Integer | Pagination index. Conditional. |
| townhalls | JSON Array | Array of matching townhall objects. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | URL-safe partition slug. |
| bgColor | String | Background color hex. |
| name | String | Townhall name. |
| logo | String | Townhall logo URL. |
| id | Long | Townhall ID. |
| isPrivate | Boolean | Whether this townhall is private. Conditional. |
| type | String | Always 'TOWNHALL'. |
| url | String | Townhall URL path. |
| isUserFollow | Boolean | Whether the current user follows this townhall. |
| status | String | Townhall status (e.g. 'ACTIVE'). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching townhalls.
{
"fetchMore": true,
"pageIndex": 1,
"townhalls": [
{
"typeOrd": 6,
"partitionUrl": "company-townhall",
"name": "Company Townhall",
"id": 3000000100001,
"type": "TOWNHALL",
"isUserFollow": true,
"status": "ACTIVE"
},
{
"typeOrd": 7,
"partitionUrl": "company-townhall",
"name": "Company Smith",
"id": 3000000100002,
"type": "TOWNHALL",
"isUserFollow": false,
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Searches for files matching a query string.
Searches uploaded files using full-text search and returns matching results along with their file and partition info.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/searchFiles
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| toYear | Integer | End year. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nextStatus | String Allowed value:(matches: -1|0|1) | Next status filter. |
| partitionId | Long | Filter to a specific partition. |
| query | String Allowed value:(matches: .*[\p{L}\p{N}].*) | Search query. |
| toDate | Integer | End date (1-31). |
| toMonth | Integer | End month (1-12). |
| groupCategoryId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Group category filter. |
| isPrivate | Boolean | Filter for private posts. |
| assigneeId | Long | Filter by assignee user ID. |
| userId | Long | Filter by uploader. |
| version | Integer | API version hint. |
| commentFilter | Integer | Comment filter. |
| fromDate | Integer | Start date (1-31). |
| timeCategoryId | String Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$)) | Time filter category. |
| pageIndex | Integer | Pagination index. |
| fromYear | Integer | Start year. |
| limit | Integer | Max results to return. |
| boardId | Long | Filter to a specific board. |
| fromMonth | Integer | Start month (1-12). |
| sortBy | String Allowed value:(matches: (date|relevance)) | Sort order: date or relevance. |
| taskStatus | Integer | Filter by task status. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchFiles?scopeID=3000000000008&query=project plan&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Pagination index. Conditional. |
| files | JSON Array | Array of matching file objects. |
| extension | String | File extension. Conditional. |
| previewUrl | String | File preview URL. |
| permaLink | String | Permanent link. Conditional. |
| downloadUrl | String | File download URL. |
| doc_type | String | Document type (e.g. 'pdf'). Conditional. |
| type | String | Always 'FILE'. |
| userDetails | JSON Object | Uploader user details. |
| name | String | User display name. |
| id | Long | User ID. |
| zuid | Long | User Zoho UID. |
| url | String | File view URL. |
| formatedTime | String | Formatted upload time. |
| partition | JSON Object | Group info. Conditional. |
| name | String | Group name. |
| id | Long | Group ID. |
| name | String | File name. |
| id | String | Doc content ID. |
| time | String | Upload time in epoch millis (as String). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Matching files with partition info.
{
"pageIndex": 1,
"files": [
{
"formatedTime": "Mar 15, 2024",
"partition": {
"name": "Engineering",
"id": 3000000070001
},
"name": "project-plan.pdf",
"id": "100001",
"time": "1711000000000",
"doc_type": "pdf",
"type": "FILE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/viewFile.do?..."
},
{
"formatedTime": "Mar 15, 2024",
"partition": {
"name": "Engineering",
"id": 3000000070001
},
"name": "project-plan.pdf 2",
"id": "100002",
"time": "1711086400000",
"doc_type": "pdf",
"type": "FILE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/viewFile.do?..."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a new group in a Zoho Connect network.
Creates a new group in the network. You must have permission to create groups to use this API. Provide a group name, and optionally add a description, privacy setting, initial members, and a logo. If successful, the response includes the new group’s ID, name, URL slug, and whether it is public or private.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addGroup
Scope
ZohoPulse.grouplist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isRequestPublic | Boolean | If true, the group is request-to-join public. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| isPrivate | Boolean | If true, creates a private group. Defaults to false (public). |
| templateId | String Allowed value:(matches: (3[0-2]|2[0-9]|1[0-9]|[1-9])) | Template logo ID (1-32). |
| canSearch | Boolean | If true, the group is searchable. |
| createOrgGroup | Boolean | If true, creates a corresponding org-level IAM group. |
| isRequestPrivate | Boolean | If true, the group is request-to-join private. |
| createChannel | Boolean | If true, creates an associated Cliq channel. |
| userIds | String Allowed value:(matches: ^[a-zA-Z0-9_\.]+$) | Comma-separated ZUIDs to add as initial members. Max 100. |
| nameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Group name. Required, 1-50 characters. |
| isOpenMembership | Boolean | If true, any network member can join without approval. |
| isNetworkGroup | Boolean | If true, creates an ALL_HANDS (network-wide) group. Requires admin. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Group description. Max 200 characters. |
| fileId | Long | ZFS file ID for a custom group logo. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addGroup?isRequestPublic=false&scopeID=3000000000008&isPrivate=true&templateId=5&canSearch=true&createOrgGroup=false&isRequestPrivate=false&createChannel=false&userIds=10001001,10001002&name=Engineering Team&isOpenMembership=false&isNetworkGroup=false&desc=Group for engineering discussions&fileId=50000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addGroup | JSON Object | Inner addGroup object — success keys and error keys |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure. |
| partitionId | String | ID of the newly created group. Present on success. |
| name | String | Name of the created group. Present on success. |
| isPublic | String | '0' for private, '1' for public. Present on success. |
| errorCode | String | Machine-readable error code. Present on failure. |
| id | String | Same as partitionId. Present on success. |
| url | String | URL slug of the created group. Present on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group created successfully.
{
"addGroup": {
"result": "success",
"partitionId": "3000000255109",
"name": "API Test Group",
"isPublic": "0",
"id": "3000000255109",
"url": "api-test-group"
}
}
Returned when the required name parameter is missing.
{
"addGroup": {
"result": "failure",
"reason": "Group name is required.",
"errorCode": "LESS_THAN_MIN_OCCURANCE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the name, description, or privacy settings of an existing group.
Updates an existing group’s details. You must be a group admin to perform this action. Provide the partitionId of the group and the fields you want to update. Only the specified fields will be changed. If successful, returns result=success. If it fails, returns result=failure with the reason.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateGroupDetails
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateGroupDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isRequestPublic | Boolean | If true, the group is request-to-join public. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| isRequestPrivate | Boolean | If true, the group is request-to-join private. |
| partitionIdMandatory | Long | Group ID to update. Required. |
| nameMandatory | String Allowed value:(matches: (?ims)(.*?)) | New group name. Required, 1–100 characters. |
| isOpenMembership | Boolean | If true, any network member can join without approval. |
| isPrivate | Boolean | If true, makes the group private. If false, public. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | New group description. Max 200 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateGroupDetails?isRequestPublic=false&scopeID=3000000000008&isRequestPrivate=false&partitionId=3000000255109&name=Engineering Team Updated&isOpenMembership=false&isPrivate=true&desc=Updated group description' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateGroupDetails | JSON Object | Inner updateGroupDetails object — success and error keys |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group details updated successfully.
{
"updateGroupDetails": {
"result": "success"
}
}
Returned when the partitionId does not exist or the group has been deleted.
{
"updateGroupDetails": {
"result": "failure",
"reason": "This group has been deleted or does not exist."
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds members or admins to an existing group by user IDs or email addresses.
Adds users to a group. You can add them as members or admins using their ZUIDs, or invite them using their email addresses. You must have permission to manage the group to perform this action. If successful, returns the list of added users. If some users cannot be added, their IDs are returned separately.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/addUsersToGroup
Scope
ZohoPulse.grouplist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addUsersToGroup
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to add users to. Required. |
| adminIds | Long | Comma-separated ZUIDs to add as admins. Max 100. |
| memberIds | Long | Comma-separated ZUIDs to add as members. Max 100. |
| userEmailIds | String Allowed value:(matches: (?ims)(.*?)) | Comma-separated email addresses to add as members. Max 100. Resolved to ZUIDs internally. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addUsersToGroup?scopeID=3000000000008&partitionId=3000000002143&adminIds=10001004&memberIds=10001002,10001003&userEmailIds=alice@zillium.com,bob@partner.com' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addUsersToGroup | JSON Object | Inner addUsersToGroup object — success with member details, or error |
| result | String | 'success' or 'failure'. |
| reason | String | Error message — e.g. 'Access denied'. Present on failure. |
| usersDetails | JSON Array | Array of added member objects. Present on success. |
| role | String | Member role in the group: ADMIN or MEMBER. |
| imageUrl | String | Profile image URL. Present when the member has a custom avatar. |
| name | String | Display name of the member. |
| hasCustomImg | String | 'true' if the member has a custom profile image. |
| canFollow | String | 'true' if the authenticated user can follow this member. Absent for self. |
| emailId | String | Email address. Present based on scope visibility preferences. |
| id | String | Member ID (same as zuid). |
| type | String | Member type code: C (corporate), CL (client), ECL (external client). |
| zuid | String | Zoho User ID. |
| status | String | Member status: ACTIVE, INVITED, etc. |
| failedUserIds | JSON Array | Array of failed user ID objects. Present when some users could not be added. |
| userId | String | ZUID of the user that failed to be added. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Users added successfully. Returns usersDetails array with each added member's details including role, status, and profile info.
{
"addUsersToGroup": {
"result": "success",
"usersDetails": [
{
"role": "MEMBER",
"name": "Vignesh 1",
"canFollow": "true",
"id": "15073567",
"type": "C",
"zuid": "15073567",
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Vignesh 5",
"canFollow": "true",
"id": "15082458",
"type": "C",
"zuid": "15082458",
"status": "ACTIVE"
}
]
}
}
Returned when the caller does not have manage permission or the group does not exist.
{
"addUsersToGroup": {
"result": "failure",
"reason": "Access denied"
}
}
Returned when all specified users are already members of the group. No usersDetails array is present.
{
"addUsersToGroup": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a user from an existing group by user ID.
Removes a user from a group. You must have permission to manage the group to perform this action. If you try to remove yourself while being the only admin, the request will be blocked. If successful, returns result=success. If it fails, returns result=failure with the reason.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/removeUserFromGroup
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/removeUserFromGroup
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to remove the user from. Required. |
| userIdMandatory | Long | ZUID of the user to remove. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/removeUserFromGroup?scopeID=3000000000008&partitionId=3000000255109&userId=15073567' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| removeUserFromGroup | JSON Object | Inner removeUserFromGroup object — success result or error |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied' or sole-admin warning. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
User successfully removed from the group.
{
"removeUserFromGroup": {
"result": "success"
}
}
Returned when the caller does not have manage permission or the group does not exist.
{
"removeUserFromGroup": {
"result": "failure",
"reason": "Access denied"
}
}
Returned when the caller is removing themselves and they are the sole admin of the group.
{
"removeUserFromGroup": {
"result": "failure",
"reason": "Since you are the only admin here, please provide the admin privileges to another member before leaving."
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Joins a public group in a Zoho Connect network.
Joins a public group with open membership. This action is not supported for private groups. If successful, returns result=success with the group details. If it fails, returns result=failure.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/joinGroup
Scope
ZohoPulse.grouplist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to join. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/joinGroup?scopeID=3000000000008&partitionId=3000000255163' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| joinGroup | JSON Object | Inner joinGroup object — success result + nested partition object, or error |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure. |
| partition | JSON Object | Nested partition object with group details. Present on success. |
| typeOrd | String | Ordinal of the partition type. |
| role | String | Caller's role in this group: ADMIN or MEMBER. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| type | String | Partition type: GROUP, DEFAULT. |
| userDetails | JSON Object | Group creator details. |
| name | String | Display name of the creator. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| zuid | String | Zoho User ID of the creator. |
| url | String | URL path of the group. |
| isJoined | String | 'true' if the caller is a member of this group. |
| accessType | String | Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE. |
| isClosed | String | 'true' if the group is closed (requires invitation to join). |
| bgColor | String | Background color hex code for the group avatar. |
| showInFeed | String | 'true' if the favourite group appears in the feed. Present with isFavourite. |
| clientSharedInfo | String | Client shared info message. Present when the group is shared with clients. |
| name | String | Group display name. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT. |
| canJoin | String | 'true' if the caller can join this group. |
| canDelete | String | 'true' if the caller can delete this group. Present for admins. |
| id | String | Group ID. |
| time | String | Group created time as epoch milliseconds. |
| isFavourite | String | 'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true. |
| isUserFollow | String | 'true'/'false' — whether the caller follows this group. |
| status | String | Group status: ACTIVE, LOCK. |
| desc | String | Group description. Present when set. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Successfully joined the group.
{
"joinGroup": {
"result": "success",
"partition": {
"accessType": "OPEN_PUBLIC",
"typeOrd": "2",
"partitionUrl": "public-group",
"name": "Public Group",
"subType": "DEFAULT",
"id": "3000000255163",
"type": "GROUP",
"url": "public-group",
"isUserFollow": "false",
"status": "ACTIVE"
}
}
}
Returned when the user is already a member of the group.
{
"joinGroup": {
"result": "failure",
"reason": "Oops, something went wrong here! Please try again after some time."
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Leaves a group in a Zoho Connect network.
Leaves a group. If you are the only admin, you must assign another admin before you can leave. You cannot leave an All Hands group unless you are a client or external user. If successful, returns result=success.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/leaveGroup
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to leave. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/leaveGroup?scopeID=3000000000008&partitionId=3000000255163' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| leaveGroup | JSON Object | Inner leaveGroup object — success result, assignAdmin flag, or error |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure. |
| assignAdmin | String | 'true' if the user is the sole admin and must assign a new admin before leaving. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Successfully left the group.
{
"leaveGroup": {
"result": "success"
}
}
Returned when the user is the sole admin and must assign a new admin before leaving.
{
"leaveGroup": {
"assignAdmin": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a group to receive updates.
Follows a specific group.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/followPartition
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/followPartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to follow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followPartition?scopeID=3000000000008&partitionId=3000000256092' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Unfollows a group to stop receiving updates.
Unfollows a specific group.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowPartition
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfollowPartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID to unfollow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowPartition?scopeID=3000000000008&partitionId=3000000256092' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves all groups in a network, including those the user has not joined.
Returns all groups in the network, including both joined and not joined groups. Each result includes details such as group identity, access type, membership status, and creator information. Unlike userGroups, which returns only your groups, this returns all groups you can view.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/allGroups
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sorts in ascending order. If false, descending. |
| scopeID | Long | Network (scope) ID. |
| limit | Integer | Maximum number of groups to return. |
| isRecentSort | Boolean | If true, sorts groups by created time instead of alphabetically. |
| isGroupsMetaNeeded | Boolean | If true (default), includes group metadata like role and joined status. |
| includeDefaultPartition | Boolean | If true, includes the default partition (Company Wall) in the response. |
| isFavouriteNeeded | Boolean | If true (default), includes favourite status for each group. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allGroups?isAscSort=true&scopeID=3000000000008&limit=10&isRecentSort=true&isGroupsMetaNeeded=true&includeDefaultPartition=true&isFavouriteNeeded=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| allGroups | JSON Object | Inner allGroups object — groups array on success, error keys on failure |
| result | String | 'failure' on error. |
| reason | String | Error message. Present on failure. |
| groups | JSON Array | Array of group objects. Each has same structure as userGroups. |
| typeOrd | String | Ordinal of the partition type. |
| role | String | Caller's role in this group: ADMIN or MEMBER. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| type | String | Partition type: GROUP, DEFAULT. |
| userDetails | JSON Object | Group creator details. |
| name | String | Display name of the creator. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| zuid | String | Zoho User ID of the creator. |
| url | String | URL path of the group. |
| isJoined | String | 'true' if the caller is a member of this group. |
| accessType | String | Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE. |
| isClosed | String | 'true' if the group is closed (requires invitation to join). |
| bgColor | String | Background color hex code for the group avatar. |
| showInFeed | String | 'true' if the favourite group appears in the feed. Present with isFavourite. |
| clientSharedInfo | String | Client shared info message. Present when the group is shared with clients. |
| name | String | Group display name. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT. |
| canJoin | String | 'true' if the caller can join this group. |
| canDelete | String | 'true' if the caller can delete this group. Present for admins. |
| id | String | Group ID. |
| time | String | Group created time as epoch milliseconds. |
| isFavourite | String | 'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true. |
| isUserFollow | String | 'true'/'false' — whether the caller follows this group. |
| status | String | Group status: ACTIVE, LOCK. |
| desc | String | Group description. Present when set. |
| errorCode | String | Machine-readable error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
All groups in the network (joined and not-joined).
{
"allGroups": {
"groups": [
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "engineering",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "15065799",
"zuid": "15065799"
},
"url": "engineering",
"isJoined": "true",
"accessType": "PRIVATE",
"bgColor": "45B5DB",
"isClosed": "true",
"name": "Engineering",
"logo": "EN",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002143",
"time": "1719915898000",
"isUserFollow": "false",
"status": "ACTIVE"
},
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "engineering",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "15065799",
"zuid": "15065799"
},
"url": "engineering",
"isJoined": "true",
"accessType": "PRIVATE",
"bgColor": "45B5DB",
"isClosed": "true",
"name": "Engineering 2",
"logo": "EN",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002144",
"time": "1720002298000",
"isUserFollow": "false",
"status": "ACTIVE"
}
]
}
}
Returned when the scopeID is invalid.
{
"allGroups": {
"result": "failure",
"reason": "Looks like you do not have access to the network you have entered. Please check the URL and try again.",
"errorCode": "1022"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches all groups the authenticated user belongs to in a network.
Returns all groups the authenticated user is a member of in the network. Each result includes details such as the group name, access type, role, membership status, and creator. You can also sort the results, paginate them using limit, and choose whether to include the default partition, such as Company Wall.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/userGroups
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sorts in ascending order. If false, descending. Used with isRecentSort. |
| scopeID | Long | Network (scope) ID. |
| limit | Integer | Maximum number of groups to return. If omitted, returns all groups. |
| isRecentSort | Boolean | If true, sorts groups by created time instead of alphabetically. |
| isGroupsMetaNeeded | Boolean | If true (default), includes group metadata like role and joined status. |
| includeDefaultPartition | Boolean | If true, includes the default partition (Company Wall) in the response. |
| isFavouriteNeeded | Boolean | If true (default), includes favourite status for each group. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userGroups?isAscSort=true&scopeID=3000000000008&limit=10&isRecentSort=true&isGroupsMetaNeeded=true&includeDefaultPartition=true&isFavouriteNeeded=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| userGroups | JSON Object | Inner userGroups object — groups array with optional default partition, or error keys |
| result | String | Result status — 'failure'. Present on error. |
| reason | String | Error message. Present on failure. |
| defaultPartition | JSON Object | Default partition (Company Wall) object. Present when includeDefaultPartition=true. |
| typeOrd | String | Ordinal of the partition type. |
| role | String | Caller's role in this group: ADMIN or MEMBER. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| type | String | Partition type: GROUP, DEFAULT. |
| userDetails | JSON Object | Group creator details. |
| name | String | Display name of the creator. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| zuid | String | Zoho User ID of the creator. |
| url | String | URL path of the group. |
| isJoined | String | 'true' if the caller is a member of this group. |
| accessType | String | Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE. |
| isClosed | String | 'true' if the group is closed (requires invitation to join). |
| bgColor | String | Background color hex code for the group avatar. |
| showInFeed | String | 'true' if the favourite group appears in the feed. Present with isFavourite. |
| clientSharedInfo | String | Client shared info message. Present when the group is shared with clients. |
| name | String | Group display name. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT. |
| canJoin | String | 'true' if the caller can join this group. |
| canDelete | String | 'true' if the caller can delete this group. Present for admins. |
| id | String | Group ID. |
| time | String | Group created time as epoch milliseconds. |
| isFavourite | String | 'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true. |
| isUserFollow | String | 'true'/'false' — whether the caller follows this group. |
| status | String | Group status: ACTIVE, LOCK. |
| desc | String | Group description. Present when set. |
| groups | JSON Array | Array of group objects the user belongs to. |
| typeOrd | String | Ordinal of the partition type. |
| role | String | Caller's role in this group: ADMIN or MEMBER. |
| partitionUrl | String | URL slug of the group. |
| isPrivate | String | 'true' if the group is private. |
| type | String | Partition type: GROUP, DEFAULT. |
| userDetails | JSON Object | Group creator details. |
| name | String | Display name of the creator. |
| canFollow | String | 'true' if the caller can follow this user. |
| id | String | User ID (same as zuid). |
| zuid | String | Zoho User ID of the creator. |
| url | String | URL path of the group. |
| isJoined | String | 'true' if the caller is a member of this group. |
| accessType | String | Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE. |
| isClosed | String | 'true' if the group is closed (requires invitation to join). |
| bgColor | String | Background color hex code for the group avatar. |
| showInFeed | String | 'true' if the favourite group appears in the feed. Present with isFavourite. |
| clientSharedInfo | String | Client shared info message. Present when the group is shared with clients. |
| name | String | Group display name. |
| logo | String | Short text logo (initials) for the group. |
| subType | String | Group sub-type: DEFAULT. |
| canJoin | String | 'true' if the caller can join this group. |
| canDelete | String | 'true' if the caller can delete this group. Present for admins. |
| id | String | Group ID. |
| time | String | Group created time as epoch milliseconds. |
| isFavourite | String | 'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true. |
| isUserFollow | String | 'true'/'false' — whether the caller follows this group. |
| status | String | Group status: ACTIVE, LOCK. |
| desc | String | Group description. Present when set. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns all groups the user belongs to. Each group includes name, access type, role, and creator details. Groups may be private, open public, or all-hands.
{
"userGroups": {
"groups": [
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "product-development",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "John Smith",
"canFollow": "true",
"id": "10001001",
"zuid": "10001001"
},
"url": "product-development",
"isJoined": "true",
"accessType": "PRIVATE",
"isClosed": "true",
"bgColor": "45B5DB",
"name": "Product Development",
"logo": "PD",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002143",
"time": "1719915898000",
"isUserFollow": "false",
"status": "ACTIVE"
},
{
"typeOrd": "2",
"role": "MEMBER",
"partitionUrl": "everyone-zillium",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "10001002",
"zuid": "10001002"
},
"url": "everyone-zillium",
"isJoined": "true",
"accessType": "OPEN_PUBLIC",
"bgColor": "D7A327",
"name": "Everyone @ Zillium",
"logo": "E",
"subType": "DEFAULT",
"canJoin": "true",
"id": "3000000002172",
"time": "1715756655000",
"isUserFollow": "false",
"status": "ACTIVE",
"desc": "This is the default group for all members."
}
]
}
}
Returned when the scopeID is invalid or the user does not have access to the network.
{
"userGroups": {
"result": "failure",
"reason": "Looks like you do not have access to the network you have entered. Please check the URL and try again.",
"errorCode": "1022"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves posts from a specific group.
Returns a paginated list of posts in a group. You can filter the results by post type, idea status, and sort order.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/partitionStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/v2/partitionStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). |
| scopeID | Long | Network (scope) ID. |
| isDashboard | Boolean | If true, return in dashboard mode. |
| partitionId | Long | Group ID. |
| commentLimit | Integer | Max comments per post. |
| ideaStatus | Long | Filter by idea status IDs. |
| streamLimit | Integer | Max posts to return (5–30). |
| type | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Filter by partition type. |
| version | Integer | API version hint. |
| url | String | Partition URL slug. |
| itemId | Long | Specific item ID to focus on. |
| sortingType | String Allowed value:(matches: ^(createdTimeDesc|mostUpvoted|mostDownvoted|mostDiscussed)$) | Sort order for results. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Filter by post type — STATUS, POLL, QUESTION, IDEA, ANNOUNCEMENT, etc. |
| pageIndex | Integer | Page index for pagination. |
| isCustomIdeaStatus | Boolean | If true, ideaStatus values are custom status IDs. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v2/partitionStreams?scopeID=3000000000008&partitionId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of post objects in the partition. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Partition posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012001,
"content": "Group discussion"
},
{
"streamType": "STATUS",
"streamId": 3000000012002,
"content": "Group discussion"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns members of a specific group.
Returns the list of members in a group. Supports pagination using pageIndex.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/groupMembers
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| partitionIdMandatory | Long | Group ID. Required. |
| pageIndex | Integer | Page index for pagination (default 0). |
| version | Integer | API version. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/groupMembers?scopeID=3000000000008&partitionId=3000000020001&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| usersDetails | JSON Array | Array of group member user objects. |
| role | String | Member role — ADMIN or MEMBER. |
| isFollowing | Boolean | True if caller follows this user. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| mobile | String | Mobile phone number. Present if available. |
| emailId | String | Email address. Present based on scope visibility. |
| type | String | Member type code — C, CL, ECL. |
| zuid | Long | Zoho User ID. |
| workLocation | String | Work location. Present for admins/same-org. |
| seatingLocation | String | Seating location. Present for admins/same-org. |
| imageUrl | String | Profile image URL. Present when custom image exists. |
| name | String | Display name. |
| isUserBlocked | String | 'true' if user is blocked by the caller. |
| canFollow | Boolean | True if caller can follow this user. |
| id | Long | User ID (same as zuid). |
| designation | String | Job title. Present if available. |
| department | String | Department name. Present if available. |
| status | String | Entity status — ACTIVE, INVITED, etc. |
| pendingGroupInviteCount | Integer | Pending group invite count. Present on first page for GROUP/DEFAULT. |
| count | Integer | Total member count. |
| partitionOwner | Long | Group creator's ZUID. Present on first page. |
| moderationStatus | Boolean | True if partition has moderation enabled. |
| partitionSubType | String | Group sub-type. Present on first page. |
| isAdmin | String | 'true' if caller is scope or partition admin. Present on first page. |
| isPrivate | String | 'true' or 'false'. Present on first page. |
| canSwitchAdmin | Boolean | True if caller can switch admin role. Present for free plan. |
| partitionType | String | Partition type — e.g. 'GROUP', 'PROJECT'. Present on first page. |
| accessType | String | Access type of the group. Present on first page. |
| canInviteUsers | Boolean | True if caller can invite users. Present on first page. |
| pageIndex | Integer | Next page index. Present when more pages exist. |
| canManageModerator | Boolean | True if caller can manage moderators. Present on first page for GROUP. |
| canEditPartition | Boolean | True if caller can edit partition settings. |
| isPeopleSynced | String | 'true' if people-synced group. Present for admins on intranet. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns group member listing.
{
"usersDetails": [
{
"role": "MEMBER",
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001002&fs=thumb",
"name": "Jane Doe",
"hasCustomImg": true,
"emailId": "jane.doe@zillium.com",
"id": 10001002,
"type": "C",
"zuid": 10001002
},
{
"role": "MEMBER",
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Alice Smith",
"hasCustomImg": false,
"emailId": "alice.smith@zillium.com",
"id": 10001003,
"type": "C",
"zuid": 10001003
}
],
"count": 25,
"isAdmin": "true"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves the widget configuration for a specific group.
Returns the list of sidebar widgets enabled for a specific group.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/partitionWidgets
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/partitionWidgets
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/partitionWidgets?scopeID=3000000000008&partitionId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| customwidgets | JSON Array | Array of widget objects for the group. |
| widgetName | String | Display name of the widget. |
| widgetId | String | Widget ID — e.g. TRENDING_TAGS, BIRTHDAY_BUDDIES, TOP_CONTRIBUTORS. |
| widgetType | String | Widget type enum value. |
| cssUrl | String | URL for default CSS. |
| customCssUrl | String | URL for custom CSS (if enabled). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Partition widgets returned.
{
"customwidgets": [
{
"widgetName": "Top Contributors",
"widgetId": "TOP_CONTRIBUTORS",
"widgetType": "TOP_CONTRIBUTORS"
},
{
"widgetName": "Top Contributors",
"widgetId": "TOP_CONTRIBUTORS",
"widgetType": "TOP_CONTRIBUTORS"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the top participants of a group.
Retrieves the most active members in a group based on their post activity.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getTopParticipants
Scope
ZohoPulse.grouplist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getTopParticipants
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getTopParticipants?scopeID=3000000000008&partitionId=3000000256092' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| topParticipants | JSON Object | Container for the list of top participants. |
| usersDetails | JSON Array | Array of top participant user objects. |
| name | String | Display name. |
| hasCustomImg | Boolean | Whether the user has a custom profile image. Only present when true. |
| posts | Integer | Number of posts by the participant. |
| zuid | Long | Zoho User ID of the participant. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns top participants with nested userDetails array.
{
"topParticipants": {
"userDetails": [
{
"name": "John Smith",
"hasCustomImg": true,
"posts": 42,
"zuid": 10001001
},
{
"name": "Jane Doe",
"posts": 28,
"zuid": 10001002
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns latest posts in a group since a given time.
Returns posts shared in a specific group or town hall after the given lastViewedTime.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/latestPartitionStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/latestPartitionStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition ID. Required. |
| lastViewedTimeMandatory | Long | Epoch ms — return posts newer than this time. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/latestPartitionStreams?scopeID=3000000000008&partitionId=3000000256092&lastViewedTime=1710800000000' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streams | JSON Array | Array of post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Latest posts in a group since lastViewedTime.
{
"streams": [
{
"streamId": 3000000070010,
"author": {
"name": "John Doe",
"zuid": 700000001
},
"type": "POLL",
"content": "Which day works best?"
},
{
"streamId": 3000000070011,
"author": {
"name": "John Doe",
"zuid": 700000001
},
"type": "POLL",
"content": "Which day works best?"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves latest comments in a group since a given time.
Retrieve comments posted to posts in a specific group since the given lastViewedTime. Shares a URL block with latestPartitionStreams in the repo.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/latestPartitionComments
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/latestPartitionComments
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition ID. Required. |
| lastViewedTimeMandatory | Long | Epoch ms — return comments newer than this time. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/latestPartitionComments?scopeID=3000000000008&partitionId=3000000256092&lastViewedTime=1710800000000' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor. Present when more results exist. |
| comments | JSON Array | Array of comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Latest comments in a group since lastViewedTime.
{
"comments": [
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"commentId": 3000000080001,
"content": "Great update! Thanks for sharing."
},
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"commentId": 3000000080002,
"content": "Great update! Thanks for sharing."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves groups where the current user can perform actions.
Returns the list of groups the authenticated user is a member of, along with permission details for each group. This includes the allowed post types and whether the group is marked as a favorite.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/userActionablePermissionGroups
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/userActionablePermissionGroups
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userActionablePermissionGroups?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| groupinfo | JSON Object | Inner groupinfo object containing groupmeta array |
| groupmeta | JSON Array | Array of group metadata objects with permissions. |
| canCreateBroadcast | String | 'false' when restricted. Present only when restricted. |
| canMarkAsMustRead | String | 'true' if mandatory read is available. Present only for admins with feature access. |
| canMentionGroup | String | 'false' when restricted. Present only when restricted. |
| isMember | String | '1' if user is a member, '0' otherwise. |
| type | String | Partition type code — 'G' (group) or 'P' (manual). |
| categoryName | String | Group category name. Present only when group belongs to a category. |
| accessType | String | Access type — PRIVATE, PUBLIC, OPEN. |
| canPost | String | 'false' when user cannot post. Present only when restricted. |
| clientSharedInfo | JSON Object | Client sharing info with msg and img keys. Present only for client-shared groups. |
| isPublic | String | '1' if public, '0' if private. |
| id | String | Group ID. |
| logoType | String | Logo type ordinal (-1 if none). |
| isFavourite | String | 'true' if user has favourited this group. |
| logoid | String | Group logo ID. |
| canCreatePoll | String | 'false' when restricted. Present only when restricted. |
| canCreateIdea | String | 'false' when restricted. Present only when restricted. |
| isAdmin | String | 'true' if user is an admin. Present only for admin users. |
| canCreateVideoConference | String | 'false' when restricted. Present only when restricted. |
| logoUrl | String | Group logo URL. Empty if no logo. |
| url | String | Group external URL slug. |
| canCreateQuestion | String | 'false' when restricted. Present only when restricted. |
| canPostAnnouncement | String | 'false' when restricted. Present only when restricted. |
| name | String | Group display name (HTML-encoded). |
| canPostEvent | String | 'false' when restricted. Present only when restricted. |
| status | String | Group status ordinal. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns groupmeta array inside userActionablePermissionGroups wrapper.
{
"userActionablePermissionGroups": {
"groupmeta": [
{
"permissions": {
"ANNOUNCEMENT": true,
"EVENTS": true,
"POST": true,
"POLL": true,
"QUESTION": true
},
"name": "Engineering",
"id": 3000000070001,
"isAdmin": true,
"type": "GROUP",
"isFavourite": true
},
{
"permissions": {
"ANNOUNCEMENT": true,
"EVENTS": true,
"POST": true,
"POLL": true,
"QUESTION": true
},
"name": "Engineering 2",
"id": 3000000070002,
"isAdmin": false,
"type": "GROUP",
"isFavourite": false
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Lock, unlock, archive, unarchive, or disable a group.
Change the status of a group. You must be a group admin with permission to manage the group. - Set islock=true to lock the group and prevent members from posting. - Set isarchive=true to archive the group. - Set both isarchive=true and isdisable=true to disable the group. - To reactivate the group, remove all these flags.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/changePartitionStatus
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/changePartitionStatus
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| islock | Boolean | If true, locks the partition (GROUP only). Members can view but cannot post. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition (group/townhall/manual/board) ID. Required. |
| isdisable | Boolean | If true (together with isarchive=true), disables the partition instead of archiving it. |
| isarchive | Boolean | If true, archives (or disables if isdisable is also true) the partition. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| changePartitionStatus | JSON Object | Inner changePartitionStatus object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group successfully unlocked / reactivated (all boolean flags omitted).
{
"changePartitionStatus": {
"result": "success"
}
}
Group successfully archived (isarchive=true).
{
"changePartitionStatus": {
"result": "success"
}
}
Group successfully disabled (isarchive=true, isdisable=true).
{
"changePartitionStatus": {
"result": "success"
}
}
Group successfully locked (islock=true).
{
"changePartitionStatus": {
"result": "success"
}
}
Returned when the caller lacks permission or the partition does not exist.
{
"changePartitionStatus": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Permanently deletes (trash) a group.
Deletes a group. You must be a group admin with permission to manage it. The group is moved to the trash instead of being permanently deleted. If successful, returns result=success. If it fails, returns result=failure with the reason.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deletePartition
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deletePartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required. |
| channelId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePartition?scopeID=3000000000008&partitionId=3000000256092&channelId=C100001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deletePartition | JSON Object | Inner deletePartition object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group successfully deleted (trashed).
{
"deletePartition": {
"result": "success"
}
}
Returned when the caller is not a group admin or lacks the network role permission.
{
"deletePartition": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a new board in the network.
Creates a new task board. The creator is added as the board admin by default. You can also add members and link the board to a group. If successful, returns the created board with its sections and member details.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addBoard
Scope
ZohoPulse.tasks.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| associateGroupId | Long | Group ID to associate the board with. Members of the group will be added to the board. |
| nameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Board name. 1–50 characters. Required. |
| memberIds | Long | Comma-separated user IDs to add as board members. Max 100. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Board description. Max 200 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBoard?scopeID=3000000000008&name=Sprint Board&memberIds=700000002,700000003&desc=Board for sprint tasks' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addBoard | JSON Object | Inner addBoard object — board + members |
| result | String | Result status — 'failure'. Present on failure. |
| members | JSON Array | Array of board member detail objects. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| errorCode | String | Error code. Present on failure. |
| board | JSON Object | Created board detail. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Board creation limit reached.
{
"addBoard": {
"result": "failure",
"errorCode": "CREATE_BOARD_LIMIT_NATIVEAPI"
}
}
Board created successfully.
{
"addBoard": {
"members": [
{
"role": "ADMIN",
"name": "John Doe",
"hasCustomImg": true,
"id": 700000001,
"email": "john@zillium.com",
"zuid": 700000001,
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Jane Smith",
"hasCustomImg": false,
"id": 700000002,
"email": "jane@zillium.com",
"zuid": 700000002,
"status": "ACTIVE"
}
],
"board": {
"typeOrd": 6,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Board",
"canFollow": "true",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"sections": [],
"status": "ACTIVE",
"canCreateTask": "true"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the name or description of an existing board.
Updates the name or description of an existing board. You must be a board admin or have permission to manage the board. If successful, returns result=success with the updated board details. If it fails, returns result=failure.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBoard
Scope
ZohoPulse.tasks.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| name | String Allowed value:(matches: (?ims)(.*?)) | Updated board name. 1–50 characters. |
| boardIdMandatory | Long | Board ID to update. Required. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Updated board description. Max 200 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBoard?scopeID=3000000000008&name=Updated Sprint Board&boardId=3000000050001&desc=Updated description' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateBoard | JSON Object | Inner updateBoard object — result + board detail |
| result | String | Result status — 'success' or 'failure'. |
| board | JSON Object | Updated board detail. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Board updated successfully.
{
"updateBoard": {
"result": "success",
"board": {
"partitionUrl": "sprint-board",
"name": "Updated Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"status": "ACTIVE"
}
}
}
Board update failed.
{
"updateBoard": {
"result": "failure"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds members to an existing board.
Adds one or more users to an existing board as members. You must have permission to manage the board to perform this action. Only active network members who are not already part of the board can be added. All added users are assigned the member role. If successful, returns the details of the users who were added.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/addMembersToBoard
Scope
ZohoPulse.tasks.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addMembersToBoard
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| boardIdMandatory | Long | Board ID. Required. |
| memberIds | Long | Comma-separated user IDs to add. Max 100. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addMembersToBoard?scopeID=3000000000008&boardId=3000000050001&memberIds=700000004,700000005' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addMembersToBoard | JSON Object | Inner addMembersToBoard object — members array + result |
| result | String | Result status — 'success' or 'failure'. |
| usersDetails | JSON Array | Array of added member details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Members added successfully.
{
"addMembersToBoard": {
"result": "success",
"usersDetails": [
{
"role": "MEMBER",
"name": "Alice Brown",
"hasCustomImg": false,
"id": 700000004,
"email": "alice.brown@zillium.com",
"zuid": 700000004,
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Alice Smith",
"hasCustomImg": true,
"id": 700000005,
"email": "alice.smith@zillium.com",
"zuid": 700000005,
"status": "ACTIVE"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a member from a board.
Removes a specific member from a board. You must have permission to manage the board to perform this action. The last admin cannot be removed. If successful, returns result=success.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteMemberFromBoard
Scope
ZohoPulse.tasks.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteMemberFromBoard
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| boardIdMandatory | Long | Board ID. Required. |
| memberIdMandatory | Long | User ID of the member to remove. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteMemberFromBoard?scopeID=3000000000008&boardId=3000000050001&memberId=700000004' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deleteMemberFromBoard | JSON Object | Inner deleteMemberFromBoard object — result only |
| result | String | Result status — 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Member removed successfully.
{
"deleteMemberFromBoard": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves boards for the authenticated user in the network.
Returns all boards that the authenticated user is a member of. Returns board details such as sections, members, permissions, and custom fields. Also includes the default status and priority values used for task display. Supports delta sync using boardsModifiedTime. If the timestamp matches the server cache, the response returns fromCache=true without board data.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v1/myBoards
Scope
ZohoPulse.tasks.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| boardsModifiedTime | Long | Cache timestamp from a previous call. If unchanged, returns fromCache=true. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/myBoards?scopeID=3000000000008&boardsModifiedTime=1742464200000' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| myBoards | JSON Object | Inner myBoards object — contains boards array and cache metadata |
| defaultStatus | JSON Array | Array of default task-status enums. |
| name | String | Localized status name. |
| id | Integer | Status ordinal. |
| colorType | Integer | Status colour index. |
| result | String | Result status — 'failure'. Present on failure. |
| fromCache | Boolean | True if boardsModifiedTime matches cache — response is unchanged. |
| defaultPriority | JSON Array | Array of default task-priority enums. |
| name | String | Localized priority name. |
| id | Integer | Priority ordinal. |
| colorType | Integer | Priority colour index. |
| boardsModifiedTime | Long | Cache timestamp. Pass back on next call for delta sync. |
| boards | JSON Array | Array of board objects. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Boards retrieved successfully.
{
"myBoards": {
"defaultStatus": [
{
"name": "Open",
"id": 0,
"colorType": 0
},
{
"name": "Closed",
"id": 1,
"colorType": 4
}
],
"defaultPriority": [
{
"name": "None",
"id": 0,
"colorType": 0
},
{
"name": "High",
"id": 3,
"colorType": 3
}
],
"boardsModifiedTime": 1742464200000,
"boards": [
{
"typeOrd": 6,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"users": [
700000001,
700000002
],
"sections": [
{
"taskCount": 5,
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colourType": 2
},
{
"taskCount": 8,
"name": "To Smith",
"id": 3000000050011,
"isPrivate": true,
"colourType": 3
}
],
"status": "ACTIVE",
"canCreateTask": "true"
},
{
"typeOrd": 7,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Smith",
"id": 3000000050002,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"users": [
700000001,
700000002
],
"sections": [
{
"taskCount": 5,
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colourType": 2
},
{
"taskCount": 8,
"name": "To Smith",
"id": 3000000050011,
"isPrivate": true,
"colourType": 3
}
],
"status": "ACTIVE",
"canCreateTask": "true"
}
]
}
}
Board data unchanged since last fetch.
{
"myBoards": {
"fromCache": true
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes (trashes) a board.
Moves a board to the trash. You must be a board admin or a network admin with permission to manage it. This removes the board from active use. If successful, returns result=success.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteBoard
Scope
ZohoPulse.tasks.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| boardIdMandatory | Long | Board ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteBoard?scopeID=3000000000008&boardId=3000000050001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deleteBoard | JSON Object | Inner deleteBoard object — result only |
| result | String | Result status — 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Board deleted successfully.
{
"deleteBoard": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Archives, unarchives, or disables a board.
Change the status of a board. You must be a board admin with permission to manage it, and have the required license. - Set isarchive=true to archive the board. - Set both isarchive=true and isdisable=true to disable the board. - To unarchive the board, remove isarchive when the current status is Archive or Disable.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/changePartitionStatus
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/changePartitionStatus
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| islock | Boolean | If true, locks the partition (GROUP only). Members can view but cannot post. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition (group/townhall/manual/board) ID. Required. |
| isdisable | Boolean | If true (together with isarchive=true), disables the partition instead of archiving it. |
| isarchive | Boolean | If true, archives (or disables if isdisable is also true) the partition. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| changePartitionStatus | JSON Object | Inner changePartitionStatus object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Board successfully archived (isarchive=true).
{
"changePartitionStatus": {
"result": "success"
}
}
Board successfully unarchived / reactivated (all boolean flags omitted).
{
"changePartitionStatus": {
"result": "success"
}
}
Returned when the caller lacks permission or the partition does not exist.
{
"changePartitionStatus": {
"result": "failure",
"reason": "Access denied"
}
}
Returned when the board feature license has been exhausted.
{
"changePartitionStatus": {
"result": "failure",
"reason": "Insufficient license"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a new section in a board.
Creates a new section in a board. You must be a board member with permission to create sections. You can also make the section private so that only selected members can view it. If successful, returns the section details, including its ID, name, color, and URL.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addBoardSection
Scope
ZohoPulse.tasks.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/addBoardSection
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Section name. 1–50 characters. Required. |
| boardIdMandatory | Long | Board ID. Required. |
| positionMandatory | Integer | Position index for the new section. Required. |
| isPrivate | Boolean | If true, creates a private section. Defaults to false. |
| colourType | String Allowed value:(matches: ^(0?[0-9])$) | Colour type index (0–9). Defaults to name length mod 10. |
| memberIds | Long | Comma-separated user IDs for private section members. Max 20. Only used when isPrivate=true. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBoardSection?scopeID=3000000000008&name=In Review&boardId=3000000050001&position=2&colourType=4' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addBoardSection | JSON Object | Inner addBoardSection object — section detail |
| result | String | Result status — 'failure'. Present on failure. |
| errorCode | String | Error code. Present on failure. |
| section | JSON Object | Created section detail. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Section created successfully.
{
"addBoardSection": {
"section": {
"taskCount": 0,
"name": "In Review",
"id": 3000000050012,
"isPrivate": false,
"colourType": 4,
"url": "in-review"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves sections and details for a specific board.
Retrieves the complete details of a specific board, including its sections, members, permissions, tags, and statistics. You can identify the board using boardId or boardUrl. This API also checks access permissions and supports shared board access.
Rate limit: 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/boardSections
Scope
ZohoPulse.tasks.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| boardId | Long | Board ID. Provide either boardId or boardUrl. |
| boardUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Board URL slug. Used to resolve the board if boardId is not provided. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/boardSections?scopeID=3000000000008&boardId=3000000050001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| boardSections | JSON Object | Inner boardSections object — sections, members, board detail |
| result | String | Result status — 'failure'. Present on failure. |
| isArchivedSections | String | 'true' if archived sections exist. |
| members | JSON Array | Array of board member detail objects. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| errorCode | String | Error code. Present on failure. |
| sections | JSON Array | Array of section objects. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| board | JSON Object | Board detail object. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Board sections retrieved successfully.
{
"boardSections": {
"members": [
{
"role": "ADMIN",
"name": "John Doe",
"hasCustomImg": true,
"id": 700000001,
"email": "john.doe@zillium.com",
"zuid": 700000001,
"status": "ACTIVE"
},
{
"role": "ADMIN",
"name": "John Smith",
"hasCustomImg": false,
"id": 700000002,
"email": "john.smith@zillium.com",
"zuid": 700000002,
"status": "ACTIVE"
}
],
"sections": [
{
"taskCount": 5,
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colourType": 2,
"url": "to-do"
},
{
"taskCount": 3,
"name": "In Progress",
"id": 3000000050011,
"isPrivate": false,
"colourType": 4,
"url": "in-progress"
}
],
"board": {
"partitionUrl": "sprint-board",
"name": "Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the name or colour of a board section.
Updates the name or color of an existing board section. You must be a board member with permission to create sections. For private sections, you must also be a member of that section. If successful, returns result=success. If it fails, returns result=failure.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBoardSection
Scope
ZohoPulse.tasks.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateBoardSection
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| name | String Allowed value:(matches: (?ims)(.*?)) | Updated section name. 1–50 characters. |
| sectionIdMandatory | Long | Section ID to update. Required. |
| colourType | String Allowed value:(matches: ^(0?[0-9])$) | Updated colour type index (0–9). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBoardSection?scopeID=3000000000008&name=QA Review§ionId=3000000050012&colourType=6' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateBoardSection | JSON Object | Inner updateBoardSection object — result only |
| result | String | Result status — 'success' or 'failure'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Section update failed.
{
"updateBoardSection": {
"result": "failure"
}
}
Section updated successfully.
{
"updateBoardSection": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a section from a board.
Deletes a section from a board along with all its tasks. You must be a board member with permission to create sections. For private sections, you must also be a member of that section. This action also removes related data and triggers notifications.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteBoardSection
Scope
ZohoPulse.tasks.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteBoardSection
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sectionIdMandatory | Long | Section ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteBoardSection?scopeID=3000000000008§ionId=3000000050012' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deleteBoardSection | JSON Object | Inner deleteBoardSection object — empty on success |
| result | String | Result status — 'success'. May be absent (empty body on success). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Section deleted successfully.
{
"deleteBoardSection": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a new task in a board.
Creates a new task in a board section. You must be a board member with permission to create tasks. If successful, returns the full task details, including assignees, section, board, and available permissions.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addTask
Scope
ZohoPulse.tasks.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| userIds | Long | Comma-separated user IDs to assign. Max 100. |
| tagIds | Long | Comma-separated tag IDs. Max 50. |
| boardId | Long | Board ID to create the task in. |
| sectionId | Long | Section ID to place the task in. |
| position | Integer | Position index within the section. |
| titleMandatory | String Allowed value:(matches: (?ims)(.*?)) | Task title. Max 3000 characters. Required. |
| priority | String Allowed value:(matches: ^(None|Low|Medium|High)$) | Task priority — None, Low, Medium, or High. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Task description. Max 50,000 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addTask?scopeID=3000000000008&boardId=3000000050001§ionId=3000000050010&title=Implement login page&priority=High&desc=Build the login page with OAuth support' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addTask | JSON Object | Inner addTask object — post wrapping the task |
| result | String | Result status — 'failure'. Present on failure. |
| stream | JSON Object | Full post object via constructStream(). Contains the nested task object plus post-level fields (id, content, author, etc.). |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Task created successfully.
{
"addTask": {
"stream": {
"task": {
"attachCount": 0,
"streamId": 3000000060002,
"canComplete": "true",
"canEdit": "true",
"section": {
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colorType": 2
},
"assigneesCount": 0,
"shortTitle": "Implement login page",
"title": "Implement login page",
"priority": "High",
"commentCount": 0,
"partition": {
"name": "Sprint Board",
"id": 3000000050001,
"type": "PROJECT"
},
"canAssign": "true",
"subTaskCount": 0,
"percentage": 0,
"createdTime": 1742464200000,
"completedSubTaskCount": 0,
"canDelete": "true",
"id": 3000000060001,
"formattedCreatedTime": "Mar 20, 2026 10:30 AM",
"position": 0,
"desc": "Build the login page with OAuth support",
"status": 0
},
"id": 3000000060002
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves a single task by ID or URL.
Retrieves the details of a specific task, including its comments and complete metadata.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/singleTaskStream
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/singleTaskStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streamUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Post URL slug (alternative to streamId). |
| commentIndex | Integer | Comment pagination start index. |
| scopeID | Long | Network (scope) ID. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type filter. |
| needAllComments | Boolean | If true, return all comments (ignores commentLimit). |
| streamId | Long | Post ID. |
| isRecent | Boolean | Return only recent comments. |
| commentView | String Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$) | Comment ordering — THREAD or RECENT. |
| commentLimit | Integer | Max comments to return. |
| isThread | Boolean | Return threaded comments. |
| includeUnapproved | Boolean | Include unapproved comments (for moderators). |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/singleTaskStream?scopeID=3000000000008&streamId=3000000012007' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Full post object with comments, and task or event metadata when applicable. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Single task with metadata, assignees, due date, and comments.
{
"stream": {
"partition": {
"name": "Engineering Board",
"id": 3000000008501,
"type": "PROJECT",
"url": "engineering-board"
},
"task": {
"formattedCreatedDate": "Mar 22, 2025",
"isFollowing": "false",
"startDateLong": 1711100000000,
"isUpcomingDue": "true",
"shortTitle": "Complete Q1 report",
"isAdmin": false,
"title": "Complete Q1 report",
"priority": "High",
"formattedStartDate": "Mar 22, 2025",
"endDateLong": 1711900000000,
"percentage": 0,
"createdTime": 1711100000000,
"canFollow": "true",
"id": 3000000060001,
"formattedCreatedTime": "Mar 22, 2025 02:33 PM",
"formattedDueDate": "Mar 31, 2025",
"desc": "Compile the quarterly financial and product metrics for the Q1 review.",
"status": 0
},
"comments": [
{
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"id": 3000000080001,
"content": "I will have this ready by Friday."
}
],
"canLike": "false",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"canEdit": true,
"canDelete": true,
"id": 3000000012007,
"canComment": "true",
"type": "TASK",
"status": "ACTIVE",
"commentCount": 1
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a single field of an existing task.
Updates a single field of an existing task, such as the title, description, due date, start date, priority, status, or assignee. Only one field can be updated per request. The response will include details based on the field that was updated.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateTask
Scope
ZohoPulse.tasks.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| removeAssigneeId | Long | Comma-separated user IDs to remove from assignees. Max 50. |
| isClearStartDate | Boolean | If true, removes the start date. |
| isClearDueDate | Boolean | If true, removes the due date. |
| title | String Allowed value:(matches: (?ims)(.*?)) | Updated task title. |
| priority | String Allowed value:(matches: ^(None|Low|Medium|High)$) | Updated priority — None, Low, Medium, or High. |
| assigneeId | Long | Comma-separated user IDs to add as assignees. Max 50. |
| taskIdMandatory | Long | Task ID to update. Required. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Updated task description. |
| status | Long | Updated task status as a long value. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateTask?scopeID=3000000000008&title=Updated task title&taskId=3000000060001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateTask | JSON Object | Inner updateTask object — varies by update type. Only one update per call. |
| completedTime | String | Formatted completion time. Present on completion. |
| startDateLong | Long | Start-date timestamp (epoch ms). Present on start-date update. |
| taskPriority | JSON Object | Updated priority object. Present on priority update. |
| name | String | Localized priority name. |
| id | Integer | Priority ordinal. |
| colorType | Integer | Priority colour index. |
| shortTitle | String | Truncated title. Present on title update. |
| title | String | Updated title. Present on title update. |
| formattedStartDate | String | Human-readable start date. Present on start-date update. |
| isOverDue | String | 'true' if past due. Present on due-date update. |
| endDateLong | Long | Due-date timestamp (epoch ms). Present on due-date update. |
| canAssign | String | 'true' if caller can assign. Present on assignee update. |
| taskPercentage | Long | Completion percentage. Present on status update. |
| canCompleteCheckList | String | Whether sub-task checklist can be completed. |
| isTodayDue | String | 'true' if due today. Present on due-date update. |
| formattedDueDate | String | Human-readable due date. Present on due-date update. |
| taskStatus | JSON Object | Updated status object. Present on status update. |
| name | String | Localized status name. |
| id | Integer | Status ordinal. |
| colorType | Integer | Status colour index. |
| completedBy | JSON Object | User who completed the task. Present on completion. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| desc | String | Updated description. Present on description update. |
| isCompleted | String | 'true' if completed. Present on status → 100%. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Task priority updated.
{
"updateTask": {
"taskPriority": {
"name": "High",
"id": 3,
"colorType": 3
}
}
}
Task title updated successfully.
{
"updateTask": {
"shortTitle": "Updated task title",
"title": "Updated task title"
}
}
Task status updated to completed.
{
"updateTask": {
"completedTime": "Mar 20, 2026 11:00 AM",
"taskPercentage": 100,
"taskStatus": {
"name": "Closed",
"id": 1,
"colorType": 4
},
"isCompleted": "true"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a task from a board.
Deletes a task from a board. You must have permission to delete the task. This action also removes any related sub-tasks and clears associated notifications.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteTask
Scope
ZohoPulse.tasks.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| taskIdMandatory | Long | Task ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteTask?scopeID=3000000000008&taskId=3000000060001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deleteTask | JSON Object | Inner deleteTask object — result |
| result | String | Result status — 'success'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Task deleted successfully.
{
"deleteTask": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Publish or unpublish an article within a manual.
Publishes a draft article or unpublish a published one. You must have permission to edit the article or its manual. If successful, returns result=success with the published time.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/publishArticle
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/publishArticle
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| publishContent | String Allowed value:(matches: (?ims)(.*?)) | Optional content to add as a publish note. Max 5000 characters. |
| articleIdMandatory | Long | Article (sub-page) ID to publish or unpublish. Required. |
| isPublish | Boolean | If true, publishes the article. If false, unpublishes it. Defaults to true. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/publishArticle?scopeID=3000000000008&publishContent=Publishing this article.&articleId=3000000025001&isPublish=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| publishArticle | JSON Object | Inner publishArticle object — success/error response |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
| publishedOn | Long | Publish timestamp (epoch ms). Present on success. |
| canShowVersion | Boolean | Whether version history is available. Present on success. |
| formattedPublishedTime | String | Human-readable published time. Present on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Article published successfully.
{
"publishArticle": {
"result": "success",
"publishedOn": 1742464200000,
"canShowVersion": true,
"formattedPublishedTime": "Mar 20, 2026 10:30 AM"
}
}
Returned when the article has no name or the caller lacks permissions.
{
"publishArticle": {
"result": "failure",
"reason": "Cannot publish article without name"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves all articles and chapters for a manual.
Returns the complete article and chapter tree for a specific manual.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/manualArticles
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualId | Long | Manual (partition) ID. Provide either manualId or url. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| url | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Manual URL slug. Used if manualId is not provided. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/manualArticles?manualId=3000000020001&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| chapter | JSON Array | Array of chapter objects with nested articles. |
| isPublished | Boolean | True if published. |
| name | String | Chapter name. |
| id | Long | Chapter ID. |
| type | String | Always 'CHAPTER'. |
| url | String | Chapter URL slug. |
| article | JSON Array | Array of article objects within this chapter. |
| modifiedTime | String | Formatted last modification time. |
| publishedTime | String | Formatted publication time. |
| isPublished | Boolean | True if published. |
| name | String | Article title. |
| id | Long | Article ID. |
| type | String | Always 'ARTICLE'. |
| url | String | Article URL slug. |
| partition | JSON Object | Manual partition object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| canFollow | Boolean | True if the caller can follow this manual. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual articles and chapters returned.
{
"chapter": [
{
"isPublished": true,
"name": "Getting Started",
"id": 3000000025001,
"type": "CHAPTER",
"url": "getting-started",
"article": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"name": "Introduction",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"name": "Introduction 2",
"id": 3000000030002,
"type": "ARTICLE",
"url": "introduction"
}
]
},
{
"isPublished": false,
"name": "Getting Smith",
"id": 3000000025002,
"type": "CHAPTER",
"url": "getting-started",
"article": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"name": "Introduction",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"name": "Introduction 2",
"id": 3000000030002,
"type": "ARTICLE",
"url": "introduction"
}
]
}
],
"partition": {
"name": "Getting Started Guide",
"id": 3000000020001,
"type": "PAGE",
"url": "getting-started-guide"
},
"canFollow": true
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches articles authored by the authenticated user.
Returns all articles that the authenticated user has authored across all manuals. Returns an articles array with metadata including title, URL, parent manual info, timestamps, and comment count.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/myArticles
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| limit | Integer | Maximum number of articles to return. Range 1–200. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myArticles?isAscSort=false&scopeID=3000000000008&limit=20&sortBy=recent' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| myArticles | JSON Object | Inner myArticles object — array of articles the caller authored |
| showMore | Boolean | Whether more results are available for pagination. |
| articles | JSON Array | Array of article objects. |
| modifiedTime | Long | Last modified timestamp (epoch ms). |
| streamId | Long | Associated post ID. |
| isPublished | Boolean | Whether the article is published. |
| type | String | Article type. |
| url | String | URL path of the article. |
| commentCount | Integer | Number of comments on the article. |
| manualId | Long | ID of the parent manual. |
| publishedTime | Long | Publish timestamp (epoch ms). 0 if unpublished. |
| name | String | Article title. |
| createdTime | Long | Creation timestamp (epoch ms). |
| manualUrl | String | URL of the parent manual. |
| id | Long | Article ID. |
| manualName | String | Name of the parent manual. |
| excerpt | String | Short excerpt of article content. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns a list of articles authored by the caller.
{
"myArticles": {
"showMore": false,
"articles": [
{
"modifiedTime": 1742464200000,
"streamId": 3000000025002,
"isPublished": true,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 3,
"manualId": 3000000020001,
"publishedTime": 1742464200000,
"name": "How to Create a Group",
"createdTime": 1742464200000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025001,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups in Zoho Connect..."
},
{
"modifiedTime": 1742550600000,
"streamId": 3000000025003,
"isPublished": false,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 6,
"manualId": 3000000020002,
"publishedTime": 1742550600000,
"name": "How Smith",
"createdTime": 1742550600000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025002,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups in Zoho Connect..."
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves articles within a specific group.
Returns all articles belonging to manuals in a specific group. Identify the group by partitionId or url. Returns an articles array with timestamps, parent manual info, and comment counts.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/partitionArticles
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/partitionArticles
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Group ID. Provide either partitionId or url. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
| url | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Group URL slug. Used to resolve the group if partitionId is not provided. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/partitionArticles?isAscSort=false&scopeID=3000000000008&partitionId=3000000010001&sortBy=recent&url=engineering' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| partitionArticles | JSON Object | Inner partitionArticles object — articles within a specific group |
| showMore | Boolean | Whether more results are available for pagination. |
| articles | JSON Array | Array of article objects. |
| modifiedTime | Long | Last modified timestamp (epoch ms). |
| streamId | Long | Associated post ID. |
| isPublished | Boolean | Whether the article is published. |
| type | String | Article type. |
| url | String | URL path of the article. |
| commentCount | Integer | Number of comments on the article. |
| manualId | Long | ID of the parent manual. |
| publishedTime | Long | Publish timestamp (epoch ms). 0 if unpublished. |
| name | String | Article title. |
| createdTime | Long | Creation timestamp (epoch ms). |
| manualUrl | String | URL of the parent manual. |
| id | Long | Article ID. |
| manualName | String | Name of the parent manual. |
| excerpt | String | Short excerpt of article content. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns articles from the specified group.
{
"partitionArticles": {
"showMore": false,
"articles": [
{
"modifiedTime": 1742464200000,
"streamId": 3000000025002,
"isPublished": true,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 3,
"manualId": 3000000020001,
"publishedTime": 1742464200000,
"name": "How to Create a Group",
"createdTime": 1742464200000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025001,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups..."
},
{
"modifiedTime": 1742550600000,
"streamId": 3000000025003,
"isPublished": false,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 6,
"manualId": 3000000020002,
"publishedTime": 1742550600000,
"name": "How Smith",
"createdTime": 1742550600000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025002,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups..."
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns articles that the authenticated user follows.
Returns all articles that the authenticated user is following.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/followingArticles
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/followingArticles
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/followingArticles?isAscSort=false&scopeID=3000000000008&sortBy=recent' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| articles | JSON Array | Array of article objects the user is following. |
| modifiedTime | String | Formatted last modification time. |
| streamId | Long | Associated feed post ID. |
| isPublished | Boolean | True if the article is published. |
| author | JSON Object | Article author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| type | String | Always 'ARTICLE'. |
| url | String | Article URL slug. |
| commentCount | Integer | Number of comments. |
| publishedTime | String | Formatted publication time. |
| name | String | Article title. |
| createdTime | String | Formatted creation time. |
| manualUrl | String | Parent manual URL slug. |
| id | Long | Article ID. |
| manualName | String | Parent manual display name. |
| excerpt | String | Article excerpt or summary. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Following articles returned.
{
"articles": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"manualName": "Getting Started Guide",
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"manualName": "Getting Started Guide",
"type": "ARTICLE",
"url": "introduction"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches the most viewed articles across all manuals.
Returns articles ranked by view count.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/mostViewedArticles
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/mostViewedArticles
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| pageIndex | Integer | Page index for pagination (0-based). |
| limit | Integer | Maximum number of articles to return. Defaults to 20. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mostViewedArticles?scopeID=3000000000008&pageIndex=0&limit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| articles | JSON Array | Array of most viewed article objects. |
| modifiedTime | String | Formatted last modification time. |
| streamId | Long | Associated feed post ID. |
| isPublished | Boolean | True if published. |
| author | JSON Object | Article author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| uniqueViewCount | Integer | Unique viewer count. |
| type | String | Always 'ARTICLE'. |
| url | String | Article URL slug. |
| commentCount | Integer | Number of comments. |
| name | String | Article title. |
| createdTime | String | Formatted creation time. |
| manualUrl | String | Parent manual URL slug. |
| id | Long | Article ID. |
| viewCount | Integer | Total view count. |
| manualName | String | Parent manual display name. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Most viewed articles returned.
{
"articles": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060001,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"uniqueViewCount": 198,
"type": "ARTICLE",
"url": "introduction",
"commentCount": 5,
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"viewCount": 342,
"manualName": "Getting Started Guide"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060002,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"uniqueViewCount": 201,
"type": "ARTICLE",
"url": "introduction",
"commentCount": 8,
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"viewCount": 345,
"manualName": "Getting Started Guide"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves articles tagged with a specific tag within a manual.
Returns articles in a specific manual that are tagged with the given tag ID.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/articlesByTag
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Manual (partition) ID. Required. |
| tagIdMandatory | Long | Tag ID to filter by. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/articlesByTag?scopeID=3000000000008&partitionId=3000000020001&tagId=3000000005001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| articlesList | JSON Array | Array of article objects matching the tag. |
| modifiedTime | String | Formatted last modification time. |
| streamId | Long | Associated feed post ID. |
| isPublished | Boolean | True if the article is published. |
| author | JSON Object | Article author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| type | String | Always 'ARTICLE'. |
| url | String | Article URL slug. |
| commentCount | Integer | Number of comments. |
| publishedTime | String | Formatted publication time. |
| name | String | Article title. |
| createdTime | String | Formatted creation time. |
| manualUrl | String | Parent manual URL slug. |
| id | Long | Article ID. |
| manualName | String | Parent manual display name. |
| excerpt | String | Article excerpt or summary. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tagged articles returned.
{
"articlesList": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060001,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 3,
"publishedTime": "Jan 10, 2025 10:30 AM",
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"manualName": "Getting Started Guide",
"excerpt": "Welcome to the guide..."
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060002,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 6,
"publishedTime": "Jan 10, 2025 10:30 AM",
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"manualName": "Getting Started Guide",
"excerpt": "Welcome to the guide..."
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the full content of an article.
Returns the full HTML content of a manual article, including metadata and navigation details.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/articleContent
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualId | Long | Manual (partition) ID containing the article. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| articleId | Long | Article ID. Provide either articleId or articleUrl. |
| manualUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Manual URL slug. Used to resolve the manual if manualId is not provided. |
| isexcludeComments | Boolean | If true, excludes comments from the response. |
| articleUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Article URL slug. Used if articleId is not provided. |
| convertVideoTag | Boolean | If true, converts embedded video tags to a portable format (v1 only). |
| version | Integer | API version — 1 for v1 format, 0 or 2 for default format. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/articleContent?manualId=3000000020001&scopeID=3000000000008&articleId=3000000030001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isFollowing | Boolean | True if the caller is following this article. |
| streamId | Long | Associated feed post ID. |
| eachArticle | JSON Object | Article metadata object. |
| modifiedTime | String | Formatted last modification time. |
| streamId | Long | Associated feed post ID. |
| isPublished | Boolean | True if the article is published. |
| author | JSON Object | Article author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| type | String | Always 'ARTICLE'. |
| url | String | Article URL slug. |
| commentCount | Integer | Number of comments. |
| publishedTime | String | Formatted publication time. |
| name | String | Article title. |
| createdTime | String | Formatted creation time. |
| manualUrl | String | Parent manual URL slug. |
| id | Long | Article ID. |
| manualName | String | Parent manual display name. |
| excerpt | String | Article excerpt or summary. |
| canFollow | Boolean | True if the caller can follow. |
| manualUrl | String | Parent manual URL slug. |
| manualTitle | String | Parent manual title. |
| content | String | Rendered HTML content of the article. |
| url | String | Full article URL. |
| commentCount | Integer | Number of comments. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Article content returned.
{
"isFollowing": true,
"streamId": 3000000060001,
"eachArticle": {
"modifiedTime": "Jan 12, 2025 02:30 PM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
"canFollow": true,
"manualUrl": "getting-started-guide",
"manualTitle": "Getting Started Guide",
"content": "<p>Welcome to the guide.</p>",
"url": "https://connect.zoho.com/portal/zillium/manual/getting-started-guide/article/introduction",
"commentCount": 5
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Adds a tag to an article.
Assigns an existing tag to a specific article.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/addArticleTag
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Article ID. Required. |
| tagIdMandatory | Long | Tag ID to assign. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addArticleTag?scopeID=3000000000008&streamId=3000000030001&tagId=3000000005001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag added to article.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Removes a tag from an article.
Removes a specific tag from the article.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/removeArticleTag
Scope
ZohoPulse.pagelist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/removeArticleTag
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Article ID. Required. |
| tagIdMandatory | Long | Tag ID to remove. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/removeArticleTag?scopeID=3000000000008&streamId=3000000030001&tagId=3000000005001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Tag removed from article.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a manual article to receive updates.
Follows a specific article so the authenticated user receives notifications on changes.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/followArticle
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| articleIdMandatory | Long | Article ID to follow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followArticle?scopeID=3000000000008&articleId=3000000030001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Article followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Stops following a manual article.
Unfollows a specific article so the authenticated user no longer receives notifications.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowArticle
Scope
ZohoPulse.pagelist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfollowArticle
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| articleIdMandatory | Long | Article ID to unfollow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowArticle?scopeID=3000000000008&articleId=3000000030001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Article unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Exports an article as a PDF file.
Starts exporting the selected article as a PDF. If successful, returns result=success.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/exportArticleAsPDF
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/exportArticleAsPDF
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| includeAttachments | Boolean | If true, includes article attachments in the export. |
| articleIdMandatory | Long | Article ID to export. Required. |
| zipPassword | String Allowed value:(matches: (?ims)(.*?)) | Password for the exported zip file. 4–10 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/exportArticleAsPDF?scopeID=3000000000008&articleId=3000000030001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' when the export file is ready for download. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Export initiated.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Downloads a previously exported article file.
Downloads the exported article file using the export ID.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/getArticleExportFile
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getArticleExportFile
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| isInline | Boolean | If true, returns the file inline (for browser viewing) instead of as a download. |
| exportIdMandatory | Long | Export ID returned by exportArticleAsPDF. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getArticleExportFile?scopeID=3000000000008&exportId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| String |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | File download |
Sample Response: HTTP 200
The exported PDF or ZIP file is returned as a binary download.
"(binary file content)"
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes an article from a manual.
Permanently deletes the specified article.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteArticle
Scope
ZohoPulse.pagelist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| articleIdMandatory | Long | Article ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteArticle?scopeID=3000000000008&articleId=3000000030001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Article deleted successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the chapter list for a manual.
Returns the list of chapters belonging to a specific manual.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getChaptersFromManual
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getChaptersFromManual
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualIdMandatory | Long | Manual (partition) ID. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getChaptersFromManual?manualId=3000000020001&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| chapters | JSON Array | Array of chapter objects. |
| createdBy | Long | Creator user ID. |
| name | String | Chapter name. |
| createdTime | String | Formatted creation time. |
| id | Long | Chapter ID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Chapters returned.
{
"result": "success",
"chapters": [
{
"createdBy": 3000000000123,
"name": "Getting Started",
"createdTime": "Jan 5, 2025 09:00 AM",
"id": 3000000025001
},
{
"createdBy": 3000000000124,
"name": "Getting Smith",
"createdTime": "Jan 5, 2025 09:00 AM",
"id": 3000000025002
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a new manual.
Creates a new manual page with a specific name and optional description.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addPage
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| nameMandatory | String Allowed value:(matches: (?ims)(.*?)) | Manual name. 1–100 characters. Required. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Manual description. Max 500 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addPage?scopeID=3000000000008&name=API Reference&desc=API documentation for developers' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| partitionId | String | Partition ID of the newly created page/manual. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Page created successfully.
{
"result": "success",
"partitionId": "3000000020010"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Uploads a banner image for a manual.
Uploads a banner image for a specific manual. Max file size 10 MB.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/uploadPageBanner
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/uploadPageBanner
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Page (manual partition) ID. Required. |
- Request Body
multipart/form-data
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| photoContent | Binary |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/uploadPageBanner?scopeID=3000000000008&partitionId=3000000020001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'Sample Request Body
{
"photoContent": "string"
}
Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| url | String | URL of the uploaded banner image. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Banner uploaded.
{
"result": "success",
"url": "https://connect.zoho.com/connect/ViewImage?scopeID=3000000000008&partitionId=3000000020001"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Uploads a logo image for a manual.
Uploads a logo image for a specific manual. Max file size 10 MB.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/uploadPageLogo
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/uploadPageLogo
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Page (manual partition) ID. Required. |
- Request Body
multipart/form-data
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| photoContent | Binary |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/uploadPageLogo?scopeID=3000000000008&partitionId=3000000020001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'Sample Request Body
{
"photoContent": "string"
}
Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| url | String | URL of the uploaded logo image. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Logo uploaded.
{
"result": "success",
"url": "https://connect.zoho.com/connect/ViewImage?scopeID=3000000000008&partitionId=3000000020001"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Publishes or unpublishes a manual.
Publishes a draft manual or unpublishes a published one. You must be a manual admin with permission to manage it. You can also choose to publish all unpublished articles in the manual at the same time using publishAllArticles.
Rate limit: 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/publishManual
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualIdMandatory | Long | Manual (page partition) ID to publish or unpublish. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Parent group ID that the manual belongs to. Required. |
| isPublic | Boolean | If true, makes the manual public. Defaults to false. |
| publishAllArticles | Boolean | If true, publishes all unpublished articles in the manual. Defaults to false. |
| isPublish | Boolean | If true, publishes the manual. If false, unpublishes it. Defaults to false. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/publishManual?manualId=3000000020001&scopeID=3000000000008&partitionId=3000000010001&isPublic=false&publishAllArticles=true&isPublish=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| publishManual | JSON Object | Inner publishManual object — success result or error with reason |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual published successfully.
{
"publishManual": {
"result": "success"
}
}
Returned when the caller does not have admin permissions on the manual.
{
"publishManual": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a manual to receive updates.
Follows a specific manual so the authenticated user receives notifications on changes.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/followManual
Scope
ZohoPulse.pagelist.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualIdMandatory | Long | Manual (partition) ID to follow. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followManual?manualId=3000000020001&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Stops following a manual.
Unfollows a specific manual so the authenticated user no longer receives notifications.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowManual
Scope
ZohoPulse.pagelist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfollowManual
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manualIdMandatory | Long | Manual (partition) ID to unfollow. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowManual?manualId=3000000020001&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns all manuals accessible to the authenticated user.
Returns all manuals (published and draft) that the authenticated user can access.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/allManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allManuals?isAscSort=true&scopeID=3000000000008&sortBy=alpha' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Current page index for pagination. |
| manuals | JSON Array | Array of manual objects. |
| canEdit | Boolean | True if the caller can edit. |
| isDraft | Boolean | True if the manual is a draft. |
| bannerUrl | String | Banner image URL. |
| articleCount | Integer | Number of articles in the manual. |
| type | String | Always 'MANUAL'. |
| parentPartition | JSON Object | Parent group object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| bgColor | String | Background color hex code. |
| canPublish | Boolean | True if the caller can publish. |
| canFollow | Boolean | True if the caller can follow. |
| logo | String | Logo initial character. |
| canDelete | Boolean | True if the caller can delete. |
| id | Long | Manual partition ID. |
| navigationType | String | Navigation display type. |
| isFavourite | Boolean | True if marked as favourite by the caller. |
| isFollowing | Boolean | True if the caller is following. |
| isPublished | Boolean | True if the manual is published. |
| author | JSON Object | Manual author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| isAdmin | Boolean | True if the caller is admin of this manual. |
| url | String | Manual URL slug. |
| logoUrl | String | Logo image URL. |
| formatedTime | String | Formatted creation/modification time. |
| showInFeed | Boolean | True if shown in feed. |
| name | String | Manual name. |
| desc | String | Manual description. |
| status | String | Manual status — ACTIVE, DRAFT, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
All manuals returned.
{
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"articleCount": 12,
"type": "MANUAL",
"url": "getting-started-guide",
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"formatedTime": "Jan 5, 2025 09:00 AM",
"bgColor": "#4CAF50",
"name": "Getting Started Guide",
"canFollow": true,
"logo": "G",
"id": 3000000020001,
"desc": "A beginner guide",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"articleCount": 15,
"type": "MANUAL",
"url": "getting-started-guide",
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"formatedTime": "Jan 5, 2025 09:00 AM",
"bgColor": "#4CAF50",
"name": "Getting Smith",
"canFollow": false,
"logo": "G",
"id": 3000000020002,
"desc": "A beginner guide",
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves the manual dashboard grouped by groups.
Returns the manual dashboard with manuals organized by groups.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/getManualDashboard
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getManualDashboard
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| groupIndex | Integer | Group page index for incremental loading. |
| manualEnabledGroups | JSON Array | Array of group IDs that have manuals enabled. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getManualDashboard?scopeID=3000000000008&groupIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| favourites | JSON Array | Array of favourite manual objects. |
| canEdit | Boolean | True if the caller can edit. |
| isDraft | Boolean | True if the manual is a draft. |
| bannerUrl | String | Banner image URL. |
| articleCount | Integer | Number of articles in the manual. |
| type | String | Always 'MANUAL'. |
| parentPartition | JSON Object | Parent group object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| bgColor | String | Background color hex code. |
| canPublish | Boolean | True if the caller can publish. |
| canFollow | Boolean | True if the caller can follow. |
| logo | String | Logo initial character. |
| canDelete | Boolean | True if the caller can delete. |
| id | Long | Manual partition ID. |
| navigationType | String | Navigation display type. |
| isFavourite | Boolean | True if marked as favourite by the caller. |
| isFollowing | Boolean | True if the caller is following. |
| isPublished | Boolean | True if the manual is published. |
| author | JSON Object | Manual author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| isAdmin | Boolean | True if the caller is admin of this manual. |
| url | String | Manual URL slug. |
| logoUrl | String | Logo image URL. |
| formatedTime | String | Formatted creation/modification time. |
| showInFeed | Boolean | True if shown in feed. |
| name | String | Manual name. |
| desc | String | Manual description. |
| status | String | Manual status — ACTIVE, DRAFT, etc. |
| manualGroupIds | JSON Array | Array of group IDs (long). |
| groups | JSON Array | Array of group objects with manuals. |
| parentPartition | JSON Object | Parent group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| manuals | JSON Array | Array of manual objects in this group. |
| isPublished | Boolean | True if published. |
| name | String | Manual name. |
| articleCount | Integer | Number of articles. |
| id | Long | Manual partition ID. |
| type | String | Always 'MANUAL'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual dashboard with groups returned.
{
"favourites": [],
"manualGroupIds": [
3000000010001,
3000000010002
],
"groups": [
{
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"manuals": [
{
"isPublished": true,
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL"
},
{
"isPublished": false,
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL"
}
]
},
{
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"manuals": [
{
"isPublished": true,
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL"
},
{
"isPublished": false,
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL"
}
]
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve manuals created or owned by the authenticated user.
Returns all manuals created or owned by the authenticated user. Fetches details such as the manual title, URL, article count, published status, and available permissions. The response also includes canCreateNew, which shows whether the user can create a new manual.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/myManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| limit | Integer | Maximum number of manuals to return. Range 1–200. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myManuals?isAscSort=false&scopeID=3000000000008&limit=20&sortBy=recent' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| myManuals | JSON Object | Inner myManuals object — array of manuals the caller owns/created |
| canCreateNew | Boolean | Whether the caller has permission to create a new manual. |
| pageIndex | Integer | Next page index for pagination. Present only if more results exist. |
| manuals | JSON Array | Array of manual objects. |
| isFollowing | Boolean | Whether the caller is following this manual. |
| isPublished | Boolean | Whether the manual is published. |
| canEdit | Boolean | Whether the caller can edit this manual. |
| isDraft | Boolean | Whether the manual is in draft state. |
| articleCount | Integer | Number of articles in the manual. |
| isAdmin | Boolean | Whether the caller is an admin of this manual. |
| type | String | Always 'MANUAL'. |
| url | String | URL path of the manual. |
| formatedTime | String | Formatted last-modified time. |
| name | String | Manual title. |
| canPublish | Boolean | Whether the caller can publish this manual. |
| canFollow | Boolean | Whether the caller can follow this manual. |
| canDelete | Boolean | Whether the caller can delete this manual. |
| id | Long | Manual ID. |
| desc | String | Manual description. |
| status | String | Manual status — e.g. 'ACTIVE', 'ARCHIVED'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns a list of manuals owned by the caller.
{
"myManuals": {
"canCreateNew": true,
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"canEdit": true,
"isDraft": false,
"articleCount": 5,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": true,
"canFollow": true,
"canDelete": true,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"canEdit": false,
"isDraft": true,
"articleCount": 8,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": false,
"canFollow": false,
"canDelete": false,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns manuals belonging to a specific group.
Returns manuals within a specific group.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/groupManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Group URL slug. |
| pageIndex | Integer | Page index for pagination (0-based). |
| partitionId | Long | Group ID. Provide either partitionId or partitionUrl. |
| limit | Integer | Maximum number of manuals to return. Defaults to 20. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
| searchByPartName | String Allowed value:(matches: (?ims)(.*?)) | Filter manuals by name (partial match). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/groupManuals?scopeID=3000000000008&pageIndex=0&partitionId=3000000010001&limit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Current page index for pagination. |
| manuals | JSON Array | Array of manual objects for the group. |
| canEdit | Boolean | True if the caller can edit. |
| isDraft | Boolean | True if the manual is a draft. |
| bannerUrl | String | Banner image URL. |
| articleCount | Integer | Number of articles in the manual. |
| type | String | Always 'MANUAL'. |
| parentPartition | JSON Object | Parent group object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| bgColor | String | Background color hex code. |
| canPublish | Boolean | True if the caller can publish. |
| canFollow | Boolean | True if the caller can follow. |
| logo | String | Logo initial character. |
| canDelete | Boolean | True if the caller can delete. |
| id | Long | Manual partition ID. |
| navigationType | String | Navigation display type. |
| isFavourite | Boolean | True if marked as favourite by the caller. |
| isFollowing | Boolean | True if the caller is following. |
| isPublished | Boolean | True if the manual is published. |
| author | JSON Object | Manual author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| isAdmin | Boolean | True if the caller is admin of this manual. |
| url | String | Manual URL slug. |
| logoUrl | String | Logo image URL. |
| formatedTime | String | Formatted creation/modification time. |
| showInFeed | Boolean | True if shown in feed. |
| name | String | Manual name. |
| desc | String | Manual description. |
| status | String | Manual status — ACTIVE, DRAFT, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Group manuals returned.
{
"pageIndex": 1,
"manuals": [
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL",
"url": "getting-started-guide",
"status": "ACTIVE"
},
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL",
"url": "getting-started-guide",
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve manuals within a specific group.
Returns all manuals in a specific group. You can identify the group using its partitionId or url. Gets manual details such as title, article count, and available permissions, along with the group's name, URL, and ID.
Rate limit: 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/partitionManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/partitionManuals
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | Long | Group ID. Provide either partitionId or url. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
| searchByPartName | String Allowed value:(matches: (?ims)(.*?)) | Filter manuals by name (partial match). |
| url | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Group URL slug. Used to resolve the group if partitionId is not provided. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/partitionManuals?isAscSort=true&scopeID=3000000000008&partitionId=3000000010001&sortBy=alpha&searchByPartName=guide&url=engineering' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| partitionManuals | JSON Object | Inner partitionManuals object — manuals within a specific group |
| canCreateNew | Boolean | Whether the caller can create a new manual in this group. |
| partitionName | String | Display name of the group. |
| partitionUrl | String | URL slug of the group. |
| partitionId | Long | Group ID. |
| pageIndex | Integer | Next page index for pagination. Present only if more results exist. |
| manuals | JSON Array | Array of manual objects. |
| isFollowing | Boolean | Whether the caller is following this manual. |
| isPublished | Boolean | Whether the manual is published. |
| canEdit | Boolean | Whether the caller can edit this manual. |
| isDraft | Boolean | Whether the manual is in draft state. |
| articleCount | Integer | Number of articles in the manual. |
| isAdmin | Boolean | Whether the caller is an admin of this manual. |
| type | String | Always 'MANUAL'. |
| url | String | URL path of the manual. |
| formatedTime | String | Formatted last-modified time. |
| name | String | Manual title. |
| canPublish | Boolean | Whether the caller can publish this manual. |
| canFollow | Boolean | Whether the caller can follow this manual. |
| canDelete | Boolean | Whether the caller can delete this manual. |
| id | Long | Manual ID. |
| desc | String | Manual description. |
| status | String | Manual status — e.g. 'ACTIVE', 'ARCHIVED'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns manuals from the specified group.
{
"partitionManuals": {
"canCreateNew": true,
"partitionName": "Engineering",
"partitionUrl": "engineering",
"partitionId": 3000000010001,
"manuals": [
{
"isFollowing": false,
"isPublished": true,
"canEdit": true,
"isDraft": false,
"articleCount": 5,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": true,
"canFollow": true,
"canDelete": true,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": true,
"isPublished": false,
"canEdit": false,
"isDraft": true,
"articleCount": 8,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": false,
"canFollow": false,
"canDelete": false,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns manuals marked as favorites by the authenticated user.
Returns manuals that the authenticated user has added to their favorites.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/favoriteManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/favoriteManuals
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| startIndex | Integer | Start index for pagination (0-based). |
| limit | Integer | Maximum number of manuals to return. Range 1–30. |
| searchByPartName | String Allowed value:(matches: (?ims)(.*?)) | Filter manuals by name (partial match). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/favoriteManuals?scopeID=3000000000008&startIndex=0&limit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manuals | JSON Array | Array of favourite manual objects. |
| canEdit | Boolean | True if the caller can edit. |
| isDraft | Boolean | True if the manual is a draft. |
| bannerUrl | String | Banner image URL. |
| articleCount | Integer | Number of articles in the manual. |
| type | String | Always 'MANUAL'. |
| parentPartition | JSON Object | Parent group object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| bgColor | String | Background color hex code. |
| canPublish | Boolean | True if the caller can publish. |
| canFollow | Boolean | True if the caller can follow. |
| logo | String | Logo initial character. |
| canDelete | Boolean | True if the caller can delete. |
| id | Long | Manual partition ID. |
| navigationType | String | Navigation display type. |
| isFavourite | Boolean | True if marked as favourite by the caller. |
| isFollowing | Boolean | True if the caller is following. |
| isPublished | Boolean | True if the manual is published. |
| author | JSON Object | Manual author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| isAdmin | Boolean | True if the caller is admin of this manual. |
| url | String | Manual URL slug. |
| logoUrl | String | Logo image URL. |
| formatedTime | String | Formatted creation/modification time. |
| showInFeed | Boolean | True if shown in feed. |
| name | String | Manual name. |
| desc | String | Manual description. |
| status | String | Manual status — ACTIVE, DRAFT, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Favorite manuals returned.
{
"manuals": [
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL",
"isFavourite": true,
"url": "getting-started-guide",
"status": "ACTIVE"
},
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL",
"isFavourite": false,
"url": "getting-started-guide",
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns manuals featured by the network admin.
Returns manuals that have been marked as featured by the admin.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/featuredManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/featuredManuals
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| pageIndex | Integer | Page index for pagination (0-based). |
| limit | Integer | Maximum number of manuals to return. Range 1–30. |
| searchByPartName | String Allowed value:(matches: (?ims)(.*?)) | Filter manuals by name (partial match). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/featuredManuals?scopeID=3000000000008&pageIndex=0&limit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| manuals | JSON Array | Array of featured manual objects. |
| canEdit | Boolean | True if the caller can edit. |
| isDraft | Boolean | True if the manual is a draft. |
| bannerUrl | String | Banner image URL. |
| articleCount | Integer | Number of articles in the manual. |
| type | String | Always 'MANUAL'. |
| parentPartition | JSON Object | Parent group object. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| bgColor | String | Background color hex code. |
| canPublish | Boolean | True if the caller can publish. |
| canFollow | Boolean | True if the caller can follow. |
| logo | String | Logo initial character. |
| canDelete | Boolean | True if the caller can delete. |
| id | Long | Manual partition ID. |
| navigationType | String | Navigation display type. |
| isFavourite | Boolean | True if marked as favourite by the caller. |
| isFollowing | Boolean | True if the caller is following. |
| isPublished | Boolean | True if the manual is published. |
| author | JSON Object | Manual author. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| isAdmin | Boolean | True if the caller is admin of this manual. |
| url | String | Manual URL slug. |
| logoUrl | String | Logo image URL. |
| formatedTime | String | Formatted creation/modification time. |
| showInFeed | Boolean | True if shown in feed. |
| name | String | Manual name. |
| desc | String | Manual description. |
| status | String | Manual status — ACTIVE, DRAFT, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Featured manuals returned.
{
"manuals": [
{
"formatedTime": "Feb 1, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Bob",
"id": 3000000000456
},
"name": "Marketing Resources",
"articleCount": 8,
"id": 3000000020005,
"type": "MANUAL",
"url": "marketing-resources",
"status": "ACTIVE"
},
{
"formatedTime": "Feb 1, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Bob",
"id": 3000000000456
},
"name": "Marketing Smith",
"articleCount": 11,
"id": 3000000020006,
"type": "MANUAL",
"url": "marketing-resources",
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches manuals that the authenticated user follows.
Retrieve all manuals that the authenticated user is following. Returns details such as the manual title, URL, article count, published status, and available permissions. The response also includes canCreateNew, which shows whether the user can create a new manual.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/followingManuals
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/followingManuals
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| isAscSort | Boolean | If true, sort in ascending order. Defaults to false. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| limit | Integer | Maximum number of manuals to return. Range 1–200. |
| sortBy | String Allowed value:(matches: alpha|recent) | Sort order: 'alpha' (alphabetical) or 'recent' (most recent first). |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/followingManuals?isAscSort=false&scopeID=3000000000008&limit=20&sortBy=recent' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| followingManuals | JSON Object | Inner followingManuals object — array of manuals the caller follows |
| canCreateNew | Boolean | Whether the caller has permission to create a new manual. |
| pageIndex | Integer | Next page index for pagination. Present only if more results exist. |
| manuals | JSON Array | Array of manual objects. |
| isFollowing | Boolean | Whether the caller is following this manual. |
| isPublished | Boolean | Whether the manual is published. |
| canEdit | Boolean | Whether the caller can edit this manual. |
| isDraft | Boolean | Whether the manual is in draft state. |
| articleCount | Integer | Number of articles in the manual. |
| isAdmin | Boolean | Whether the caller is an admin of this manual. |
| type | String | Always 'MANUAL'. |
| url | String | URL path of the manual. |
| formatedTime | String | Formatted last-modified time. |
| name | String | Manual title. |
| canPublish | Boolean | Whether the caller can publish this manual. |
| canFollow | Boolean | Whether the caller can follow this manual. |
| canDelete | Boolean | Whether the caller can delete this manual. |
| id | Long | Manual ID. |
| desc | String | Manual description. |
| status | String | Manual status — e.g. 'ACTIVE', 'ARCHIVED'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns a list of manuals the caller is following.
{
"followingManuals": {
"canCreateNew": true,
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"canEdit": false,
"isDraft": false,
"articleCount": 5,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": false,
"canFollow": true,
"canDelete": false,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"canEdit": true,
"isDraft": true,
"articleCount": 8,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": true,
"canFollow": false,
"canDelete": true,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves groups that have the manuals feature enabled.
Returns groups where the manuals feature is active.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/manualGroups
Scope
ZohoPulse.pagelist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| doActions | Boolean | If true, includes available actions for each group. |
| fetchCategory | Boolean | If true, includes category data. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/manualGroups?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| partitions | JSON Array | Array of group objects. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| result | String | 'success' on success. |
| canPublishInCompany | Boolean | True if the caller can publish manuals in the company wall. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual-enabled groups returned.
{
"partitions": [
{
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
{
"name": "Engineering 2",
"id": 3000000010002,
"type": "GROUP",
"url": "engineering"
}
],
"result": "success",
"canPublishInCompany": true
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Archives, unarchives, or disables a manual.
Changes the status of a manual. You must be a manual admin with permission to manage it and have the required license. - Set isarchive=true to archive the manual. - Set both isarchive=true and isdisable=true to disable the manual. - To unarchive the manual, remove isarchive when the current status is Archive or Disable.
Rate limit: 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/changePartitionStatus
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/changePartitionStatus
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| islock | Boolean | If true, locks the partition (GROUP only). Members can view but cannot post. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition (group/townhall/manual/board) ID. Required. |
| isdisable | Boolean | If true (together with isarchive=true), disables the partition instead of archiving it. |
| isarchive | Boolean | If true, archives (or disables if isdisable is also true) the partition. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| changePartitionStatus | JSON Object | Inner changePartitionStatus object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Manual successfully unarchived / reactivated (all boolean flags omitted).
{
"changePartitionStatus": {
"result": "success"
}
}
Manual successfully archived (isarchive=true).
{
"changePartitionStatus": {
"result": "success"
}
}
Returned when the caller lacks permission, insufficient license, or the partition does not exist.
{
"changePartitionStatus": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Permanently deletes (trashes) a manual.
Deletes a manual. You must be a scope admin or manual admin with manage permissions. The manual and its articles are trashed. Returns result=success on success, or result=failure with a reason on error.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deletePartition
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deletePartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required. |
| channelId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePartition?scopeID=3000000000008&partitionId=3000000256092&channelId=C100001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deletePartition | JSON Object | Inner deletePartition object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returned when the caller is not a manual/scope admin or lacks the network role permission.
{
"deletePartition": {
"result": "failure",
"reason": "Access denied"
}
}
Manual successfully deleted (trashed).
{
"deletePartition": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve posts from a town hall.
Returns a paginated list of posts in a town hall. You can filter by post type, sort the results, choose a view mode, control comment view, search by keyword, and paginate through the list.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/townhallStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/townhallStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). |
| keywordId | Long | Filter by keyword (tag) ID. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Townhall URL slug. |
| partitionId | Long | Townhall ID. |
| sortType | String Allowed value:(matches: ^(createdTimeAsc|createdTimeDesc|mostUpvoted|recentActivity)$) | Sort order for results. |
| commentView | String Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$) | Comment ordering — THREAD or RECENT. |
| viewType | String Allowed value:(matches: ^(default|twoColumn)$) | View mode — e.g. list, grid. |
| filterType | String Allowed value:(matches: ^(unanswered|answered|all|townhallPolls|townhallAnnouncements)$) | Filter by townhall post type. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/townhallStreams?scopeID=3000000000008&partitionId=3000000080010' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of townhall post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Townhall posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012010,
"content": "CEO Q&A Session"
},
{
"streamType": "STATUS",
"streamId": 3000000012011,
"content": "CEO Q&A Session"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve bookmarked posts from town halls.
Retrieves a paginated list of town hall posts bookmarked by the authenticated user.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/bookmarkedTownhallStreams
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/bookmarkedTownhallStreams
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor (epoch ms). |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/bookmarkedTownhallStreams?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page (epoch ms). |
| streams | JSON Array | Array of bookmarked townhall post objects. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Bookmarked townhall posts returned.
{
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012011,
"content": "Bookmarked townhall post"
},
{
"streamType": "STATUS",
"streamId": 3000000012012,
"content": "Bookmarked townhall post"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Archive, unarchive, or disable a town hall.
Changes the status of a town hall. You must be a town hall admin with manage permission to do this. - To archive a town hall, set isarchive=true. You can do this only after the event end time. - To disable a town hall, set both isarchive=true and isdisable=true. - To unarchive a town hall, omit isarchive when the current status is ARCHIVE or DISABLE.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/changePartitionStatus
Scope
ZohoPulse.grouplist.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/changePartitionStatus
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| islock | Boolean | If true, locks the partition (GROUP only). Members can view but cannot post. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Partition (group/townhall/manual/board) ID. Required. |
| isdisable | Boolean | If true (together with isarchive=true), disables the partition instead of archiving it. |
| isarchive | Boolean | If true, archives (or disables if isdisable is also true) the partition. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| changePartitionStatus | JSON Object | Inner changePartitionStatus object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Townhall successfully archived (isarchive=true). Event must have ended.
{
"changePartitionStatus": {
"result": "success"
}
}
Townhall successfully unarchived / reactivated (all boolean flags omitted).
{
"changePartitionStatus": {
"result": "success"
}
}
Returned when the caller lacks permission, the townhall has not ended, or the partition does not exist.
{
"changePartitionStatus": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Permanently deletes (trashes) a town hall.
Deletes a town hall. The caller must be a town hall admin with manage permissions. The town hall and its associated posts and broadcasts are trashed. Returns result=success on success, or result=failure with a reason on error.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deletePartition
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deletePartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required. |
| channelId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePartition?scopeID=3000000000008&partitionId=3000000256092&channelId=C100001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deletePartition | JSON Object | Inner deletePartition object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Townhall successfully deleted (trashed).
{
"deletePartition": {
"result": "success"
}
}
Returned when the caller is not a townhall admin or lacks the network role permission.
{
"deletePartition": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Create a new event.
Creates a new event with title, description, location, start/end time, all-day flag, RSVP, reminder settings, invitees, recurrence configuration, logo, and event type. Supports posting to a specific group, private events, file attachments, and repetition rules (daily, weekly, monthly, yearly).
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addEvent
Scope
ZohoPulse.events.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| startMonthMandatory | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Start month (1–12). Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | End date (1–31). |
| canSendEmail | Boolean | If true, sends email notifications to invitees. |
| repeatEndYear | String Allowed value:(matches: ^(19|20)\d\d$) | Recurrence end year. |
| canPostInFeed | Boolean | If true, posts the event in the group/network feed. |
| isPrivate | Boolean | If true, creates a private event. |
| titleMandatory | String Allowed value:(matches: (?ims)(.*?)) | Event title. Max 3,000 characters. Required. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | End year. |
| frequency | Integer | Recurrence frequency — 1: daily, 2: weekly, 3: monthly, 4: yearly. |
| allDay | Boolean | If true, the event spans the entire day. |
| howOftenRepetition | Integer | Interval between recurrences (e.g. every 2 weeks). |
| monthOfYear | Integer | Month of the year for yearly recurrence (1–12). |
| repeatEndMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Recurrence end month (1–12). |
| dayOfWeek | String Allowed value:(matches: ^0?([1-7])$) | Days of the week for weekly recurrence (1=Sun, 7=Sat). Max 7. |
| fileIds | Long | Comma-separated attachment file IDs. |
| repeatRemDay | String Allowed value:(matches: ^(0|1|2|7)$) | Recurring event reminder — days before (0, 1, 2, or 7). |
| shareMembers | Long | Member ZUIDs to share event with. Max 20. |
| logoType | Integer | Event logo type. |
| repeatEndDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Recurrence end date (1–31). |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | End minute (0–59). |
| intervalHour | Integer | Reminder hour-of-day for all-day events (0–23). |
| partitionId | Long | Group ID. Omit for network feed. |
| startYearMandatory | String Allowed value:(matches: ^(19|20)\d\d$) | Start year (e.g. 2026). Required. |
| intervalMinute | Integer | Reminder minute interval — 5, 15, 30, 60, or 120 minutes before. |
| invitedGroups | Long | Group IDs to invite. Max 20. |
| invitedMembers | Long | Member ZUIDs to invite. Max 20. |
| repeatRemHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Recurring event reminder — hour of day (0–23). |
| startMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Start minute (0–59). Omit for all-day events. |
| isRsvp | Boolean | If true, RSVP is enabled for the event. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | End hour (0–23). |
| eventTypeId | Long | Event type ID for categorization. |
| repeatRemType | String Allowed value:(matches: 0|1) | Recurring event reminder type — 0: none, 1: enabled. |
| dayOfMonth | Integer | Day of the month for monthly recurrence (1–31). |
| startHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Start hour (0–23). Omit for all-day events. |
| repeatWeekType | Integer | Week type for monthly recurrence (e.g. first, second, last week). |
| intervalDay | Integer | Reminder day interval — 0, 1, 2, or 7 days before. |
| location | String Allowed value:(matches: (?ims)(.*?)) | Event location. Max 250 characters. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | End month (1–12). |
| startDateMandatory | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Start date (1–31). Required. |
| logoId | Long | Event logo image ID. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Event description. Max 10,000 characters. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addEvent?scopeID=3000000000008&startMonth=5&endDate=17&canSendEmail=true&canPostInFeed=true&title=Team Offsite 2026&endYear=2026&endMin=0&partitionId=3000000256092&startYear=2026&startMin=0&isRsvp=true&endHour=18&startHour=9&location=Mountain Retreat Center, Colorado&endMonth=5&startDate=15&desc=Annual team offsite at the mountain retreat.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Created event object with event metadata. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Event created successfully |
Sample Response: HTTP 200
Event created successfully.
{
"addEvent": {
"stream": {
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000075001,
"canComment": "true",
"type": "EVENT",
"title": "Team Offsite 2026",
"content": "Annual team offsite at the mountain retreat.",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update an existing event.
Updates event fields including title, description, location, start/end time, all-day flag, RSVP, reminder settings, invitees, file attachments, logo, event type, and group. Supports file upload for event logo image.
Rate limited to 25 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateEvent
Scope
ZohoPulse.events.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Event ID to update. Required. |
| startMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Updated start month (1–12). |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Updated end date (1–31). |
| title | String Allowed value:(matches: (?ims)(.*?)) | Updated event title. Max 3,000 characters. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Updated end year. |
| removedFileIds | Long | File IDs to remove. |
| deleteMemInvitees | Long | Member invitee ZUIDs to remove. |
| allDay | Boolean | If true, the event spans the entire day. |
| fileIds | Long | File IDs to attach. |
| shareMembers | Long | Member ZUIDs to share with. |
| logoType | Integer | Event logo type. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Updated end minute (0–59). |
| intervalHour | Integer | Reminder hour-of-day for all-day events (0–23). |
| partitionId | Long | Move event to a different group. |
| startYear | String Allowed value:(matches: ^(19|20)\d\d$) | Updated start year (e.g. 2026). |
| intervalMinute | Integer | Reminder minute interval — 5, 15, 30, 60, or 120 minutes before. |
| invitedGroups | Long | Group IDs to invite. |
| invitedMembers | Long | Member ZUIDs to invite. |
| reorderFileIds | Long | File IDs in desired display order. |
| startMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Updated start minute (0–59). |
| deleteGrpInvitees | Long | Group invitee IDs to remove. |
| isRsvp | Boolean | If true, RSVP is enabled for the event. |
| version | Integer | API version hint. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Updated end hour (0–23). |
| eventTypeId | Long | Change the event type ID. |
| startHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Updated start hour (0–23). |
| deletesharedMembers | Long | Shared member ZUIDs to remove. |
| intervalDay | Integer | Reminder day interval — 0, 1, 2, or 7 days before. |
| location | String Allowed value:(matches: (?ims)(.*?)) | Updated event location. Max 250 characters. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Updated end month (1–12). |
| startDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Updated start date (1–31). |
| logoId | Long | Event logo image ID. |
| desc | String Allowed value:(matches: (?ims)(.*?)) | Updated event description. Max 10,000 characters. |
- Request Body
multipart/form-data
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| eventLogoImage | Binary |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateEvent?scopeID=3000000000008&streamId=3000000075001&title=Team Offsite 2026 (Updated)&startMin=30&isRsvp=true&startHour=10&location=Mountain Retreat Center, Denver CO' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'Sample Request Body
{
"eventLogoImage": "string"
}
Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Updated event object with event metadata. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Event updated successfully |
Sample Response: HTTP 200
Event updated successfully.
{
"updateEvent": {
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000075001,
"canComment": "true",
"type": "EVENT",
"title": "Team Offsite 2026 (Updated)",
"content": "Annual team offsite at the mountain retreat.",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a single event by ID or URL.
Retrieve a single event with its comments, and full metadata. Shares the same response shape as singleStream.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/singleEventStream
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/singleEventStream
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| streamUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Post URL slug (alternative to streamId). |
| commentIndex | Integer | Comment pagination start index. |
| scopeID | Long | Network (scope) ID. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type filter. |
| needAllComments | Boolean | If true, return all comments (ignores commentLimit). |
| streamId | Long | Post ID. |
| isRecent | Boolean | Return only recent comments. |
| commentView | String Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$) | Comment ordering — THREAD or RECENT. |
| commentLimit | Integer | Max comments to return. |
| isThread | Boolean | Return threaded comments. |
| includeUnapproved | Boolean | Include unapproved comments (for moderators). |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/singleEventStream?scopeID=3000000000008&streamId=3000000012006' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| stream | JSON Object | Full post object with comments, and task or event metadata when applicable. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Single event with metadata, RSVP, timing, and comments.
{
"stream": {
"comments": [
{
"author": {
"name": "Jane Smith",
"hasCustomImg": true,
"zuid": 700000002
},
"id": 3000000080001,
"content": "Looking forward to this!"
}
],
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"canEdit": true,
"link": {
"linkurl": "https://connect.zoho.com/portal/intranet/event/3000000012006?isNative=true",
"title": "Team Building Activity",
"desc": "Outdoor team building activity for the engineering group."
},
"type": "EVENT",
"commentCount": 1,
"partition": {
"name": "Engineering",
"id": 3000000008501,
"type": "GROUP",
"url": "engineering"
},
"canDelete": true,
"id": 3000000012006,
"canComment": "true",
"event": {
"streamId": 3000000012006,
"formattedEndTime": "Mar 22, 2025 05:20 PM",
"canRSVP": "true",
"invitedUserCount": 10,
"shortTitle": "Team Building Activity",
"title": "Team Building Activity",
"type": "EVENT",
"yesCount": 5,
"formattedStartTime": "Mar 22, 2025 02:33 PM",
"noCount": 1,
"location": "Mountain Retreat Center, Colorado",
"startTime": 1711100000000,
"endTime": 1711110000000,
"logoType": 2,
"isRSVPAllowed": true,
"desc": "Outdoor team building activity for the engineering group."
},
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve upcoming events from the network or a specific group.
Returns upcoming event objects with metadata including title, location, RSVP status, start/end time, and event type. Supports calendar-view mode, partition-scoped queries, time-range filtering, and pagination. Optionally returns townhall events and repeating events.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/upcomingEvents
Scope
ZohoPulse.events.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| isDashboard | Boolean | If true, returns dashboard-optimized event data. |
| partitionUrl | String Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$) | Partition URL slug. Used to resolve the partition if partitionId is not provided. |
| partitionId | Long | Group ID. Omit for network-wide events. |
| partitionType | Integer | Partition type filter (e.g. GROUP, TOWNHALL). |
| version | Integer | API version hint. |
| eventTypeIds | Long | Comma-separated event type IDs to filter. |
| pageIndex | Integer | Page index for pagination. |
| limit | Integer | Max events to return. Range: 1–300. |
| selectedPartIds | Long | Comma-separated partition IDs to filter events from specific groups. |
| startTime | Long | Lower-bound epoch ms — return events starting from this time. |
| isDesc | Boolean | If true, returns events in descending order. |
| endTime | Long | Upper-bound epoch ms — return events ending before this time. |
| sharedWithMe | Boolean | If true, returns only events shared with the current user. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/upcomingEvents?scopeID=3000000000008&limit=20&startTime=1710900000000&endTime=1713492000000' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for subsequent requests. |
| repetitionEvents | JSON Array | Array of repeating event objects (calendar view only). |
| date | String | Event date key from events map (format: M-d-yyyy). |
| streamId | Long | Post ID for the event. |
| formattedEndTime | String | Formatted end time. Absent for all-day events. |
| startMonth | Integer | Start month (1-12). |
| endDate | Integer | End day of month (conditional). |
| canEdit | Boolean | Whether user can edit (conditional). |
| canRSVP | String | String 'true' when RSVP is enabled (absent otherwise). |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Post type (EVENT, SHOWTIME_EVENT, etc.). |
| endYear | Integer | End year (conditional). |
| isAllDay | String | String 'true' for all-day events (absent otherwise). |
| partition | JSON Object | Partition object (conditional — present for non-MEMBER partitions). |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| endDay | Integer | End day of week (conditional). |
| startTime | Long | Event start epoch ms. |
| canDelete | Boolean | Whether user can delete (conditional). |
| logoType | Integer | Logo type identifier. |
| endMin | Integer | End minute (conditional). |
| startDay | Integer | Start day of week (1=Sun..7=Sat). |
| startYear | Integer | Start year. |
| isStarted | String | String 'true' when event has started (absent otherwise). |
| startMin | Integer | Start minute (0-59). |
| userDetails | JSON Object | Event author object. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| endHour | Integer | End hour (conditional). |
| formattedStartTime | String | Formatted start time (e.g. '09:00 AM'). Absent for all-day events. |
| startHour | Integer | Start hour (0-23). |
| location | String | Event location (conditional). |
| endTime | Long | Event end epoch ms (conditional). |
| isExpired | String | String 'true' when event has ended (absent otherwise). |
| endMonth | Integer | End month (conditional). |
| logoId | Long | Logo image ID (conditional). |
| startDate | Integer | Start day of month. |
| desc | String | Event description (conditional). |
| events | JSON Array | Array of upcoming event objects. |
| date | String | Event date key from events map (format: M-d-yyyy). |
| streamId | Long | Post ID for the event. |
| formattedEndTime | String | Formatted end time. Absent for all-day events. |
| startMonth | Integer | Start month (1-12). |
| endDate | Integer | End day of month (conditional). |
| canEdit | Boolean | Whether user can edit (conditional). |
| canRSVP | String | String 'true' when RSVP is enabled (absent otherwise). |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Post type (EVENT, SHOWTIME_EVENT, etc.). |
| endYear | Integer | End year (conditional). |
| isAllDay | String | String 'true' for all-day events (absent otherwise). |
| partition | JSON Object | Partition object (conditional — present for non-MEMBER partitions). |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| endDay | Integer | End day of week (conditional). |
| startTime | Long | Event start epoch ms. |
| canDelete | Boolean | Whether user can delete (conditional). |
| logoType | Integer | Logo type identifier. |
| endMin | Integer | End minute (conditional). |
| startDay | Integer | Start day of week (1=Sun..7=Sat). |
| startYear | Integer | Start year. |
| isStarted | String | String 'true' when event has started (absent otherwise). |
| startMin | Integer | Start minute (0-59). |
| userDetails | JSON Object | Event author object. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| endHour | Integer | End hour (conditional). |
| formattedStartTime | String | Formatted start time (e.g. '09:00 AM'). Absent for all-day events. |
| startHour | Integer | Start hour (0-23). |
| location | String | Event location (conditional). |
| endTime | Long | Event end epoch ms (conditional). |
| isExpired | String | String 'true' when event has ended (absent otherwise). |
| endMonth | Integer | End month (conditional). |
| logoId | Long | Logo image ID (conditional). |
| startDate | Integer | Start day of month. |
| desc | String | Event description (conditional). |
| townhalls | JSON Array | Array of townhall event objects (network-level only, native API). |
| date | String | Event date key from events map (format: M-d-yyyy). |
| streamId | Long | Post ID for the event. |
| formattedEndTime | String | Formatted end time. Absent for all-day events. |
| startMonth | Integer | Start month (1-12). |
| endDate | Integer | End day of month (conditional). |
| canEdit | Boolean | Whether user can edit (conditional). |
| canRSVP | String | String 'true' when RSVP is enabled (absent otherwise). |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Post type (EVENT, SHOWTIME_EVENT, etc.). |
| endYear | Integer | End year (conditional). |
| isAllDay | String | String 'true' for all-day events (absent otherwise). |
| partition | JSON Object | Partition object (conditional — present for non-MEMBER partitions). |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| endDay | Integer | End day of week (conditional). |
| startTime | Long | Event start epoch ms. |
| canDelete | Boolean | Whether user can delete (conditional). |
| logoType | Integer | Logo type identifier. |
| endMin | Integer | End minute (conditional). |
| startDay | Integer | Start day of week (1=Sun..7=Sat). |
| startYear | Integer | Start year. |
| isStarted | String | String 'true' when event has started (absent otherwise). |
| startMin | Integer | Start minute (0-59). |
| userDetails | JSON Object | Event author object. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| endHour | Integer | End hour (conditional). |
| formattedStartTime | String | Formatted start time (e.g. '09:00 AM'). Absent for all-day events. |
| startHour | Integer | Start hour (0-23). |
| location | String | Event location (conditional). |
| endTime | Long | Event end epoch ms (conditional). |
| isExpired | String | String 'true' when event has ended (absent otherwise). |
| endMonth | Integer | End month (conditional). |
| logoId | Long | Logo image ID (conditional). |
| startDate | Integer | Start day of month. |
| desc | String | Event description (conditional). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Upcoming events retrieved successfully |
Sample Response: HTTP 200
Upcoming events retrieved successfully.
{
"upcomingEvents": {
"modifiedTime": 1710900000000,
"events": [
{
"date": "5-15-2026",
"streamId": 3000000075001,
"startMonth": 5,
"startDay": 5,
"canEdit": true,
"canRSVP": "true",
"startYear": 2026,
"shortTitle": "Team Offsite 2026",
"title": "Team Offsite 2026",
"type": "EVENT",
"startMin": 0,
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"formattedStartTime": "09:00 AM",
"startHour": 9,
"location": "Mountain Retreat Center, Colorado",
"startTime": 1747299600000,
"canDelete": true,
"endTime": 1747386000000,
"logoType": 2,
"startDate": 15
},
{
"date": "5-20-2026",
"streamId": 3000000075010,
"formattedEndTime": "03:00 PM",
"startMonth": 5,
"startDay": 3,
"canEdit": true,
"startYear": 2026,
"shortTitle": "Sprint Planning",
"title": "Sprint Planning",
"type": "EVENT",
"startMin": 0,
"userDetails": {
"name": "Jane Smith",
"hasCustomImg": false,
"zuid": 700000002
},
"formattedStartTime": "02:00 PM",
"partition": {
"name": "Engineering",
"id": 3000000256092
},
"startHour": 14,
"startTime": 1747731600000,
"endTime": 1747735200000,
"isExpired": "true",
"logoType": 0,
"startDate": 20
}
]
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Delete an event from the feed.
Deletes the specified event. The shared URL block also covers deleteShowtimeEvent and deleteConference actions.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteEvent
Scope
ZohoPulse.events.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Event ID to delete. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteEvent?scopeID=3000000000008&streamId=3000000075001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Event deleted successfully |
Sample Response: HTTP 200
Event deleted successfully.
{
"deleteEvent": {
"result": "success"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Start a video conference in a group and notify invitees.
Start a video conference in the specified group and notify the invited users.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/startVideoConf
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/startVideoConf
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID. Required. |
| inviteesMandatory | Long | Comma-separated ZUIDs of invited users. Max 10. Required. |
| sessionIdMandatory | Long | Video conference session ID. Required. |
| title | String Allowed value:(matches: (?ims)(.*?)) | Conference title. |
| urlMandatory | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Video conference URL. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/startVideoConf?scopeID=3000000000008&partitionId=3000000070001&invitees=60012345678,60012345679&sessionId=9000000001&title=Team Sync&url=https://meet.zoho.com/abc123' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| reason | String | Error reason. Only present on failure. |
| STATUS | String | 'success' or 'failure'. |
| streamId | Long | ID of the created VIDEO_CONFERENCE post. |
| TITLE | String | Conference title. Only present when provided. |
| INVITEES | JSON Array | Array of invited user ZUIDs (long values). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Video conference started.
{
"STATUS": "success",
"streamId": 3000000070001,
"TITLE": "Team Sync",
"INVITEES": [
60012345678,
60012345679
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Stop an active video conference.
Stop the specified active video conference.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/stopVideoConference
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/stopVideoConference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Video conference post ID to stop. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/stopVideoConference?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| STATUS | String | 'FAILURE' on failure. |
| message | String | Error message. Only present on failure. |
| status | String | 'SUCCESS' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Video conference stopped.
{
"status": "SUCCESS"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve user details for a broadcast post.
Returns broadcast-specific user details for the specified post.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/broadcastUserDetails
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/broadcastUserDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Broadcast post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/broadcastUserDetails?scopeID=3000000000008&streamId=3000000045001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | success |
| isScheduledConference | Boolean | Whether this is a scheduled conference. |
| isConfOver | Boolean | Whether the broadcast/conference has ended. |
| chatletMapId | Long | Chatlet mapping ID. Present only if a chatlet exists for this broadcast. |
| userOTP | String | RTC user OTP. Present only while conference is active. |
| confkey | String | Conference key (integrated entity ID). Present only if conference has an RTC key. |
| userId | String | RTC user ID. Present only while conference is active. |
| chid | String | WMS chatlet ID. Present only if a chatlet exists. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns broadcast user details including conference status and RTC credentials.
{
"result": "success",
"isScheduledConference": false,
"isConfOver": false,
"chatletMapId": 3000000090001,
"userOTP": "a1b2c3d4",
"confkey": "RTCP-1234567890",
"userId": "RT_1_10001001",
"chid": "WMS-9001"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve attendees of a broadcast post.
Returns the list of attendees for the specified broadcast post. Supports incremental sync via modifiedTime parameter.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/broadcastAttendees
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/broadcastAttendees
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Timestamp for incremental sync. Returns only attendees modified after this time. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Broadcast post ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/broadcastAttendees?modifiedTime=1742464200000&scopeID=3000000000008&streamId=3000000045001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| canExport | Boolean | Whether the caller can export attendees data. Present only for scope admins or creators with export permission. |
| result | String | success |
| modifiedTime | Long | Last modified timestamp for pagination. Present only when attendees count reaches the limit. |
| usersDetails | JSON Array | Array of attendee user objects. |
| isFollowing | Boolean | Whether the caller follows this user. |
| role | String | Member role in broadcast (e.g. PRESENTER). |
| formattedViewedTime | String | Formatted view timestamp. |
| hasCustomImg | Boolean | Whether user has a custom profile image. |
| mobile | String | Mobile number. |
| emailId | String | Email ID. Admin-only. |
| type | String | Member type. |
| formattedFirstViewedTime | String | Formatted first view timestamp. |
| zuid | Long | Zoho User ID. |
| workLocation | String | Work location. Admin-only. |
| firstViewedTimeLong | Long | Timestamp of first view. |
| seatingLocation | String | Seating location. Admin-only. |
| imageUrl | String | Profile image URL. |
| name | String | Display name. |
| canFollow | Boolean | Whether the caller can follow this user. |
| viewedTimeLong | Long | Timestamp of when attendee last viewed the broadcast. |
| id | Long | User ID (same as zuid). |
| designation | String | Designation. |
| department | String | Department. |
| status | String | Member status. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns attendees in usersDetails array with user profile fields.
{
"canExport": true,
"result": "success",
"usersDetails": [
{
"isFollowing": false,
"role": "PRESENTER",
"formattedViewedTime": "Mar 20, 2025 11:15 AM",
"name": "John Smith",
"hasCustomImg": true,
"canFollow": true,
"viewedTimeLong": 1742464500000,
"id": 10001001,
"designation": "Senior Developer",
"department": "Engineering",
"zuid": 10001001,
"status": "ACTIVE"
},
{
"name": "Jane Doe",
"id": 10001002,
"zuid": 10001002,
"status": "ACTIVE"
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update the invited members and groups for a broadcast.
Updates the invitee list for a broadcast post. Accepts up to 20 member ZUIDs and up to 20 group IDs. Returns result=success on success, or throws error.
Rate limited to 30 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBroadcastInvitees
Scope
ZohoPulse.events.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateBroadcastInvitees
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Broadcast post ID. Required. |
| invitedGroups | Long | Comma-separated group IDs of invited groups. Max 20. |
| invitedMembers | Long | Comma-separated ZUIDs of invited members. Max 20. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBroadcastInvitees?scopeID=3000000000008&streamId=3000000045001&invitedGroups=3000000256092&invitedMembers=10001001,10001002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Broadcast invitees updated successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates a new forum post, either published or as a draft.
Creates a new forum post in the network. If isPublished is true, the post is published immediately, or saved as a draft. You can also assign categories, disable comments, or choose comment settings. If successful, returns result=success with the post ID, URL, title, and saved time. If it fails, returns result=failure with the reason.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/addBlog
Scope
ZohoPulse.blogs.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| categoryIDs | Long | Comma-separated forum-category IDs. Max 10. |
| isPublished | Boolean | If true, publishes the post immediately. If false (default), saves as draft. |
| title | String Allowed value:(matches: (?ims)(.*?)) | Forum post title. 1–255 characters. |
| content | String | Forum post body content (HTML). Max 1,000,000 characters. |
| disableComments | Boolean | If true, disables all comments on the forum post. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBlog?scopeID=3000000000008&categoryIDs=3000000012001,3000000012002&isPublished=true&title=Getting Started with Zoho Connect&content=<p>Welcome to our first forum post!</p>&disableComments=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addBlog | JSON Object | Merged success + error response for addBlog |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Full post object (via constructStream). Only present when isPublished=true. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| savedTime | String | Formatted save/publish time. Present on success. |
| errorCode | String | Machine-readable error code (e.g. BLOG_CATEGORY_MANDATORY). Present on failure. |
| id | String | Forum post post ID (long as string). Present on success. |
| title | String | Forum post title. Returns 'Untitled' if no title was provided. Present on success. |
| url | String | URL path of the new forum post. Present on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Forum post published successfully.
{
"addBlog": {
"result": "success",
"savedTime": "Mar 20, 2026 10:30 AM",
"id": "3000000015001",
"title": "Getting Started with Zoho Connect",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect"
}
}
Returned when forum categories are mandatory but none were provided.
{
"addBlog": {
"result": "failure",
"reason": "Blog category is mandatory",
"errorCode": "BLOG_CATEGORY_MANDATORY"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates the title, content, categories, or comment settings of an existing forum post.
Updates an existing forum post. Only the author can make changes. If successful, returns result=success along with the updated post ID, URL, and saved time. If it fails, returns result=failure with the reason.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBlog
Scope
ZohoPulse.blogs.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| categoryIDs | Long | Comma-separated forum-category IDs. Max 10. |
| title | String Allowed value:(matches: (?ims)(.*?)) | Updated forum post title. Max 1000 characters. |
| blogIdMandatory | Long | Forum post ID to update. Required. |
| content | String | Updated forum post body content (HTML). Max 1,000,000 characters. |
| disableComments | Boolean | If true, disables all comments on the forum post. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBlog?scopeID=3000000000008&categoryIDs=3000000012001&title=Updated Forum Post Title&blogId=3000000015001&content=<p>Updated content here.</p>&disableComments=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| updateBlog | JSON Object | Merged success + error response for updateBlog |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
| savedTime | String | Formatted save time. Present on success. |
| errorCode | String | Machine-readable error code. Present on failure. |
| id | String | Forum post post ID (long as string). Present on success. |
| url | String | URL path of the updated forum post. Present on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Forum post updated successfully.
{
"updateBlog": {
"result": "success",
"savedTime": "Mar 20, 2026 11:00 AM",
"id": "3000000015001",
"url": "/portal/zillium/forum/post/updated-forum-post-title"
}
}
Returned when the caller lacks permission to update.
{
"updateBlog": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Publishes an existing draft forum post.
Publishes a forum post that was saved as a draft.. On success, returns result=success and the published post URL. On failure, throws a general error.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/publishBlog
Scope
ZohoPulse.blogs.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| blogIdMandatory | Long | Forum post ID to publish. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/publishBlog?scopeID=3000000000008&blogId=3000000015001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| publishBlog | JSON Object | Merged success + error response for publishBlog |
| result | String | Result status — 'success' or 'failure'. |
| reason | String | Human-readable error message. Present on failure. |
| url | String | URL path of the published forum post. Present on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Forum post published successfully.
{
"publishBlog": {
"result": "success",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect"
}
}
Returned when the blogId is invalid or the post cannot be published.
{
"publishBlog": {
"result": "failure",
"reason": "Oops, something went wrong here! Please try again after some time."
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve a single forum post with full details, comments, and attachments.
Returns a single forum post by ID or URL slug, including HTML content, author, comments (with thread/recent/pinned views), tags, attachments, reactions, and permission flags. Lookup is by blogId or url — provide one or the other. Comments are fetched by default (fetchComment=true). Use commentView to control comment ordering.
Rate limited to 30 requests per second.
Request URL
https://ServerDomain/pulse/api/singleBlog
Scope
ZohoPulse.blogs.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| commentView | String Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED) | Comment view mode — THREAD, RECENT, MOSTDISCUSSED, or MOSTREACTED. |
| commentId | Long | Comment ID to highlight in the response. |
| fetchComment | Boolean | Whether to fetch comments. Defaults to true. |
| blogId | Long | Forum post ID. Provide either blogId or url. |
| version | Integer | API version hint. Use 2 for structured comment responses. |
| convertVideoTag | Boolean | If true, converts embedded video tags for native rendering. |
| url | String Allowed value:(matches: (?ims)(.*?)) | Forum post URL slug. Provide either blogId or url. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/singleBlog?scopeID=3000000000008&blogId=3000000015001&version=2' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| singleBlog | JSON Object | Inner singleBlog wrapper containing the blog object |
| blog | JSON Object | Forum post object with full details. |
| isBookmarked | Boolean | true if the current user has bookmarked this post. |
| isDraft | String | 'true' if the post is a draft. |
| streamModifiedTime | Integer | Last modification timestamp. |
| likeCount | Integer | Number of likes. Present when > 0. |
| isScheduled | String | 'true' if the post is scheduled. |
| type | String | Post type — always 'BLOG'. |
| canPinPost | Boolean | true if the user can pin this post. |
| canShowPostSummary | String | 'true' if AI post summary is available. |
| isLocked | Boolean | true if comments are disabled on this post. |
| createdTime | Integer | Creation timestamp in milliseconds. |
| canDelete | String | 'true' if the current user can delete this post. |
| id | Integer | Forum post ID. |
| canComment | String | 'true' if the current user can comment. |
| isMustRead | Boolean | true if marked as mandatory read. |
| canShowInsight | Boolean | true if the Post Insight feature is available. |
| canMarkAsReadLater | String | 'true' if the post can be marked as read-later. |
| canReportSpam | String | 'true' if the user can report this post as spam. |
| canSharePost | String | 'true' if the post can be shared. |
| isRecentView | Boolean | true when comments are in recent view. |
| isLiked | String | 'true' if the current user has liked this post. |
| userDetails | JSON Object | Author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| commentCount | Integer | Number of comments. Present when > 0. |
| isPinnedPost | Boolean | true if the post is pinned. |
| tags | JSON Array | Array of tags on this post. |
| tagname | String | Tag name. |
| postCount | String | Number of posts with this tag. |
| formatedTime | String | Human-readable formatted creation time. |
| reactionType | String | Current user's reaction type (e.g. LIKE, HEART). Present when isLiked is true. |
| linkurl | String | Full permalink URL of the post. |
| module_name | String | Module name — 'BLOGS'. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, DELETED. |
| canTranslate | Boolean | true if content translation is available. |
| attachments | JSON Array | Array of file attachments. |
| isImage | Boolean | true if the attachment is an image. |
| extension | String | File extension. |
| size | String | Human-readable file size. |
| name | String | File name. |
| storageType | String | Storage type — UDS or ZFS. |
| time | String | Formatted upload time. |
| contentType | String | MIME content type. |
| fileId | String | Attachment file ID. |
| canLike | String | 'false' when liking is not allowed (e.g. unapproved post). Absent when liking is allowed. |
| canMarkAsMustRead | String | 'true' if the user can mark this post as mandatory read. |
| uniqueViewCount | Integer | Unique viewer count. Present when > 0 and viewer has permission. |
| isReadLater | String | 'true' if marked as read-later by the current user. |
| canEdit | String | 'true' if the current user can edit this post. |
| title | String | Forum post title. |
| content | String | Forum post HTML content. |
| isThreadView | Boolean | true when comments are in thread view. |
| canModerate | Boolean | true if the user can moderate this unapproved post. |
| canFollow | String | 'true' if the current user can follow this post. |
| isNotifDisabled | Boolean | true if notifications are disabled for this post by the current user. |
| viewCount | Integer | Total view count. Present when > 0. |
| isApproved | String | 'false' when the post is pending moderation approval. |
| isFollowing | String | 'true' if the current user is following this post. |
| comments | JSON Array | Array of comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| isPublished | String | 'false' when the post is not yet active/published. |
| pinnedComments | JSON Array | Array of pinned comment objects. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| url | String | URL slug of the forum post. |
| hasHistory | String | 'true' if the post has been edited. |
| reactions | JSON Array | Most used reaction types with counts. |
| reactionType | JSON Object | Reaction type details. |
| count | Integer | Number of users with this reaction. |
| type | String | LikeType enum (LIKE, LOVE, etc.). |
| time | Integer | Same as createdTime. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Forum post retrieved successfully with comments and tags.
{
"singleBlog": {
"blog": {
"attachments": [],
"canEdit": "true",
"streamModifiedTime": 1742464200000,
"likeCount": 5,
"type": "BLOG",
"title": "Getting Started with Zoho Connect",
"content": "<p>Welcome to our first forum post!</p>",
"canShowPostSummary": "true",
"createdTime": 1742464200000,
"canFollow": "true",
"canDelete": "true",
"id": 3000000015001,
"viewCount": 150,
"canComment": "true",
"canShowInsight": true,
"canMarkAsReadLater": "true",
"isFollowing": "true",
"comments": [],
"userDetails": {
"name": "Vignesh Thangavel",
"hasCustomImg": true,
"zuid": 15065799
},
"url": "getting-started-with-zoho-connect",
"commentCount": 3,
"tags": [
{
"tagname": "getting-started",
"postCount": 1
}
],
"formatedTime": "Mar 20, 2026 10:30 AM",
"linkurl": "https://connect.zoho.com/portal/zillium/forum/post/getting-started-with-zoho-connect",
"time": 1742464200000,
"module_name": "BLOGS",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Fetches a paginated list of recent forum posts.
Gets a list of recent forum posts in the network, with an option to filter by category. Returns post details such as author, creation time, title, URL, status, likes, and comment count. Supports pagination using paginationFetchTime.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/recentBlogs
Scope
ZohoPulse.blogs.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| isDashboard | Boolean | If true, includes dashboard-specific data (excerpt, attachments). Defaults to false. |
| pageIndex | Integer | Zero-based page index for offset pagination. Defaults to 0. |
| limit | Integer | Maximum number of forum posts to return per page. Range 1–200. |
| categoryUrl | String Allowed value:(matches: (?ims)(.*?)) | Forum-category URL slug to filter by. If provided (and categoryId is empty), resolves to a category ID internally. |
| lastBlogCreatedTime | Long | Cursor: created-time of the last forum post on the previous page. Used for cursor-based pagination. |
| paginationFetchTime | Long | Alternative cursor field (takes precedence over lastBlogCreatedTime if both provided). |
| categoryId | Long | Comma-separated forum-category IDs to filter by. Max 100. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/recentBlogs?scopeID=3000000000008&isDashboard=false&pageIndex=0&limit=10&categoryUrl=general&lastBlogCreatedTime=1742464200000&paginationFetchTime=1742464200000&categoryId=3000000012001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| recentBlogs | JSON Object | Inner recentBlogs object — forum post list with pagination |
| forumPartitionId | Integer | Forum partition ID for the network. |
| pageIndex | String | Next page index for offset pagination. Present when there are more results. |
| blogs | JSON Array | Array of forum post objects (flat — inner 'blog' key stripped by hasSimilarElements serialization). |
| formatedTime | String | Human-readable formatted creation time. |
| createdTime | Integer | Creation timestamp in milliseconds. |
| streamModifiedTime | Integer | Last modification timestamp. |
| id | Integer | Forum post post ID. |
| time | Integer | Same as createdTime. |
| type | String | Post type — always 'BLOG'. |
| title | String | Forum post title. |
| url | String | URL path of the forum post. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, DELETED. |
| lastBlogCreatedTime | Integer | Created time of the last forum post (cursor for next page). Present in native API when more results exist. |
| paginationFetchTime | Integer | Pagination cursor (same value as lastBlogCreatedTime). Present when more results exist. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns a list of recent forum posts.
{
"recentBlogs": {
"forumPartitionId": 3000000001008,
"blogs": [
{
"formatedTime": "Mar 20, 2026 10:30 AM",
"createdTime": 1742464200000,
"streamModifiedTime": 1742464200000,
"id": 3000000015001,
"time": 1742464200000,
"type": "BLOG",
"title": "Getting Started with Zoho Connect",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect",
"status": "ACTIVE"
},
{
"formatedTime": "Mar 20, 2026 10:30 AM",
"createdTime": 1742550600000,
"streamModifiedTime": 1742550600000,
"id": 3000000015002,
"time": 1742550600000,
"type": "BLOG",
"title": "Getting Started with Zoho Connect (2)",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect",
"status": "ACTIVE"
}
],
"paginationFetchTime": 1742464200000
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Returns the current user's draft forum posts.
Gets draft forum posts created by the authenticated user. You can filter the results by category and paginate them as needed.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/myDraftBlogs
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Return only drafts modified after this timestamp (epoch ms). |
| scopeID | Long | Network (scope) ID. |
| pageIndex | Integer | Page index for pagination (0-based). |
| limit | Integer | Number of posts per page. |
| paginationFetchTime | Long | Timestamp for delta pagination (epoch ms). |
| categoryId | Long | Filter by forum category ID. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myDraftBlogs?modifiedTime=1742464200000&scopeID=3000000000008&pageIndex=0&limit=20&paginationFetchTime=1711000000000&categoryId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| forumPartitionId | Long | Forum partition ID for the network. |
| pageIndex | Integer | Next page index. Present when more results exist. |
| blogs | JSON Array | Array of draft forum post objects. |
| uniqueViewCount | Long | Unique viewer count. Present only when > 0 and user has permission. |
| isDraft | String | 'true' if this is a draft. Conditional. |
| streamModifiedTime | Long | Last modification timestamp (epoch ms). |
| likeCount | Long | Number of likes. Present only when > 0. |
| isScheduled | String | 'true' if this is scheduled. Conditional. |
| type | String | Post type — always 'BLOG'. |
| title | String | Forum post title. |
| canPinPost | Boolean | True if caller can pin this post. Conditional. |
| canShowPostSummary | String | 'true' if post summary available. Conditional. |
| canShowPostAudit | Boolean | True if audit trail available. Conditional. |
| createdTime | Long | Creation timestamp (epoch ms). |
| id | Long | Forum post post ID. |
| viewCount | Long | Total view count. Present only when > 0. |
| categories | JSON Array | Forum categories the post belongs to. Conditional. |
| isMustRead | Boolean | True if marked mandatory read. Conditional. |
| canShare | String | 'true' if sharable. Conditional. |
| isLiked | String | 'true' if the caller liked this post. Conditional. |
| isNew | Boolean | True if post is newer than user's last view. Conditional. |
| canShowHistory | Boolean | True if edit history available. Conditional. |
| userDetails | JSON Object | Author details (via constructAuthor). |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| url | String | URL slug of the forum post. |
| commentCount | Long | Number of comments. Present only when > 0. |
| isPinnedPost | Boolean | True if pinned. Conditional. |
| formatedTime | String | Human-readable formatted creation time. |
| reactionType | String | Current user's reaction type. Conditional. |
| hasHistory | String | 'true' if the post has been edited. Conditional. |
| reactions | JSON Array | Most used reaction types with counts. Conditional. |
| linkurl | String | Full permalink URL of the post. |
| time | Long | Same as createdTime. |
| module_name | String | Always 'BLOGS'. |
| status | String | Post status: ACTIVE, DRAFT, SCHEDULED, DELETED. |
| paginationFetchTime | Long | Pagination cursor timestamp (epoch ms). Present when more results exist. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns blogs array with draft posts, forumPartitionId, and pagination fields.
{
"forumPartitionId": 3000000080001,
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 20, 2026 02:00 PM",
"id": 3000000090002,
"title": "Draft: New Feature Overview",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "draft-new-feature-overview",
"status": "DRAFT"
},
{
"formatedTime": "Mar 20, 2026 02:00 PM",
"id": 3000000090003,
"title": "Draft: New Feature Overview (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "draft-new-feature-overview",
"status": "DRAFT"
}
],
"paginationFetchTime": 1711000000000
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves published forum posts by one or more users.
Returns active, published forum posts created by the specified users. You can filter the results by category, paginate using pageIndex and limit, and sync updates incrementally with paginationFetchTime.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/userActiveBlogs
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/userActiveBlogs
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| pageIndex | Integer | Page index for pagination (0-based). |
| limit | Integer | Number of posts per page. |
| userId | Long | User ZUID(s). Comma-separated, max 50. |
| paginationFetchTime | Long | Timestamp for delta pagination (epoch ms). |
| categoryId | Long | Filter by forum category ID. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userActiveBlogs?scopeID=3000000000008&pageIndex=0&limit=20&userId=60028305&paginationFetchTime=1711000000000&categoryId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| forumPartitionId | Long | Forum partition ID for the network. |
| modifiedTime | Long | Same as lastBlogCreatedTime. Present on native API when more results exist. |
| pageIndex | Integer | Next page index. Present when more results exist. |
| blogs | JSON Array | Array of published forum post objects. |
| uniqueViewCount | Long | Unique viewer count. Present only when > 0 and user has permission. |
| isDraft | String | 'true' if this is a draft. Conditional. |
| streamModifiedTime | Long | Last modification timestamp (epoch ms). |
| likeCount | Long | Number of likes. Present only when > 0. |
| isScheduled | String | 'true' if this is scheduled. Conditional. |
| type | String | Post type — always 'BLOG'. |
| title | String | Forum post title. |
| canPinPost | Boolean | True if caller can pin this post. Conditional. |
| canShowPostSummary | String | 'true' if post summary available. Conditional. |
| canShowPostAudit | Boolean | True if audit trail available. Conditional. |
| createdTime | Long | Creation timestamp (epoch ms). |
| id | Long | Forum post post ID. |
| viewCount | Long | Total view count. Present only when > 0. |
| categories | JSON Array | Forum categories the post belongs to. Conditional. |
| isMustRead | Boolean | True if marked mandatory read. Conditional. |
| canShare | String | 'true' if sharable. Conditional. |
| isLiked | String | 'true' if the caller liked this post. Conditional. |
| isNew | Boolean | True if post is newer than user's last view. Conditional. |
| canShowHistory | Boolean | True if edit history available. Conditional. |
| userDetails | JSON Object | Author details (via constructAuthor). |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| url | String | URL slug of the forum post. |
| commentCount | Long | Number of comments. Present only when > 0. |
| isPinnedPost | Boolean | True if pinned. Conditional. |
| formatedTime | String | Human-readable formatted creation time. |
| reactionType | String | Current user's reaction type. Conditional. |
| hasHistory | String | 'true' if the post has been edited. Conditional. |
| reactions | JSON Array | Most used reaction types with counts. Conditional. |
| linkurl | String | Full permalink URL of the post. |
| time | Long | Same as createdTime. |
| module_name | String | Always 'BLOGS'. |
| status | String | Post status: ACTIVE, DRAFT, SCHEDULED, DELETED. |
| lastBlogCreatedTime | Long | Created time of last blog. Present on native API when more results exist. |
| paginationFetchTime | Long | Pagination cursor timestamp (epoch ms). Present when more results exist. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns blogs array with active posts, forumPartitionId, and pagination fields.
{
"forumPartitionId": 3000000080001,
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 5,
"id": 3000000090001,
"viewCount": 150,
"title": "Getting Started Guide",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 3
},
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 8,
"id": 3000000090002,
"viewCount": 153,
"title": "Getting Started Guide (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 6
}
],
"paginationFetchTime": 1711000000000
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieves all forum posts (published and draft) by a specific user.
Retrieves forum posts created by a specific user. Supports pagination using pageIndex and limit.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/userBlogs
Scope
ZohoPulse.userDetail.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| pageIndex | Integer | Page index for pagination (0-based). |
| limit | Integer | Number of posts per page. |
| userIdMandatory | Long | User ZUID whose forum posts to retrieve. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userBlogs?scopeID=3000000000008&pageIndex=0&limit=20&userId=60028305' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| pageIndex | Integer | Next page index. Present when more results exist. |
| blogs | JSON Array | Array of forum post objects (flat — inner 'blog' key stripped by hasSimilarElements). |
| uniqueViewCount | Long | Unique viewer count. Present only when > 0 and user has permission. |
| isDraft | String | 'true' if this is a draft. Conditional. |
| streamModifiedTime | Long | Last modification timestamp (epoch ms). |
| likeCount | Long | Number of likes. Present only when > 0. |
| isScheduled | String | 'true' if this is scheduled. Conditional. |
| type | String | Post type — always 'BLOG'. |
| title | String | Forum post title. |
| canPinPost | Boolean | True if caller can pin this post. Conditional. |
| canShowPostSummary | String | 'true' if post summary available. Conditional. |
| canShowPostAudit | Boolean | True if audit trail available. Conditional. |
| createdTime | Long | Creation timestamp (epoch ms). |
| id | Long | Forum post post ID. |
| viewCount | Long | Total view count. Present only when > 0. |
| categories | JSON Array | Forum categories the post belongs to. Conditional. |
| isMustRead | Boolean | True if marked mandatory read. Conditional. |
| canShare | String | 'true' if sharable. Conditional. |
| isLiked | String | 'true' if the caller liked this post. Conditional. |
| isNew | Boolean | True if post is newer than user's last view. Conditional. |
| canShowHistory | Boolean | True if edit history available. Conditional. |
| userDetails | JSON Object | Author details (via constructAuthor). |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| url | String | URL slug of the forum post. |
| commentCount | Long | Number of comments. Present only when > 0. |
| isPinnedPost | Boolean | True if pinned. Conditional. |
| formatedTime | String | Human-readable formatted creation time. |
| reactionType | String | Current user's reaction type. Conditional. |
| hasHistory | String | 'true' if the post has been edited. Conditional. |
| reactions | JSON Array | Most used reaction types with counts. Conditional. |
| linkurl | String | Full permalink URL of the post. |
| time | Long | Same as createdTime. |
| module_name | String | Always 'BLOGS'. |
| status | String | Post status: ACTIVE, DRAFT, SCHEDULED, DELETED. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns blogs array with post details and pagination.
{
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 5,
"id": 3000000090001,
"viewCount": 150,
"title": "Getting Started Guide",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 3
},
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 8,
"id": 3000000090002,
"viewCount": 153,
"title": "Getting Started Guide (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 6
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Follows a forum category to receive updates.
Follows a specific forum category so the authenticated user receives updates when new posts are published. Returns result=success on success.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/followBlogCategory
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/followBlogCategory
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| categoryIdMandatory | Long | Forum category (tag) ID to follow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followBlogCategory?scopeID=3000000000008&categoryId=3000000020001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Category followed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Stops following a forum category.
Unfollows a specific forum category so the authenticated user no longer receives updates. Returns result=success on success.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/unfollowBlogCategory
Scope
ZohoPulse.feedList.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/unfollowBlogCategory
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| categoryIdMandatory | Long | Forum category (tag) ID to unfollow. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowBlogCategory?scopeID=3000000000008&categoryId=3000000020001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Category unfollowed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Changes the status of an idea post.
Update the status of an idea post. Returns result=success.
Rate limited to 120 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateIdeaStatus
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateIdeaStatus
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Idea post ID to update. Required. |
| statusIdMandatory | Long | New status ID to apply. Required. |
| isCustom | Boolean | true if the status is a custom (non-built-in) status. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateIdeaStatus?scopeID=3000000000008&streamId=3000000070001&statusId=3000000080001&isCustom=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Idea status updated.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Creates an idea post with categories.
Creates an idea post with a required title and optional categories. Ideas also support voting and reactions. You can assign categories using categoryIds.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/v2/addStream
Scope
ZohoPulse.feedList.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionID | Long | Target group/townhall ID. Omit to post to the network feed. |
| isAnnouncement | Boolean | If true, sends email notification to all members. Used with ANNOUNCEMENT type. |
| streamGroups | Long | Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true. |
| isPrivate | Boolean | If true, creates a private post visible only to specified members/groups. |
| partitionType | String Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$) | Partition type — GROUP, CHANNEL, TOWNHALL, FORUMS, DEFAULT, MEMBER. Required when partitionID is provided. |
| version | Integer | API version hint. Use 2. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Link preview description. Used with LINK type. |
| disableComments | Boolean | If true, disables all comments on the post. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Link preview title. Used with LINK type. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. Used with IDEA type. |
| streamType | String Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$) | Post type — STATUS (default), ANNOUNCEMENT, QUESTION, or IDEA. Other values: LINK, EVENT, CAMPAIGN. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Post body content (rich-text HTML). Max 30,000 characters. |
| announcementExpiryTime | Long | Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Link preview image URL. Used with LINK type. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| streamMembers | Long | Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | URL to share. Used with LINK type. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left). |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/v2/addStream?scopeID=3000000000008&partitionID=3000000256092&isAnnouncement=true&streamGroups=3000000256092&isPrivate=true&partitionType=GROUP&categoryIds=3000000080001&streamType=STATUS&streamContent=This is a private update for the team leads.&announcementExpiryTime=1743033000000&streamMembers=700000002,700000003&streamTitle=Add dark mode to the mobile app' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| addStream | JSON Object | Inner addStream object — post detail on success, error keys on failure |
| result | String | Result status — 'failure'. Present on failure. |
| reason | String | Human-readable error message. Present on failure. |
| stream | JSON Object | Created post object. Present on success. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
| errorCode | String | Error code. Present on failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Idea feature not available on the current plan.
{
"addStream": {
"result": "failure",
"errorCode": "UPGRADE_PLAN"
}
}
Idea post created with a category.
{
"addStream": {
"stream": {
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070005,
"canComment": "true",
"type": "IDEA",
"title": "Add dark mode to the mobile app",
"canVoteReact": "true",
"content": "It would be great to have a dark mode option for the mobile app to reduce eye strain.",
"status": "ACTIVE"
}
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Updates an idea post's title, content, and categories.
Updates an idea post by modifying its title, content, and assigned categories.
Rate limited to 50 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateStream
Scope
ZohoPulse.feedList.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| newTextOptions | String Allowed value:(matches: (?ims)(.*?)) | New text options to add to the poll. |
| removedOptionIds | Long | Poll option IDs to remove. |
| existingOptions | JSON Array | Existing poll option updates (JSON array). Max 25 items. |
| canEditVote | Boolean | Whether voters can change their vote. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| canViewVotedUsers | String Allowed value:(matches: 0|1) | Whether voted users are visible — 0: no, 1: yes. |
| streamIdMandatory | Long | Post ID to update. Required. |
| endDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Poll end date. |
| partitionID | Long | Target partition ID for draft. |
| textOptions | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll (alias). Max 25. |
| isDraft | Boolean | If true, saves as draft. |
| voteDisplayType | String Allowed value:(matches: 0|1|2) | How votes are displayed — 0: count, 1: percentage, 2: hidden. |
| expiryYear | String Allowed value:(matches: ^(19|20)\d\d$) | Announcement expiry year. |
| linkDesc | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview description. |
| endYear | String Allowed value:(matches: ^(19|20)\d\d$) | Poll end year. |
| removedFileIds | Long | Comma-separated file IDs to remove. |
| expiryDate | String Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$) | Announcement expiry date. |
| canDeclareResult | Boolean | Whether poll creator can declare result. |
| textOption | String Allowed value:(matches: (?ims)(.*?)) | Text options for the poll. Max 25. |
| fileIds | Long | Comma-separated attachment file IDs. Max 100. |
| linkURL | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link URL. |
| streamTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated post title. Max 300 characters. |
| imageIds | Long | Image option IDs for the poll. |
| direction | String Allowed value:(matches: ^(rtl|ltr)$) | Text direction — ltr or rtl. |
| endMin | String Allowed value:(matches: ^(0?\d|[1-5]\d|60)$) | Poll end minute. |
| expiryMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Announcement expiry month. |
| newPollImageIds | Long | New image option IDs to add to the poll. |
| reorderFileIds | Long | Comma-separated file IDs in desired display order. |
| version | Integer | API version hint. |
| disableComments | Boolean | If true, disables comments. |
| linkTitle | String Allowed value:(matches: (?ims)(.*?)) | Updated link preview title. |
| endHour | String Allowed value:(matches: ^(0?\d|1\d|2[0-3])$) | Poll end hour. |
| categoryIds | Long | Comma-separated idea category IDs. Max 10. |
| streamContent | String Allowed value:(matches: (?ims)(.*?)) | Updated post body content (rich-text HTML). Max 30,000 characters. |
| linkImage | String Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$) | Updated link preview image URL. |
| allowMultiple | Boolean | Whether multiple option selection is allowed. |
| draftStreamType | String Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$) | Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA. |
| optionOrders | String Allowed value:(matches: (?ims)(.*?)) | Poll option display order. |
| endMonth | String Allowed value:(matches: ^(0?[1-9]|1[0-2])$) | Poll end month. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateStream?newTextOptions=Saturday,Sunday&removedOptionIds=3000000090003&scopeID=3000000000008&streamId=3000000070005&voteDisplayType=1&expiryYear=2026&expiryDate=26&streamTitle=Add dark mode to the mobile and desktop apps&expiryMonth=3&categoryIds=3000000080001,3000000080002&streamContent=Extended idea: dark mode for both mobile and desktop.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | 'success' on success. |
| stream | JSON Object | Updated post object. |
| streamUrl | String | URL of the shared link (LINK type). |
| canFixAtTop | Boolean | True if caller can pin to top (announcements). |
| comments | JSON Array | Array of comment objects. Present in single-stream views. |
| attachments | JSON Array | Array of attachment objects. |
| streamId | Long | Parent post ID. |
| isCurrentUserLiked | Boolean | Whether the current user liked this comment. |
| canEdit | String | 'true' if the current user can edit. |
| parentCommentId | Long | Parent comment ID (for threaded replies). |
| likeCount | Integer | Number of likes on this comment. |
| isPinnedComment | Boolean | Whether the comment is pinned. |
| userDetails | JSON Object | Comment author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| content | String | Comment content (HTML). |
| formatedTime | String | Formatted creation time string. |
| streamType | String | Parent post type. |
| commentType | String | Comment type (COMMENT, ANSWER, etc.). |
| hasHistory | String | 'true' if the comment has been edited. |
| canDelete | String | 'true' if the current user can delete. |
| id | Long | Comment ID. |
| time | Long | Creation timestamp (epoch ms). |
| isApproved | Boolean | Whether the comment is approved. |
| isReply | String | 'true' if this is a reply to another comment. |
| canLike | String | 'true' if caller can like. |
| author | JSON Object | Post author details. |
| name | String | Author display name. |
| hasCustomImg | Boolean | True if author has a custom profile image. |
| zuid | Long | Author Zoho UID. |
| canDisablePoll | String | 'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit. |
| canEdit | Boolean | True if caller can edit. |
| link | JSON Object | Link preview details. Present for LINK type. |
| embedUrl | String | Embeddable video URL. |
| videoType | String | Video type (if embedded video). |
| linkurl | String | Shared URL. |
| title | String | Link title. |
| desc | String | Link description. |
| polls | JSON Object | Poll details. Present only for POLL type posts. |
| canAddVote | String | 'true' if the caller can vote (poll not locked, not expired, and vote editable). |
| canViewVotedUsers | String | 'true' if caller can view who voted for each option. |
| totalVote | Integer | Total number of votes cast. Present when canShowResult is true. |
| options | JSON Array | Array of poll option objects. |
| optionId | Long | Poll option ID. |
| voteCount | Integer | Number of votes for this option. |
| optionName | String | Poll option text. |
| voteDisplayType | Integer | Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval. |
| allowmultiple | String | 'true' if voters can select multiple options. |
| isVoted | Boolean | True if the current user has voted in this poll. |
| canShowResult | String | 'true' if caller can see vote results (creator, admin, or per display rules). |
| whoCanViewVotedUsers | Integer | 0=only creator/admin, 1=everyone. Present when canShowResult is true. |
| canShowRemoveVote | String | 'true' if the caller can remove their vote. |
| type | String | Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc. |
| title | String | Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT). |
| content | String | Rendered HTML content. |
| commentCount | Integer | Total number of comments. |
| partition | JSON Object | Target group. Present when posting to a group. |
| name | String | Partition name. |
| id | Long | Partition ID. |
| type | String | Partition type — GROUP, TOWNHALL, CHANNEL, etc. |
| url | String | Partition URL. |
| task | JSON Object | Task metadata object. Present only for TASK type posts. |
| streamId | Long | Associated post ID. |
| canEdit | String | 'true' if caller can edit. |
| section | JSON Object | Section the task belongs to. |
| name | String | Section name. |
| id | Long | Section ID. |
| isPrivate | Boolean | True if private section. |
| url | String | Section URL. |
| colorType | Integer | Section colour index. |
| shortTitle | String | Truncated task title. |
| isPrivate | String | 'true' if in a private section. |
| title | String | Task title. |
| isOverDue | String | 'true' if task is past due. |
| partition | JSON Object | Board the task belongs to. |
| typeOrd | Integer | Partition type ordinal. |
| partitionUrl | String | Board URL slug. |
| isPrivate | Boolean | True if board is private. |
| isAdmin | String | 'true' if caller is board admin. |
| type | String | Partition type — PROJECT. |
| url | String | Board URL path. |
| users | JSON Array | Array of member user IDs. |
| sections | JSON Array | Array of board sections. |
| taskCount | Integer | Number of tasks in section. |
| name | String | Section name. |
| colorCode | String | Header colour hex (native API only). |
| id | Long | Section ID. |
| isPrivate | Boolean | True if section is private. |
| colourType | Integer | Section colour index. |
| vcardEmailId | String | Section email address (if enabled). |
| url | String | Section URL. |
| canCreateSection | String | 'false' if caller cannot create sections. |
| name | String | Board name. |
| subType | String | Board sub-type (e.g. DEFAULT, SCRUM). |
| id | Long | Board ID. |
| isUserFollow | Boolean | True if caller follows the board. |
| status | String | Entity status (ACTIVE, ARCHIVED, etc.). |
| canCreateTask | String | 'false' if caller cannot create tasks. |
| percentage | Integer | Completion percentage (0–100). |
| createdTime | Long | Creation timestamp (epoch ms). |
| canDelete | String | 'true' if caller can delete. |
| id | Long | Task ID. |
| formattedCreatedTime | String | Human-readable creation time. |
| formattedDueDate | String | Human-readable due date. |
| isCompleted | String | 'true' if task is completed. |
| attachCount | Integer | Number of attachments. |
| canComplete | String | 'true' if caller can complete. |
| startDateLong | Long | Start-date timestamp (epoch ms). |
| assigneesCount | Integer | Number of assignees. |
| priority | String | Priority name (None, Low, Medium, High). |
| userDetails | JSON Object | Task author details. |
| role | String | Member role — ADMIN or MEMBER. |
| name | String | Display name. |
| hasCustomImg | Boolean | True if user has a custom profile image. |
| id | Long | Internal user ID. |
| String | Email address. | |
| zuid | Long | Zoho UID. |
| status | String | Member status — ACTIVE. |
| formattedStartDate | String | Human-readable start date. |
| commentCount | Integer | Number of comments. |
| endDateLong | Long | Due-date timestamp (epoch ms). |
| canAssign | String | 'true' if caller can assign. |
| subTaskCount | Integer | Number of sub-tasks. |
| completedSubTaskCount | Integer | Number of completed sub-tasks. |
| position | Integer | Position within section. |
| desc | String | Task description text. |
| status | Integer | TaskStatus ordinal. |
| isLocked | String | 'true' if post is locked. |
| hasHistory | String | 'true' if post has edit history. |
| canDelete | Boolean | True if caller can delete. |
| id | Long | Post ID. |
| canComment | String | 'true' if caller can comment. |
| isApproved | Boolean | Moderation approval status. |
| event | JSON Object | Event metadata object. Present only for EVENT type posts. |
| streamId | Long | Associated post ID. |
| formattedEndTime | String | Human-readable end time. Absent for all-day events. |
| canEdit | Boolean | True if the caller can edit this event. |
| canRSVP | String | 'true' if the caller can RSVP. |
| shortTitle | String | Truncated event title. |
| title | String | Event title. |
| type | String | Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.). |
| yesCount | Integer | Number of 'Yes' RSVPs. |
| isAllDay | String | 'true' if all-day event. |
| isSharedEvent | Boolean | True if the event's group was shared. |
| startTime | Long | Event start time (epoch ms). |
| canDelete | Boolean | True if the caller can delete this event. |
| logoType | Integer | Logo type: 1=uploaded, 2=default. |
| isRSVPAllowed | Boolean | Whether RSVP is enabled for this event. |
| invitedUserCount | Integer | Number of invited users. |
| isStarted | String | 'true' if event has started but not ended. |
| formattedStartTime | String | Human-readable start time. Absent for all-day events. |
| noCount | Integer | Number of 'No' RSVPs. |
| location | String | Event location. Absent if not set. |
| logoModifiedTime | Long | Logo last-modified timestamp. Present when logoType = 1. |
| isPrivateEvent | Boolean | True if the event is in a member (DM) partition. |
| endTime | Long | Event end time (epoch ms). Absent if not set. |
| isExpired | String | 'true' if past end time. |
| logoId | Long | Uploaded logo attachment ID. Present when logoType != 1. |
| desc | String | Event description. |
| status | String | Post status — ACTIVE, DRAFT, SCHEDULED, etc. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Idea post updated with new categories.
{
"result": "success",
"stream": {
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000070005,
"canComment": "true",
"type": "IDEA",
"title": "Add dark mode to the mobile and desktop apps",
"canVoteReact": "true",
"content": "Extended idea: dark mode for both mobile and desktop.",
"status": "ACTIVE"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Re-enable notifications for a specific post.
Re-enables notifications for the specified post so the current user will receive alerts for activity on it again.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/enableStreamNotification
Scope
ZohoPulse.connectNotifications.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/enableStreamNotification
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/enableStreamNotification \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Disable notifications for a specific post.
Turns off notifications for the specified post so the current user will no longer receive alerts for activity on it.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/disableStreamNotification
Scope
ZohoPulse.connectNotifications.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/disableStreamNotification
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| streamIdMandatory | Long | Post ID. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/disableStreamNotification \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the current user's notification preferences.
Get notification preferences across general, groups, forums, and boards.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getEmailNotifyDetails
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/getEmailNotifyDetails
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/getEmailNotifyDetails?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| sharedBoards | JSON Array | Array of shared board references. Conditional. |
| partitionId | Long | Shared board partition ID. |
| getCliqBotPref | Boolean | true when Cliq bot notification DO is empty. Conditional. |
| cliqBot | JSON Object | Cliq bot integration preferences. |
| isOrgNotifierEnabled | Boolean | Whether org-level Cliq notifier is enabled. Conditional. |
| needUpgrade | Boolean | true if plan doesn't support Cliq bot. Conditional. |
| isSubscribed | Boolean | Whether user is subscribed to Cliq bot. Conditional. |
| canUninstall | Boolean | Whether user can uninstall Cliq bot. Conditional. |
| isEnabled | Boolean | Whether Cliq bot is enabled. |
| canInstall | Boolean | Whether user can install Cliq bot. Conditional. |
| isInstalled | Boolean | Whether Cliq bot extension is installed. Conditional. |
| noAppAccount | Boolean | true if user has no Cliq account. Conditional. |
| isSupported | Boolean | Whether Cliq bot is supported. |
| isDisabled | Boolean | true if Cliq extension is disabled. Conditional. |
| mailDigestMin | Integer | Email digest minute (0-59). Conditional: only when digest time is set. |
| canShowEmailDigestTime | Boolean | Whether email digest time settings can be shown. |
| needGamificationNotifications | Boolean | Whether gamification badge notifications are available. Conditional. |
| groups | JSON Array | Array of per-group notification preference objects. |
| mentionEmail | Boolean | Email on mentions. Present for GROUP/DEFAULT. |
| mentionCliqBot | Boolean | Cliq bot on mentions. Present for GROUP/DEFAULT. |
| postCliqBot | Boolean | Cliq bot on new posts. Present for all types. |
| commentPush | Boolean | Push on comments. Present for DEFAULT/GROUP/PAGE. |
| surveyPush | Boolean | Push on surveys. Present for GROUP/DEFAULT only. |
| commentEmail | Boolean | Email on comments. Present for DEFAULT/GROUP/PAGE. |
| postPush | Boolean | Push on new posts. Present for all types. |
| type | String | Partition type: GROUP, DEFAULT, TOWNHALL, or PAGE. |
| postEmail | Boolean | Email on new posts. Present for all types. |
| muteGroup | Boolean | Whether group is muted. Present for GROUP/PAGE only. |
| mentionPush | Boolean | Push on mentions. Present for GROUP/DEFAULT. |
| showInFeed | Boolean | Show group posts in feed. Present for DEFAULT/GROUP/PAGE. |
| name | String | Group name (HTML-encoded). |
| id | Long | Group ID. |
| commentCliqBot | Boolean | Cliq bot on comments. Present for DEFAULT/GROUP/PAGE. |
| boards | JSON Array | Array of per-board notification preference objects. |
| preferences | JSON Array | Array of board notification preferences (19 types). |
| executionTime | Long | Execution time in milliseconds. Conditional: only on taskBeforeDueDate/taskBeforeStartDate. |
| cliqBot | Boolean | Whether Cliq bot notification is enabled. |
| preference | String | Board preference type from BoardNotifyPrefType enum. |
| executionMin | Integer | Minute to send notification. Conditional: only on taskBeforeDueDate/taskBeforeStartDate. |
| taskDueNDays | Integer | Days before due date to notify. Conditional: only on taskBeforeDueDate/taskBeforeStartDate. |
| executionHour | Integer | Hour to send notification. Conditional: only on taskBeforeDueDate/taskBeforeStartDate. |
| push | Boolean | Whether push notification is enabled. |
| Boolean | Whether email notification is enabled. | |
| isFollowing | Boolean | Whether current user is following the board. |
| name | String | Board name. |
| mute | Boolean | Whether board is muted. |
| id | Long | Board (partition) ID. |
| type | String | Partition type (PROJECT). |
| canShowForumTab | Boolean | Whether the forum notification tab should be shown. Conditional. |
| digestNotificatons | Boolean | Whether email digest notifications are enabled. |
| noMoreNotifications | Boolean | Whether all notifications are suppressed. |
| mailDigestHour | Integer | Email digest hour (0-23). Conditional: only when digest time is set. |
| general | JSON Array | Array of general notification preference objects. |
| cliqBot | Boolean | Whether Cliq bot notification is enabled. |
| preference | String | Preference type name from NotifyPrefType enum (e.g. commentOnPost, likeOnPost, mentionOnPost). |
| push | Boolean | Whether push notification is enabled. |
| Boolean | Whether email notification is enabled. | |
| forums | JSON Object | Forum notification preferences. |
| showInFeed | Boolean | Show forum posts in feed. |
| cliqBot | Boolean | Cliq bot on forum activity. |
| Boolean | Email on forum activity. | |
| push | Boolean | Push on forum activity. |
| turnOffNotifications | Boolean | true if all notifications are turned off. Conditional. |
| showEmailDigestTimeUpgrade | Boolean | Whether digest time is an upgrade feature. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Notification preferences retrieved.
{
"general": [
{
"cliqBot": true,
"preference": "commentOnPost",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "commentOnPost",
"push": false,
"email": false
}
],
"forums": {
"showInFeed": true,
"cliqBot": false,
"email": true,
"push": true
},
"cliqBot": {
"isEnabled": true,
"isSupported": true
},
"canShowEmailDigestTime": true,
"groups": [
{
"postCliqBot": true,
"postPush": true,
"name": "Engineering",
"id": 3000000070001,
"type": "GROUP",
"postEmail": true
},
{
"postCliqBot": false,
"postPush": false,
"name": "Engineering 2",
"id": 3000000070002,
"type": "GROUP",
"postEmail": false
}
],
"boards": [
{
"preferences": [
{
"cliqBot": true,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": false,
"email": false
}
],
"isFollowing": true,
"name": "Project Board",
"mute": false,
"id": 3000000080001,
"type": "PROJECT"
},
{
"preferences": [
{
"cliqBot": true,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": false,
"email": false
}
],
"isFollowing": false,
"name": "Project Smith",
"mute": true,
"id": 3000000080002,
"type": "PROJECT"
}
],
"digestNotificatons": false,
"noMoreNotifications": false,
"showEmailDigestTimeUpgrade": false
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a general notification preference.
Updates a general notification preference for the current user. This affects the email notification channel for the specified preference type.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateGeneralNotificationPreference
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateGeneralNotificationPreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| notifyPrefTypeMandatory | String | General notification preference type (e.g., commentOnPost, likeOnPost, mentionOnPost). Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| valueMandatory | Boolean | Whether to enable (true) or disable (false) the preference. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateGeneralNotificationPreference \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Operation result — success or failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve notification preferences for a group.
Returns the notification preference settings for the specified group.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getGroupNotificationPreferences
Scope
ZohoPulse.grouplist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getGroupNotificationPreferences
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getGroupNotificationPreferences?scopeID=3000000000008&partitionId=3000000256092' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| partitionId | Long | Group ID. |
| cliqBot | JSON Object | Zoho Cliq bot notification status. |
| isOrgNotifierEnabled | Boolean | Whether org-wide Cliq notification is enabled. Conditional. |
| needUpgrade | Boolean | Whether a plan upgrade is required. Conditional. |
| isSubscribed | Boolean | Whether user is subscribed to the Cliq bot. Conditional. |
| canUninstall | Boolean | Whether user can uninstall the Cliq extension. Conditional. |
| isEnabled | Boolean | Whether Cliq bot notifications are enabled. |
| canInstall | Boolean | Whether user can install the Cliq extension. Conditional. |
| isInstalled | Boolean | Whether the Cliq extension is installed. Conditional. |
| noAppAccount | Boolean | Whether user has no Cliq app account. Conditional. |
| isSupported | Boolean | Whether Cliq bot is supported for this scope. |
| isDisabled | Boolean | Whether the Cliq extension is disabled. Conditional. |
| notificationPreferences | JSON Object | Object containing per-type notification preference booleans for the group. |
| mentionEmail | Boolean | Email notifications for mentions. |
| mentionCliqBot | Boolean | Cliq bot notifications for mentions. |
| muteGroup | Boolean | Whether the group is muted. |
| mentionPush | Boolean | Push notifications for mentions. |
| postCliqBot | Boolean | Cliq bot notifications for new posts. |
| showInFeed | Boolean | Whether group posts appear in the user feed. |
| commentPush | Boolean | Push notifications for comments. |
| surveyPush | Boolean | Push notifications for surveys. |
| commentEmail | Boolean | Email notifications for comments. |
| postPush | Boolean | Push notifications for new posts. |
| commentCliqBot | Boolean | Cliq bot notifications for comments. |
| postEmail | Boolean | Email notifications for new posts. |
| isMoreEmail | Boolean | Whether user has exceeded email notification limits. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Returns per-type notification preference flags, email limit status, and Cliq bot status.
{
"partitionId": 3000000256092,
"cliqBot": {
"isEnabled": false,
"isSupported": true
},
"notificationPreferences": {
"mentionEmail": true,
"mentionCliqBot": false,
"muteGroup": false,
"mentionPush": true,
"postCliqBot": false,
"showInFeed": true,
"commentPush": true,
"surveyPush": true,
"commentEmail": false,
"postPush": true,
"commentCliqBot": false,
"postEmail": true
},
"isMoreEmail": false
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a notification preference for a group.
Updates a notification preference for the specified group. Affects the email notification channel for the given preference type.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateGroupNotificationPreference
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateGroupNotificationPreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| notifyPrefTypeMandatory | String | Group notification preference type. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Group ID. Required. |
| valueMandatory | Boolean | Whether to enable (true) or disable (false) the preference. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateGroupNotificationPreference \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Operation result — success or failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve notification preferences for a specific board.
Returns the per-type notification preference settings (push, email, Cliq bot) for the specified board, along with general notification preferences and Cliq bot status. The board must be active and the user must be a member.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/getBoardNotificationPreferences
Scope
ZohoPulse.grouplist.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/getBoardNotificationPreferences
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionIdMandatory | Long | Board (partition) ID. Required. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getBoardNotificationPreferences?scopeID=3000000000008&partitionId=3000000256092' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| general | JSON Array | General notification preferences. |
| cliqBot | Boolean | Cliq bot notification enabled. |
| preference | String | Preference type name (e.g., commentOnPost, likeOnPost). |
| push | Boolean | Push notification enabled. |
| Boolean | Email notification enabled. | |
| preferences | JSON Array | Board-specific notification preferences. |
| executionTime | Long | Execution time in milliseconds. Conditional. |
| cliqBot | Boolean | Cliq bot notification enabled. |
| preference | String | Board preference type (e.g., taskAddedOnBoard, taskAssignedToMe). |
| executionMin | Integer | Minute of execution time. Conditional. |
| taskDueNDays | Integer | Days before due date to notify. Conditional. |
| executionHour | Integer | Hour of execution time. Conditional. |
| push | Boolean | Push notification enabled. |
| Boolean | Email notification enabled. | |
| isFollowing | Boolean | Whether the user follows new posts on this board. |
| cliqBot | JSON Object | Zoho Cliq bot notification status. |
| isOrgNotifierEnabled | Boolean | Whether org-wide Cliq notification is enabled. Conditional. |
| needUpgrade | Boolean | Whether a plan upgrade is required. Conditional. |
| isSubscribed | Boolean | Whether user is subscribed to the Cliq bot. Conditional. |
| canUninstall | Boolean | Whether user can uninstall the Cliq extension. Conditional. |
| isEnabled | Boolean | Whether Cliq bot notifications are enabled. |
| canInstall | Boolean | Whether user can install the Cliq extension. Conditional. |
| isInstalled | Boolean | Whether the Cliq extension is installed. Conditional. |
| noAppAccount | Boolean | Whether user has no Cliq app account. Conditional. |
| isSupported | Boolean | Whether Cliq bot is supported for this scope. |
| isDisabled | Boolean | Whether the Cliq extension is disabled. Conditional. |
| name | String | Board name. |
| mute | Boolean | Whether the board is muted. |
| id | Long | Board (partition) ID. |
| noMoreNotifications | Boolean | Whether the user has exceeded email notification limits. |
| type | String | Partition type (e.g., PROJECT). |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Get Board Notification Preferences returned successfully.
{
"general": [
{
"cliqBot": false,
"preference": "commentOnPost",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "likeOnPost",
"push": true,
"email": false
}
],
"preferences": [
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": true,
"preference": "taskAssignedToMe",
"push": true,
"email": true
}
],
"isFollowing": true,
"cliqBot": {
"isEnabled": false,
"isSupported": true
},
"name": "Engineering Sprint",
"mute": false,
"id": 3000000270001,
"noMoreNotifications": false,
"type": "PROJECT"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a notification preference for a board.
Updates a notification preference for the specified board. Accepts push, email, or Cliq bot notification types and board-specific preference types.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBoardNotificationPreference
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateBoardNotificationPreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| notifyPrefTypeMandatory | String | Board notification preference type (e.g., taskAddedOnBoard, taskAssignedToMe). Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notifyType | String | Notification channel — EMAIL, PUSH, or CLIQBOT. |
| partitionIdMandatory | Long | Board (partition) ID. Required. |
| taskDDExecutionHour | Integer | Hour component of before-due-date execution time. |
| taskSDNDays | String | Number of days before the start date to notify (1-30). |
| taskDDExecutionMin | Integer | Minute component of before-due-date execution time. |
| taskSDExecutionMin | Integer | Minute component of before-start-date execution time. |
| taskSDExecutionHour | Integer | Hour component of before-start-date execution time. |
| valueMandatory | Boolean | Whether to enable (true) or disable (false) the preference. Required. |
| taskDDNDays | String | Number of days before the due date to notify (1-30). |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateBoardNotificationPreference \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Operation result — success or failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update Cliq bot notification preference for a board.
Updates a Cliq bot notification preference for the specified board. Accepts push, email, or Cliq bot notification types and board-specific preference types.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateBoardCliqBotNotificationPreference
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateBoardCliqBotNotificationPreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| notifyPrefTypeMandatory | String | Board notification preference type (e.g., taskAddedOnBoard, taskAssignedToMe). Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notifyType | String | Notification channel — EMAIL, PUSH, or CLIQBOT. |
| partitionIdMandatory | Long | Board (partition) ID. Required. |
| taskDDExecutionHour | Integer | Hour component of before-due-date execution time. |
| taskSDNDays | String | Number of days before the start date to notify (1-30). |
| taskDDExecutionMin | Integer | Minute component of before-due-date execution time. |
| taskSDExecutionMin | Integer | Minute component of before-start-date execution time. |
| taskSDExecutionHour | Integer | Hour component of before-start-date execution time. |
| valueMandatory | Boolean | Whether to enable (true) or disable (false) the preference. Required. |
| taskDDNDays | String | Number of days before the due date to notify (1-30). |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateBoardCliqBotNotificationPreference \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Operation result — success or failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Update a notification preference for forums.
Updates a forum notification preference (email, push, Cliq bot, or feed push) for the current user.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateForumNotificationPreference
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateForumNotificationPreference
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notifyTypeMandatory | String | Notification channel — EMAIL, PUSH, CLIQBOT, or FEEDPUSH. Required. |
| valueMandatory | Boolean | Whether to enable (true) or disable (false) the preference. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateForumNotificationPreference \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Operation result — success or failure. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Enable or disable mobile push notifications.
Toggles the master mobile push notification setting for the current user. Only the NO_MORE_EMAILS preference type is accepted; other types will result in an error.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/updateMobileNotificationSetting
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/updateMobileNotificationSetting
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| preferenceTypeMandatory | String | Preference type — must be "NO_MORE_EMAILS". Required. |
| preferenceValueMandatory | Boolean | Whether to disable (true) or enable (false) push notifications. Required. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateMobileNotificationSetting \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the current user's unread notification count.
Returns the unread notification count and whether the current user can mark all notifications as read.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/notificationCounts
Scope
ZohoPulse.feedList.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/notificationCounts
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| version | Integer | API version hint. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/notificationCounts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| notificationCount | Integer | Number of unread notifications. |
| canReadAll | Boolean | Whether the user can mark all notifications as read. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Notification count returned.
{
"notificationCount": 5,
"canReadAll": true
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Reset the unread notification count to zero.
Resets the unread notification count badge for the current user.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/resetNotificationCount
Scope
ZohoPulse.connectNotifications.CREATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/resetNotificationCount
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeID | Long | Network (scope) ID. |
| version | Integer | API version. When 1, resets all categories; otherwise resets only GENERAL. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/resetNotificationCount \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Retrieve the notification feed for the current user.
Returns a paginated list of notifications for the authenticated user, including activity details, message text, and pagination cursor. Supports filtering by notification type and sorting.
Rate limited to 20 requests per minute.
Request URL
https://ServerDomain/pulse/api/userNotifications
Scope
ZohoPulse.connectNotifications.READ
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
get /pulse/api/userNotifications
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor — epoch time in milliseconds. Returns notifications older than this time. |
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| sortingType | String | Sort order type. |
| filterType | String | Notification filter type. |
| version | Integer | API version hint. When 1, user details are returned in a "details" array instead of a "usersDetails" object. |
Sample Request
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userNotifications?modifiedTime=3000000100001&scopeID=3000000000008&sortingType=latest&filterType=all&version=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| modifiedTime | Long | Pagination cursor for next page. Present when more results available. |
| canReadAll | Boolean | Whether the user can mark all as read. Present via nativeapi path. |
| unreadCount | Integer | Total unread notification count. Present via nativeapi path. |
| notifications | JSON Array | Array of notification objects. |
| msg | String | Notification message text. |
| hasCustomImg | Boolean | Whether notifier has custom profile image. Conditional. |
| type | String | Activity type (e.g., NEW_COMMENT, LIKE_STREAM). |
| url | String | Full URL to the notification target. |
| isUnread | Boolean | Whether the notification is unread. |
| content | String | Content snippet. Conditional. |
| zuid | Long | Notifier Zoho User ID. Conditional. |
| formatedTime | String | Formatted display time. |
| streamType | String | Post type. Conditional. |
| stream_Id | Long | Post ID. Conditional. |
| notifier | Long | User ID of the person who triggered the notification. |
| linkUrl | String | Relative URL path. |
| commentType | String | Comment type (e.g., COMMENT). |
| name | String | Notifier display name. Conditional. |
| notificationId | Long | Unique notification ID. |
| postTitle | String | Post or task title. Conditional. |
| id | Long | Related item ID. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Get User Notifications returned successfully.
{
"modifiedTime": 1752588300000,
"canReadAll": true,
"unreadCount": 3,
"notifications": [
{
"msg": "John Smith commented on your post",
"hasCustomImg": true,
"type": "NEW_COMMENT",
"url": "https://connect.zoho.com/portal/myorg/#postDetail/515500000009433",
"isUnread": true,
"content": "Great work on the report!",
"zuid": 10001001,
"formatedTime": "Jul 15, 2025 03:45 PM",
"streamType": "STATUS",
"stream_Id": 515500000009433,
"notifier": 10001001,
"linkUrl": "/portal/myorg/#postDetail/515500000009433",
"commentType": "COMMENT",
"name": "John Smith",
"notificationId": 515500000010551,
"id": 515500000010550
},
{
"msg": "John Smith commented on your post",
"hasCustomImg": false,
"type": "NEW_COMMENT",
"url": "https://connect.zoho.com/portal/myorg/#postDetail/515500000009433",
"isUnread": false,
"content": "Great work on the report!",
"zuid": 10001002,
"formatedTime": "Jul 15, 2025 03:45 PM",
"streamType": "STATUS",
"stream_Id": 515500000009434,
"notifier": 10001002,
"linkUrl": "/portal/myorg/#postDetail/515500000009433",
"commentType": "COMMENT",
"name": "John Smith",
"notificationId": 515500000010552,
"id": 515500000010551
}
]
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Delete a specific notification.
Permanently removes a notification for the current user by notification ID.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/deleteNotification
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deleteNotification
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notificationIdMandatory | Long | Notification ID to delete. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/deleteNotification \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Mark a specific notification as read.
Marks the specified notification as read for the current user.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/markNotificationAsRead
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markNotificationAsRead
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notificationIdMandatory | Long | Notification ID to mark as read. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/markNotificationAsRead \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
| canReadAll | Boolean | Whether the user can mark all notifications as read. Conditional. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success",
"canReadAll": true
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Mark a specific notification as unread.
Marks the specified notification as unread for the current user so it appears as new again.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/markNotificationAsUnread
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markNotificationAsUnread
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| notificationIdMandatory | Long | Notification ID to mark as unread. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/markNotificationAsUnread \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
| canReadAll | Boolean | Always returned as true when marking unread. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success",
"canReadAll": true
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Mark all notifications as read for the current user.
Marks every unread notification as read for the authenticated user in the given scope.
Rate limited to 60 requests per minute.
Request URL
https://ServerDomain/pulse/api/markAllNotificationsAsRead
Scope
ZohoPulse.connectNotifications.UPDATE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/markAllNotificationsAsRead
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
Sample Request
curl --request POST \
--url https://connect.zoho.com/pulse/api/markAllNotificationsAsRead \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| result | String | Success indicator — success. |
| canReadAll | Boolean | Whether the user can mark all notifications as read. Conditional. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Operation completed successfully.
{
"result": "success"
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.
Deletes a channel within a group
Deletes a channel by providing the channelId instead of the partitionId. You must be a channel admin to perform this action. Returns result=success if the deletion is successful, or result=failure with a reason if it fails.
Rate limited to 10 requests per minute.
Request URL
https://ServerDomain/pulse/api/deletePartition
Scope
ZohoPulse.grouplist.DELETE
Header
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Endpoints
post /pulse/api/deletePartition
Request Parameters
- Query Parameters
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| scopeIDMandatory | Long | Network (scope) ID. Required. |
| partitionId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required. |
| channelId | String Allowed value:(matches: ^([A-Za-z0-9]*)$) | Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required. |
Sample Request
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePartition?scopeID=3000000000008&partitionId=3000000256092&channelId=C100001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'Response Parameters
- HTTP code 200
| PARAM NAME | DATA TYPE | DESCRIPTION |
|---|---|---|
| deletePartition | JSON Object | Inner deletePartition object — success result or error with reason |
| result | String | 'success' or 'failure'. |
| reason | String | Error message. Present on failure — e.g. 'Access denied'. |
Possible HTTP Status Codes
| HTTP Code | Description |
|---|---|
| 200 | Success response |
Sample Response: HTTP 200
Channel successfully deleted.
{
"deletePartition": {
"result": "success"
}
}
Returned when the caller is not a channel admin.
{
"deletePartition": {
"result": "failure",
"reason": "Access denied"
}
}
© 2025, Zoho Corporation Pvt. Ltd. All Rights Reserved.