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'