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.

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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
Get Mentioned Items GET /pulse/api/mentionedItems
ZohoPulse.feedList
READ

No APIs found for this search.

Read Later

Method NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
Get My Feed Widgets GET /pulse/api/myfeedWidgets
ZohoPulse.feedList
READ

No APIs found for this search.

Moderation

Method NameMethod TypeURLOAuth ScopeOperation
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.

Method NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
Get Chapters from Manual GET /pulse/api/getChaptersFromManual
ZohoPulse.pagelist
READ

No APIs found for this search.

Town Hall

Method NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
Delete Channel POST /pulse/api/deletePartition
ZohoPulse.grouplist
DELETE

No APIs found for this search.

Networks

Method NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
Get User activities POST /pulse/api/userActivities
ZohoPulse.userDetail
READ

No APIs found for this search.

Directory

Method NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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 NameMethod TypeURLOAuth ScopeOperation
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.

Select API Scopes

API Scopes
Copied!
            

connectNotifications
blogs
networkAdmin
attachments
feedList
grouplist
networklist
pagelist
events
userDetail
tasks
Operation TypeDescription
ALLFull access to the resource
READAllow access to read data from the resource
CREATEAllow access to create data in the resource
UPDATEAllow access to update an existing data in the resource
WRITEAllow access to edit data in the resource (Alias for CREATE, UPDATE, and DELETE)
DELETEAllow access to delete data in the resource
CUSTOMCustom Operation Type

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?

OAuth 2.0 Workflow

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.


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.

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,

  1. Go to Zoho Developer Console and click on GET STARTED.

    API Console Page

  2. Choose a client type and click CREATE NOW:

    Types of Clients

    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.

  3. 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

    Server-based applications

  • Client-based applications

    Client-based applications

  • Self client

    Self client

  1. 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".

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.

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:

  1. 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/token

    Note: 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.

  2. 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.


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_token

    Note

    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.


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.

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.

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.

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.

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

https://connect.zoho.com

https://accounts.zoho.com

Europe

.eu

https://connect.zoho.eu

https://accounts.zoho.eu

India

.in

https://connect.zoho.in

https://accounts.zoho.in

Australia

.com.au

https://connect.zoho.com.au

https://accounts.zoho.com.au

China

.com.cn

https://connect.zoho.com.cn

https://accounts.zoho.com.cn

Japan

.jp

https://connect.zoho.jp

https://accounts.zoho.jp

Canada

.ca

https://connect.zohocloud.ca

https://accounts.zohocloud.ca

Saudi Arabia

.sa

https://connect.zoho.sa

https://accounts.zoho.sa

UAE

.ae

https://connect.zoho.ae

https://accounts.zoho.ae

Singapore

.sg

https://connect.zoho.sg

https://accounts.zoho.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.

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

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.

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Optional network (scope) ID to filter results to a specific network.

isAdminBoolean

If true, returns only networks where the user is an admin.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allScopes?scopeID=3000000000008&isAdmin=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
allScopesJSON Object

Inner allScopes object — contains scopes array on success, or error keys on failure

msgString

Error message. Present on failure.

resultString

Result status — 'failure'. Present on failure.

errorCodeString

Error code — e.g. NO_NETWORKS_FOUND. Present on failure.

scopesJSON Array

Array of network objects. Present on success.

soidString

Scope owner ID — the organization identifier.

isDefaultString

'true' if this is the user's default (intranet) network.

nameString

Display name of the network.

scopeUrlString

Scope URL slug. Present when a custom domain is configured.

zoidString

Zoho Organization ID. Present only for intranet-type networks.

idString

Unique network (scope) ID.

urlString

Full portal URL of the network.

customDomainString

Custom domain mapped to the network, if configured.

logoUrlString

URL of the network logo image, if set.

Possible HTTP Status Codes

HTTP CodeDescription
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.

Copied!
        {
"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"
}
]
}
}
            
Show full

Returned when the user does not belong to any network.

Copied!
        {
"allScopes": {
"msg": "No networks found",
"result": "failure",
"errorCode": "NO_NETWORKS_FOUND"
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsMandatoryLong

Comma-separated ZUIDs to add. Max 10.

memberRoleString
Allowed value:(matches: ^(MEMBER|ADMIN)$)

Role to assign: MEMBER (default) or ADMIN.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addOrgUserToNetwork?scopeID=3000000000008&userIds=10001001,10001002&memberRole=MEMBER' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addOrgUserToNetworkJSON Object

Inner addOrgUserToNetwork object — result key

resultString

Result status — 'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Users were successfully added to the network.

Copied!
        {
"addOrgUserToNetwork": {
"result": "success"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
emailIdsMandatoryString
Allowed value:(matches: (?ims)(.*?))

Comma-separated email addresses of existing Zoho users to add. Max 1000.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addUsersToNetworkJSON Object

Inner addUsersToNetwork object — result and optional reason

resultString

Result status — 'success' or 'failure'.

reasonString

Failure reason (e.g. Access denied). Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Users were successfully added to the network.

Copied!
        {
"addUsersToNetwork": {
"result": "success"
}
}
            
Show full

Returned when the caller is not a scope admin or org admin, or the network type does not support this operation.

Copied!
        {
"addUsersToNetwork": {
"result": "failure",
"reason": "Access denied"
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
emailIdsMandatoryString
Allowed value:(matches: (?ims)(.*?))

Comma-separated email addresses to invite.

scopeIDMandatoryLong

Network (scope) ID. Required.

memberTypeString
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.

partitionIdsLong

Comma-separated group IDs to add invited users to.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
inviteUsersToNetworkJSON Object

Inner inviteUsersToNetwork object — success and error keys

successUserCountString

Number of users successfully invited.

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

existingUsersJSON Array

Array of email addresses already in the network.

addedUsersJSON Array

Array of email addresses of users directly added (e.g. domain-verified users).

failedUsersJSON Object

Categorized failure details. Present when some invitations fail.

failedUsersWithMessageJSON Array

Detailed failure objects.

descriptionString

Human-readable failure reason.

usersJSON Array

Array of failed user emails.

emailString

Email address of the failed user.

sameDomainUsersJSON Array

Users from the same domain that could not be invited.

otherFailedUsersJSON Array

Invalid email addresses or other failures.

sameOrgUsersJSON Array

Users already in the same org.

otherRegionUsersJSON Array

Users in a different data center region.

rejectedUsersJSON Array

Rejected email addresses.

maxLimitExceededJSON Array

Emails that exceeded the user limit.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

All users were successfully invited to the network.

Copied!
        {
"inviteUsersToNetwork": {
"successUserCount": "1",
"result": "success"
}
}
            
Show full

Returned when the caller is not a network admin or does not have permission to invite users.

Copied!
        {
"inviteUsersToNetwork": {
"result": "failure",
"reason": "Access denied"
}
}
            
Show full

Some users were invited, some already existed, and some had invalid emails.

Copied!
        {
"inviteUsersToNetwork": {
"successUserCount": "1",
"result": "success",
"existingUsers": [
"alice@zillium.com"
],
"failedUsers": {
"otherFailedUsers": [
"invalid-email"
]
}
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

scopeUrlString
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
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/clientPortalDetails?scopeID=3000000000008&scopeUrl=mycompany' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
orgTypeString

Organisation type.

isOldClientDomainBoolean

True for default client portal version. Absent in v1.

scopeIdLong

Network scope ID.

clientZaidString

Client ZAID.

baseDomainString

Base domain.

scopeNameString

Network display name.

domainString

Service domain (e.g. zoho.com).

accountsUrlString

Accounts server URL.

scopeUrlString

Full client portal URL.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns flat client portal configuration details.

Copied!
        {
"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"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Return only members modified after this timestamp (epoch ms).

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scopeMembers?modifiedTime=1742464200000&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDataJSON Array

Array of corporate (internal) user objects.

nameString

Display name.

emailIdString

Email address. May be absent for users without visible email.

idString

User ZUID as string.

isAdminString

'true' if user is an admin. Only present when true.

typeString

Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client).

isScopeAdminString

'true' if user is a scope admin. Only present when true.

externalClientIdsJSON Array

String array of external client user IDs (quick lookup).

clientsDataJSON Array

Array of client portal user objects.

nameString

Display name.

emailIdString

Email address. May be absent for users without visible email.

idString

User ZUID as string.

isAdminString

'true' if user is an admin. Only present when true.

typeString

Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client).

isScopeAdminString

'true' if user is a scope admin. Only present when true.

externalClientsDataJSON Array

Array of external client user objects.

nameString

Display name.

emailIdString

Email address. May be absent for users without visible email.

idString

User ZUID as string.

isAdminString

'true' if user is an admin. Only present when true.

typeString

Member type code — 'C' (corporate), 'CL' (client), 'ECL' (external client).

isScopeAdminString

'true' if user is a scope admin. Only present when true.

clientIdsJSON Array

String array of client user IDs (quick lookup).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns scopeMembers wrapper with usersData, clientsData, and externalClientsData arrays.

Copied!
        {
"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"
]
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sorts by oldest first. If false (default), most recent first.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/recentOrgMembers?isAscSort=false&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
recentOrgMembersJSON Object

Inner recentOrgMembers object — user details array on success, or failure result

resultString

Result status — 'success' or 'failure'.

userDetailsJSON Array

Array of recently joined member objects. Present on success.

roleString

Member role — e.g. 'member'.

formattedViewedTimeString

Human-readable formatted join time.

nameString

Display name of the member.

millisecString

Join timestamp as epoch milliseconds.

typeString

Member type code: C (corporate), CL (client).

zuidString

Zoho User ID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns recently joined members with ZUID, name, role, type, and formatted join timestamp.

Copied!
        {
"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"
}
]
}
}
            
Show full

Returned when no recent member joins are found.

Copied!
        {
"recentOrgMembers": {
"result": "failure"
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
actionTypeMandatoryString
Allowed value:(matches: (DISABLE|ENABLE))

Action to perform: ENABLE or DISABLE.

scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsMandatoryLong

Comma-separated ZUIDs of users to enable or disable.

isFromReportBoolean

If true, the action originates from a moderation report.

canUpdateUserBoolean

If true, bypasses People sync check before modifying users.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Result status — 'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Users were successfully enabled or disabled.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

zuidMandatoryLong

Zoho User ID of the client user to disable. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/disableClientUsers?scopeID=3000000000008&zuid=10002001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Client user disabled successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

exportTypeInteger

Export format ordinal. 0 = CSV (default), 1 = ZIP.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v2/exportMembers?scopeID=3000000000008&exportType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Possible HTTP Status Codes

HTTP CodeDescription
200

File download — CSV or ZIP binary post. This API does not return JSON.

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/appsOrder?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canAddWebTabBoolean

Whether user can add web tabs.

feedLandingPageString

Sub-landing page for Feeds (FeedType name).

isDashboardDisabledString

true when Dashboard is landing but feature disabled.

appListJSON Array

Sorted app name list (when isNeedSortedAppsList).

displayNameString

Localised display name.

nameString

Internal app name (e.g. feed, attachments, blog).

landingPageString

Landing page app type ordinal as string.

blogLandingPageString

Sub-landing page for Forum (ForumType name).

appsJSON Array

Ordered array of enabled app tabs.

tabNameString

Localised display name. Only present when module name is configured.

openInTabBoolean

WebTab only — opens in new browser tab.

iconOrdInteger

WebTab only — icon ordinal (default 0).

nameString

App type name (lowercase).

isCustomAuthBoolean

WebTab only — true for MEDIASSIST/CORPQLO/EKINCARE.

createdTimeLong

WebTab only — creation timestamp (epoch ms).

configurationIdLong

WebTab only — configuration ID.

typeString

App type ordinal as string (e.g. 22 for FEEDS, 20 for DASHBOARD).

toSetClassString

WebTab only — CSS class (e.g. ci-vantagecircle).

manualLandingPageString

Sub-landing page for Manuals (ManualType name).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns the ordered apps and landing page preference wrapped in appsOrder.

Copied!
        {
"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"
}
]
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDString
ziaString

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scopeApps?scopeID=3000000000008&zia=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
appsJSON Array

Array of app tab objects.

iconOrdInteger

Icon ordinal. WEBTAB only.

subLandingPageString

Sub-landing page type. Conditional for FEEDS/BLOG/MANUALS.

typeString

App tab type (FEEDS, BLOG, MANUALS, FILES, DASHBOARD, WEBTAB, etc.).

isWorkdriveBoolean

WorkDrive enabled. FILES only. Conditional.

iframeUrlString

Iframe URL. WEBTAB only.

urlString

Dashboard URL. DASHBOARD only.

openInTabBoolean

Open in new tab. WEBTAB only. Conditional.

creatorURLString

Creator URL. WEBTAB only. Conditional.

serviceString

Service name (e.g. 'VANTAGECIRCLE'). Conditional.

nameString

Localized app name.

isLandingBoolean

True if this app is the scope's landing page. Conditional.

isCustomAuthBoolean

Custom auth flag. Conditional.

loadUrlBoolean

True for VantageCircle integration. Conditional.

configurationIdLong

ThirdPartyConfiguration ID. WEBTAB only.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

App tabs for the scope.

Copied!
        {
"apps": [
{
"name": "Feeds",
"isLanding": true,
"type": "FEEDS"
},
{
"name": "Forum",
"type": "BLOG"
},
{
"name": "Manuals",
"type": "MANUALS"
},
{
"name": "Files",
"type": "FILES"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

appType[]MandatoryString

Comma-separated list of app type names in the desired order. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/updateAppsOrder \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

success or failure.

canAddWebTabBoolean

Whether user can add web tabs.

feedLandingPageString

Sub-landing page for Feeds.

isDashboardDisabledString

true when Dashboard is landing but feature disabled.

landingPageString

Landing page app type ordinal as string.

blogLandingPageString

Sub-landing page for Forum.

appsJSON Array

Updated ordered app tabs.

tabNameString

Localised display name. Only present when module name is configured.

openInTabBoolean

WebTab only — opens in new browser tab.

iconOrdInteger

WebTab only — icon ordinal (default 0).

nameString

App type name (lowercase).

isCustomAuthBoolean

WebTab only — true for MEDIASSIST/CORPQLO/EKINCARE.

createdTimeLong

WebTab only — creation timestamp (epoch ms).

configurationIdLong

WebTab only — configuration ID.

typeString

App type ordinal as string (e.g. 22 for FEEDS, 20 for DASHBOARD).

toSetClassString

WebTab only — CSS class (e.g. ci-vantagecircle).

manualLandingPageString

Sub-landing page for Manuals.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Apps order updated successfully. Response wrapped in appsOrder key.

Copied!
        {
"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"
}
]
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

emailIdString
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.

userIdLong

ZUID of the user to remove.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deleteUserFromNetworkJSON Object

Inner deleteUserFromNetwork object — result and optional reason

resultString

Result status — 'success' or 'failure'.

reasonString

Failure reason — e.g. SELF_DELETE_NOT_ALLOWED, Invalid user. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

The user was successfully removed from the network.

Copied!
        {
"deleteUserFromNetwork": {
"result": "success"
}
}
            
Show full

Returned when the userId or emailId does not match any member of the network.

Copied!
        {
"deleteUserFromNetwork": {
"result": "failure",
"reason": "Invalid user"
}
}
            
Show full

Returned when the caller attempts to remove themselves from the network.

Copied!
        {
"deleteUserFromNetwork": {
"result": "failure",
"reason": "SELF_DELETE_NOT_ALLOWED"
}
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
soidMandatoryLong

Scope object ID of the network to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteNetwork?soid=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Result status — 'success' or 'failure'.

codeString

Error code — e.g. CANCEL_SUBSCRIPTION_BEFORE_DELETE_NETWORK. Present when paid plan blocks deletion.

messageString

Failure message with support contact information. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success or failure response

Sample Response: HTTP 200

The network was successfully deactivated and deleted.

Copied!
        {
"result": "success"
}
            
Show full

Returned when the network is on a paid plan. The subscription must be cancelled first.

Copied!
        {
"result": "failure",
"code": "CANCEL_SUBSCRIPTION_BEFORE_DELETE_NETWORK"
}
            
Show full

Returned when network deactivation fails.

Copied!
        {
"result": "failure",
"message": "Unable to delete the network. Please contact support@zohoconnect.com."
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myProfile?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
userDetailsJSON Object

User profile object — shared across myProfile, userProfile, editUserProfile

lastNameString

Last name.

extensionString

Work phone extension.

userStatusString

active, disabled, or inactive.

isExternalUserBoolean

True if the user is an external user.

hasCustomImgBoolean

True if user has a custom profile image.

isLoginUserBoolean

True if viewing own profile.

emailIdString

Primary email address (if visible).

typeString

Member type code.

followingCountInteger

Number of users/groups this user follows.

aboutMeString

About me text.

workLocationString

Work location.

canBlockUserString

'true' if the caller can block this user.

seatingLocationString

Seating location.

departmentString

Department name.

followerCountLong

Number of followers.

canReportSpamString

'true' if spam reporting is available.

isFollowingBoolean

True if the caller follows this user.

partitionIdLong

User's partition ID.

canShowOrgChartBoolean

True if org chart is available (intranet only).

mobileString

Mobile phone number (intranet only).

canShowChatOptionBoolean

True if chat option is available.

employeeIdString

Employee ID.

zuidInteger

User's ZUID.

firstNameString

First name.

directReporteesCountInteger

Number of direct reportees (if org chart enabled).

nameString

Screen name.

isUserBlockedString

'true' if the user is blocked by the caller.

designationString

Job title / designation.

Possible HTTP Status Codes

HTTP CodeDescription
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.

Copied!
        {
"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
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

emailIdString
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.

userIdLong

ZUID of the target user.

versionString
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
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
userDetailsJSON Object

User profile object — shared across myProfile, userProfile, editUserProfile

lastNameString

Last name.

extensionString

Work phone extension.

userStatusString

active, disabled, or inactive.

isExternalUserBoolean

True if the user is an external user.

hasCustomImgBoolean

True if user has a custom profile image.

isLoginUserBoolean

True if viewing own profile.

emailIdString

Primary email address (if visible).

typeString

Member type code.

followingCountInteger

Number of users/groups this user follows.

aboutMeString

About me text.

workLocationString

Work location.

canBlockUserString

'true' if the caller can block this user.

seatingLocationString

Seating location.

departmentString

Department name.

followerCountLong

Number of followers.

canReportSpamString

'true' if spam reporting is available.

isFollowingBoolean

True if the caller follows this user.

partitionIdLong

User's partition ID.

canShowOrgChartBoolean

True if org chart is available (intranet only).

mobileString

Mobile phone number (intranet only).

canShowChatOptionBoolean

True if chat option is available.

employeeIdString

Employee ID.

zuidInteger

User's ZUID.

firstNameString

First name.

directReporteesCountInteger

Number of direct reportees (if org chart enabled).

nameString

Screen name.

isUserBlockedString

'true' if the user is blocked by the caller.

designationString

Job title / designation.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns profile details for the specified user including identity, follow counts, status, contact info, and social links.

Copied!
        {
"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
}
}
            
Show full

Returned when the userId does not match a valid user in the network.

Copied!
        {
"userDetails": {
"result": "failure",
"reason": "Invalid User"
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdLong

ZUID of the user whose profile to edit. Defaults to the authenticated user.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/editUserProfile?scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'failure' on error.

reasonString

Error message on failure.

scopeDateFormatString

Date format for the scope (e.g. 'dd MMM yyyy').

profileFieldsJSON Array

Ordered array of editable profile field objects.

isOnBoardingString

'true' if the field is shown during onboarding.

hideMobileString

'true' if mobile number hidden. Only on MOBILE field.

valuesJSON Array

Currently selected values for multi-select fields. Each item has id and value.

canHideJoiningDateString

'true' if joining date visibility can be toggled. Only on JOININGDATE field.

typeString

Custom field type — TEXT, TEXTAREA, SELECTBOX, MULTI_SELECTBOX, FILE, DATE. Only present on custom fields.

hideJoiningDateString

'true' if joining date hidden. Only on JOININGDATE field.

isEditableString

'true' if the field is editable by the caller.

canHideBirthdayString

'true' if birthday visibility can be toggled. Only on BIRTHDATE field.

nameString

Display name of the field.

optionsJSON Array

Available choices for select-type fields. Each item has id and value.

isCustomString

'true' for custom fields. Only present on custom fields.

idString

Field identifier — built-in uppercase codes (FIRSTNAME, LASTNAME, BIRTHDATE, etc.) or numeric custom field ID.

isPIIString

'true' if the field is personally identifiable information.

valueString

Current value. Absent when empty/unset.

isMandatoryString

'true' if the field is required.

hideBirthdayString

'true' if birthday hidden. Only on BIRTHDATE field.

editProfileRedirectURLString

Zoho People redirect URL (if People synced).

isPeopleSyncedBoolean

True if Zoho People is synced — no profileFields returned.

zuidString

User's ZUID as string.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns editUserProfile wrapper with profileFields array containing editable fields, options, and current values.

Copied!
        {
"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"
}
}
            
Show full

Returned when the caller is neither the profile owner nor a scope admin.

Copied!
        {
"editUserProfile": {
"result": "failure",
"reason": "Access Denied"
}
}
            
Show full

When Zoho People is synced, returns redirect URL instead of editable fields.

Copied!
        {
"editUserProfile": {
"editProfileRedirectURL": "https://people.zoho.com/zillium/editProfile",
"isPeopleSynced": true
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
youtubeString
Allowed value:(matches: cleartext:removehtmlentities)

YouTube channel URL.

lastNameString
Allowed value:(matches: cleartext:removehtmlentities)

Last name.

scopeIDMandatoryLong

Network (scope) ID. Required.

displayNameString
Allowed value:(matches: cleartext:removehtmlentities)

Display name.

customFieldsJSON Array

Alternative JSON array of custom field objects.

dateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Day component for DATE fields.

monthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Month component for DATE fields.

hourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Hour component for DATE fields.

yearString
Allowed value:(matches: ^(19|20)\d\d$)

Year component for DATE fields.

optionIdsJSON Array

Selected option IDs for MULTI_SELECTBOX fields.

fieldIdMandatoryLong

Custom field ID. Required.

minuteString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Minute component for DATE fields.

recordValueString
Allowed value:(matches: (?ims)(.*?))

Field value for TEXT/TEXTAREA/SELECTBOX fields.

wikiString
Allowed value:(matches: cleartext:removehtmlentities)

Wiki URL.

joiningDateString
Allowed value:(matches: (?ims)(.*?))

Date of joining.

languageString
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).

instagramString
Allowed value:(matches: cleartext:removehtmlentities)

Instagram handle.

workLocationTagIdLong

Work location tag ID.

blogString
Allowed value:(matches: cleartext:removehtmlentities)

Blog URL.

departments[]Long

Department tag IDs.

aboutMeString
Allowed value:(matches: cleartext:removehtmlentities)

About me text.

skillsString
Allowed value:(matches: (?ims)(.*?))

Comma-separated skills.

workLocationString
Allowed value:(matches: cleartext:removehtmlentities)

Work location name.

twitterString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Twitter profile URL.

scopeDateFormatString
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.

seatingLocationString
Allowed value:(matches: cleartext:removehtmlentities)

Seating location.

reportingToLong

ZUID of the reporting manager.

hideBirthdayBoolean

If true, hides the birthday on the profile.

websiteString
Allowed value:(matches: cleartext:removehtmlentities)

Personal website URL.

customFieldValue[]String
Allowed value:(matches: (?ims)(.*?))

Custom field values corresponding to customFieldId[].

facebookString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Facebook profile URL.

mobileString
Allowed value:(matches: ^[0-9a-zA-Z\-_\.\+\(\)\s/,&\:@]*$)

Mobile phone number.

employeeIdString
Allowed value:(matches: (?ims)(.*?))

Employee ID.

linkedInString
Allowed value:(matches: cleartext:removehtmlentities)

LinkedIn profile URL.

triggerBoolean

If true, triggers a profile update workflow.

userIdLong

ZUID of the user whose profile to save.

birthDateString
Allowed value:(matches: (?ims)(.*?))

Birth date string.

deliciousString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Delicious profile URL.

userTimeZoneString
Allowed value:(matches: cleartext:removehtmlentities)

User timezone string.

amazonString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Amazon profile URL.

firstNameString
Allowed value:(matches: cleartext:removehtmlentities)

First name.

customFieldId[]Long

Custom field IDs to update.

dateOfJoiningString
Allowed value:(matches: ^([A-Za-z0-9 \-_'.,@:?!()$#]+)$)

Alternate joining date field.

flickrString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Flickr profile URL.

designationLong

Designation tag ID.

interestsString
Allowed value:(matches: (?ims)(.*?))

Comma-separated interests.

workPhoneExtensionString
Allowed value:(matches: ^[0-9a-zA-Z\-_\.\+\(\)\s/,&\:@]*$)

Work phone extension.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/saveUserProfile \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Profile saved successfully.

Copied!
        {
"result": "success"
}
            
Show full

Returned when the profile save fails.

Copied!
        {
"result": "failure"
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdLong

ZUID of the user whose image to upload.

- Request Body

multipart/form-data
PARAM NAMEDATA TYPEDESCRIPTION
photoContentBinary

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/uploadUserImage \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'
Show full

Sample Request Body

Copied!
        {
"photoContent": "string"
}
    
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Profile image uploaded successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

landingPageMandatoryString
Allowed value:(matches: DASHBOARD|FEEDS)

Landing page type. Either DASHBOARD or FEEDS. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateLandingPage?scopeID=3000000000008&landingPage=DASHBOARD' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateLandingPageJSON Object

Inner updateLandingPage object — success result

resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Landing page updated.

Copied!
        {
"updateLandingPage": {
"result": "success"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

fieldNameMandatoryString
Allowed value:(matches: (?ims)(.*?))

Custom field name. Required.

isEditableMandatoryBoolean

If true, users can edit the field value on their own profile.

fieldValuesString
Allowed value:(matches: (?ims)(.*?))

Comma-separated option labels for SELECTBOX or MULTI_SELECTBOX types. Max 200 options, 200 chars each.

isVisibleMandatoryBoolean

If true, the field is visible on the user profile.

isPIIMandatoryBoolean

If true, marks the field as personally identifiable information.

fieldTypeMandatoryInteger

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.

isOnBoardMandatoryBoolean

If true, the field appears on the onboarding form.

isMandatoryMandatoryBoolean

If true, the field is mandatory during onboarding.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addCustomFieldJSON Object

Inner addCustomField object — field details on success, or error result

isOnBoardingString

'true' if shown on onboarding form.

getFieldOptionsJSON Object

Map of option ID to option label. Present for SELECTBOX/MULTI_SELECTBOX types.

resultString

Result status — 'success' or 'failure'.

canManageString

'true' — always present on success.

isMandatoryCheckedString

'true' if the field is mandatory.

isEnabledString

'true' — always present on success.

isVisibleCheckedString

'true' if the field is visible on profiles.

nameString

Custom field name. Present on success.

isCustomString

'true' — always present on success.

canDeleteString

'true' — always present on success.

idString

Created custom field ID. Present on success.

isPIICheckedString

'true' if the field is marked as PII.

isEditableCheckedString

'true' if users can edit this field.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Custom field created. Returns the new field ID, name, and permission flags.

Copied!
        {
"addCustomField": {
"result": "success",
"canManage": true,
"isEnabled": true,
"isVisibleChecked": true,
"name": "Employee ID",
"isCustom": true,
"canDelete": true,
"id": "3000000090001",
"isEditableChecked": true
}
}
            
Show full

Custom field with SELECTBOX type created. Returns field options mapping.

Copied!
        {
"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
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

forDownloadBoolean

If true, triggers a download. If false, displays inline.

fromMobileBoolean

Set to true when calling from mobile client.

fieldIdMandatoryLong

Custom field ID. Required.

memberIdMandatoryLong

ZUID of the member whose file to download. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

userIdMandatoryLong

ZUID of the user to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/followUser \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'SUCCESS' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User followed successfully.

Copied!
        {
"result": "SUCCESS"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
lastFollowTimeLong

Timestamp for pagination. Returns followings older than this time.

scopeIDLong

Network (scope) ID.

userIdMandatoryLong

ZUID of the user whose followings to retrieve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/userFollowings?lastFollowTime=1772187185334&scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of user objects the user is following.

isFollowingBoolean

True if the caller follows this user.

imageUrlString

Profile image URL.

nameString

User display name.

emailIdString

User email (if visible).

typeString

Member type code.

zuidInteger

User ZUID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns users the specified user is following.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
lastFollowTimeLong

Timestamp for pagination. Returns followers older than this time.

scopeIDLong

Network (scope) ID.

userIdMandatoryLong

ZUID of the user whose followers to retrieve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/userFollowers?lastFollowTime=1772187185334&scopeID=3000000000008&userId=10001001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of follower user objects.

isFollowingBoolean

True if the caller follows this user.

imageUrlString

Profile image URL.

nameString

User display name.

emailIdString

User email (if visible).

typeString

Member type code.

zuidInteger

User ZUID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns followers of the specified user.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

userIdMandatoryLong

ZUID of the user to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/unfollowUser \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'SUCCESS' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User unfollowed successfully.

Copied!
        {
"result": "SUCCESS"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

canShowInFeedBoolean

If true, shows the favourite action in the feed.

appIdMandatoryLong

ID of the item to favourite. Required.

typeMandatoryString
Allowed value:(matches: ^[0-5]$)

Item type ordinal: 0=BOARDS, 1=GROUPS, 2=MANUALS, 3=ARTICLES, 4=CUSTOM_APP. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/favouriteApp \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'SUCCESS' on success.

favouriteItemJSON Object

The favourited item details.

bgColorString

Background color code (optional).

nameString

Item name.

logoString

Item logo (optional).

manualUrlString

Parent manual URL (for articles only).

idInteger

Item ID.

typeString

Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP.

urlString

Item URL.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Item favourited successfully.

Copied!
        {
"result": "SUCCESS",
"favouriteItem": {
"bgColor": "E063A3",
"name": "Engineering",
"logo": "EN",
"id": "3000000050001",
"type": "GROUPS",
"url": "engineering"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

limitInteger

Maximum number of items to return.

favouriteItemTypeString
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
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myFavourites?scopeID=3000000000008&limit=20&favouriteItemType=GROUPS' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
favouritesJSON Array

Array of favourited item objects.

bgColorString

Background color code (optional).

nameString

Item name.

logoString

Item logo (optional).

manualUrlString

Parent manual URL (for articles only).

idInteger

Item ID.

typeString

Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP.

urlString

Item URL.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns the user's favourited items.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

appIdMandatoryLong

ID of the item to unfavourite. Required.

typeMandatoryString
Allowed value:(matches: ^[0-5]$)

Item type ordinal: 0=BOARDS, 1=GROUPS, 2=MANUALS, 3=ARTICLES, 4=CUSTOM_APP. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url https://connect.zoho.com/pulse/api/unfavouriteApp \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'SUCCESS' on success.

favouriteItemJSON Object

The unfavourited item details.

bgColorString

Background color code (optional).

nameString

Item name.

logoString

Item logo (optional).

manualUrlString

Parent manual URL (for articles only).

idInteger

Item ID.

typeString

Item type: BOARDS, GROUPS, MANUALS, ARTICLES, CUSTOM_APP.

urlString

Item URL.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Item unfavourited successfully.

Copied!
        {
"result": "SUCCESS",
"favouriteItem": {
"name": "Engineering",
"id": "3000000050001",
"type": "GROUPS",
"url": "engineering"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdMandatoryLong

ZUID of the user to block. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/blockUser?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User blocked.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdMandatoryLong

ZUID of the user to unblock. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unblockUser?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User unblocked.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Timestamp for pagination. Returns activities older than this time.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Filter activities to a specific group.

typeString
Allowed value:(matches: ALL|POST|COMMENT|OTHERS)

Activity type filter: ALL (default), POST (posts only), COMMENT (comments only), OTHERS.

userIdMandatoryLong

ZUID of the user whose activities to retrieve. Required.

versionInteger

API version number. Defaults to 0.

partitionTypeInteger

Filter by partition type (e.g. townhall).

isUserLikesBoolean

If true, returns activities the user has liked instead of authored.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
userActivitiesJSON Object

Inner userActivities object — activities array with pagination and feature flags, or error keys

resultString

Result status — 'failure'. Present on error.

modifiedTimeString

Timestamp of the oldest activity in the current page. Use as modifiedTime param for pagination. Present when more activities exist.

reasonString

Error message. Present on failure.

canShowLikeString

'true' when viewing own activities (enables the Likes tab).

activitiesJSON Array

Array of activity objects. Each has a type and either a post or comment sub-object.

streamJSON Object

Post object. Present when type is NEW_STREAM, NEW_VOTE, etc.

canMoveString

'true' if the caller can move this post to another group.

reasonJSON Object

Activity reason with templated message and referenced items.

msgString

Templated activity message with placeholders like ^$@_USERNAME_^$@_ZUID and ^$@_PARTITION_^$@.

itemsJSON Object

Map of placeholder keys to their entity objects (user details, partition details). Keys are dynamic.

canTranslateString

'true' if translation is available.

canMarkAsMustReadString

'true' if the caller can mark as mandatory read.

uniqueViewCountString

Unique viewer count.

canEditString

'true' if the caller can edit this post.

streamModifiedTimeString

Last modified time as epoch milliseconds.

titleString

Post title (for announcements, tasks, etc.).

typeString

Post type: ANNOUNCEMENT, STATUS, BLOG, QUESTION, IDEA, EVENT, TOWNHALL, CAMPAIGN, etc.

contentString

Post body content (may contain HTML).

partitionJSON Object

Group where the post was posted.

typeOrdString

Ordinal of the partition type.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

isAdminString

'true' if the caller is an admin of this group.

typeString

Partition type: GROUP, FORUMS, DEFAULT, TOWNHALL, etc.

urlString

URL path of the group.

accessTypeString

Access type: PRIVATE, PUBLIC, OPEN.

bgColorString

Background color hex code for the group avatar.

nameString

Group display name.

canFollowString

'true' if the caller can follow this group.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT, etc.

idString

Group ID.

isUserFollowString

'true' if the caller follows this group.

statusString

Group status: ACTIVE.

canShowPostAuditString

'true' if post audit trail is available.

canFollowString

'true' if the caller can follow this post.

canDeleteString

'true' if the caller can delete this post.

canLockString

'true' if the caller can lock comments.

idString

Post ID.

viewCountString

Total view count.

isApprovedString

'true' if content is approved (moderation).

streamUrlString

URL slug of the post.

canMarkAsReadLaterString

'true' if read-later is available.

canShowPostInsightString

'true' if post insights are available.

userDetailsJSON Object

Author of the post.

bgColorString

Background color hex code for default avatar.

imageUrlString

Profile image URL. Present when the user has a custom avatar.

nameString

Display name.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

typeString

User type: C (corporate), CL (client), ECL (external client).

zuidString

Zoho User ID.

urlString

Full permalink URL of the post.

commentCountString

Number of comments on this post.

formatedTimeString

Human-readable formatted time.

timeString

Created time as epoch milliseconds.

module_nameString

Module name: FEEDS, FORUMS, etc.

statusString

Post status: ACTIVE.

commentJSON Object

Comment object. Present when type is COMMENT_OWN_POST, NEW_COMMENT, etc.

streamUrlString

URL slug of the parent post.

reasonJSON Object

Activity reason with templated message.

msgString

Templated activity message with placeholders like ^$@_USERNAME_^$@_ZUID and ^$@_PARTITION_^$@.

itemsJSON Object

Map of placeholder keys to their entity objects (user details, partition details). Keys are dynamic.

canTranslateString

'true' if translation is available.

streamIdString

ID of the parent post.

streamAuthorJSON Object

Author of the parent post.

bgColorString

Background color hex code for default avatar.

imageUrlString

Profile image URL. Present when the user has a custom avatar.

nameString

Display name.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

typeString

User type: C (corporate), CL (client), ECL (external client).

zuidString

Zoho User ID.

canEditString

'true' if the caller can edit this comment.

userDetailsJSON Object

Author of the comment.

bgColorString

Background color hex code for default avatar.

imageUrlString

Profile image URL. Present when the user has a custom avatar.

nameString

Display name.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

typeString

User type: C (corporate), CL (client), ECL (external client).

zuidString

Zoho User ID.

contentString

Comment body content.

urlString

Full permalink URL of the comment.

formatedTimeString

Human-readable formatted time.

streamTypeString

Type of the parent post: ANNOUNCEMENT, BLOG, STATUS, etc.

blogUrlString

Blog URL slug. Present when parent is a BLOG post.

commentTypeString

Comment type: COMMENT.

canDeleteString

'true' if the caller can delete this comment.

idString

Comment ID.

timeString

Created time as epoch milliseconds.

isApprovedString

'true' if comment is approved (moderation).

streamPartitionJSON Object

Group of the parent post.

typeOrdString

Ordinal of the partition type.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

isAdminString

'true' if the caller is an admin of this group.

typeString

Partition type: GROUP, FORUMS, DEFAULT, TOWNHALL, etc.

urlString

URL path of the group.

accessTypeString

Access type: PRIVATE, PUBLIC, OPEN.

bgColorString

Background color hex code for the group avatar.

nameString

Group display name.

canFollowString

'true' if the caller can follow this group.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT, etc.

idString

Group ID.

isUserFollowString

'true' if the caller follows this group.

statusString

Group status: ACTIVE.

typeString

Activity type: NEW_STREAM, COMMENT_OWN_POST, NEW_COMMENT, NEW_VOTE, NEW_PRIVATE_MESSAGE, FOLLOW_PARTITION, etc.

isBlogEnabledString

'true' if the blog/forum app is enabled for this network.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returned when the userId does not correspond to a valid user in the network.

Copied!
        {
"userActivities": {
"result": "failure",
"reason": "Oops, something went wrong here! Please try again after some time."
}
}
            
Show full

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.

Copied!
        {
"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"
}
}
            
Show full

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.

Copied!
        {
"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"
}
}
            
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
filterJSON Object

Input filter template for directory search

userFieldMandatoryJSON Array

Array of filter field objects.

nameString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Field name to filter on.

isCustomString
Allowed value:(matches: (true|false))

Whether this is a custom field.

valueJSON Array

Array of filter values.

scopeIDMandatoryLong

Network (scope) ID. Required.

memberTypeString
Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$)

Filter by member type (e.g., C, E).

startLmtInteger

Pagination start offset (default 0).

isUserDeptOnlyBoolean

If true, return only users from the caller's department.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getDirectoryUserDetails?scopeID=3000000000008&memberType=C&startLmt=0&isUserDeptOnly=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canUpdateReportingToBoolean

True if caller has MANAGE_USERS permission.

usersDetailsJSON Array

Array of user directory entries.

roleString

Member role — ADMIN or MEMBER.

isExternalUserBoolean

True if EXTERNAL_USER_CLIENT type.

hasCustomImgBoolean

True if user has a custom profile image.

emailIdString

Email address. Present based on scope visibility.

typeString

Member type code — C (corporate), CL (client), ECL (external client).

workLocationString

Work location. Present for admins/same-org users.

isUserActiveBoolean

Whether the user account is active.

memberSinceString

Formatted join date. Present if available.

seatingLocationString

Seating location. Present for admins/same-org users.

imageUrlString

Profile image URL. Present when custom image exists.

canFollowBoolean

True if caller can follow this user.

idLong

User ID (same as zuid).

departmentsJSON Array

Array of department objects. Present if user has departments.

idLong

Department ID.

valueString

Department name.

departmentString

Department name. Present if available and persona allows.

reportingToLong

Reporting-to user ZUID. Present if set.

isFollowingBoolean

True if caller follows this user.

reportingToDataJSON Object

Reporting-to user object. Present if reportingTo is set.

nameString

Reporting-to user display name.

idLong

Reporting-to user ZUID.

mobileString

Mobile phone number. Present if available and persona allows.

canShowChatOptionBoolean

True if chat is available between users.

isAdminBoolean

True if user is scope admin.

zuidLong

Zoho User ID.

nameString

Display name.

designationString

Job title. Present if available and persona allows.

statusString

Entity status — ACTIVE, INVITED, etc.

designationDataJSON Object

Designation object. Present if user has designation data.

idLong

Designation ID.

valueString

Designation name.

loadMoreBoolean

True if more results are available.

limitCountInteger

Same as count.

countInteger

Filtered result count for this page.

aditionalInfoJSON Object

Additional counts and permissions. Present on first page when needAditionalInfo=true.

externalGuestCountInteger

External guest count. Present if EXTERNAL_USER_CLIENT allowed.

scopeMemberCountInteger

Total members in scope.

pendingCountInteger

Pending invite count. Present for scope admins.

pendingClientUsersCountInteger

Pending client user count. Present for scope admins.

pendingRestrictedExternalGuestUsersCountInteger

Pending restricted external guest count. Present for scope admins.

disableCountInteger

Disabled user count. Present for scope admins on intranet.

guestCountInteger

Client guest count. Present if CLIENT invite type is allowed.

pendingRestrictedClientUsersCountInteger

Pending restricted client user count. Present for scope admins.

pendingExternalGuestUsersCountInteger

Pending external guest count. Present for scope admins.

canShowAddToBoardBoolean

True if scope admin and task app enabled.

canDisableUsersBoolean

True if caller can disable users. Present for intranet admins.

totalCountInteger

Total matching user count. Present on first page.

canManageUserBoolean

True if caller can manage users.

isPeopleSyncedBoolean

Whether Zoho People is synced.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns paginated directory user entries.

Copied!
        {
"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
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
filterJSON Object

Input filter template for directory search

userFieldMandatoryJSON Array

Array of filter field objects.

nameString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Field name to filter on.

isCustomString
Allowed value:(matches: (true|false))

Whether this is a custom field.

valueJSON Array

Array of filter values.

scopeIDMandatoryLong

Network (scope) ID. Required.

searchTermString
Allowed value:(matches: cleartext:removehtmlentities)

Free-text search term to match user names/details.

needHeaderInfoBoolean

If true, include column header metadata.

isMemberTypeFilterBoolean

If true, apply member type as a filter.

pageIndexInteger

Page index for pagination (default 0).

needAditionalInfoBoolean

If true, include additional info (department/designation lists).

memberTypeString
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.

fromSetupBoolean

If true, called from admin setup context.

isUserDeptOnlyBoolean

If true, return only users from the caller's department.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canUpdateReportingToBoolean

True if caller has MANAGE_USERS permission.

usersDetailsJSON Array

Array of user directory entries.

roleString

Member role — ADMIN or MEMBER.

isExternalUserBoolean

True if EXTERNAL_USER_CLIENT type.

hasCustomImgBoolean

True if user has a custom profile image.

emailIdString

Email address. Present based on scope visibility.

typeString

Member type code — C (corporate), CL (client), ECL (external client).

workLocationString

Work location. Present for admins/same-org users.

isUserActiveBoolean

Whether the user account is active.

memberSinceString

Formatted join date. Present if available.

seatingLocationString

Seating location. Present for admins/same-org users.

imageUrlString

Profile image URL. Present when custom image exists.

canFollowBoolean

True if caller can follow this user.

idLong

User ID (same as zuid).

departmentsJSON Array

Array of department objects. Present if user has departments.

idLong

Department ID.

valueString

Department name.

departmentString

Department name. Present if available and persona allows.

reportingToLong

Reporting-to user ZUID. Present if set.

isFollowingBoolean

True if caller follows this user.

reportingToDataJSON Object

Reporting-to user object. Present if reportingTo is set.

nameString

Reporting-to user display name.

idLong

Reporting-to user ZUID.

mobileString

Mobile phone number. Present if available and persona allows.

canShowChatOptionBoolean

True if chat is available between users.

isAdminBoolean

True if user is scope admin.

zuidLong

Zoho User ID.

nameString

Display name.

designationString

Job title. Present if available and persona allows.

statusString

Entity status — ACTIVE, INVITED, etc.

designationDataJSON Object

Designation object. Present if user has designation data.

idLong

Designation ID.

valueString

Designation name.

loadMoreBoolean

True if more results are available.

limitCountInteger

Same as count.

countInteger

Filtered result count for this page.

aditionalInfoJSON Object

Additional counts and permissions. Present on first page when needAditionalInfo=true.

externalGuestCountInteger

External guest count. Present if EXTERNAL_USER_CLIENT allowed.

scopeMemberCountInteger

Total members in scope.

pendingCountInteger

Pending invite count. Present for scope admins.

pendingClientUsersCountInteger

Pending client user count. Present for scope admins.

pendingRestrictedExternalGuestUsersCountInteger

Pending restricted external guest count. Present for scope admins.

disableCountInteger

Disabled user count. Present for scope admins on intranet.

guestCountInteger

Client guest count. Present if CLIENT invite type is allowed.

pendingRestrictedClientUsersCountInteger

Pending restricted client user count. Present for scope admins.

pendingExternalGuestUsersCountInteger

Pending external guest count. Present for scope admins.

canShowAddToBoardBoolean

True if scope admin and task app enabled.

canDisableUsersBoolean

True if caller can disable users. Present for intranet admins.

totalCountInteger

Total matching user count. Present on first page.

canManageUserBoolean

True if caller can manage users.

isPeopleSyncedBoolean

Whether Zoho People is synced.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns paged directory user entries with optional header info.

Copied!
        {
"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
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
filterJSON Object

Input filter template for directory search

userFieldMandatoryJSON Array

Array of filter field objects.

nameString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Field name to filter on.

isCustomString
Allowed value:(matches: (true|false))

Whether this is a custom field.

valueJSON Array

Array of filter values.

scopeIDMandatoryLong

Network (scope) ID. Required.

searchTermString
Allowed value:(matches: cleartext:removehtmlentities)

Free-text search term.

needAditionalInfoBoolean

If true, include additional info.

memberTypeString
Allowed value:(matches: ^(MEMBER|CLIENT|RESTRICTED_CLIENT|EXTERNAL_USER_CLIENT|EXTERNAL_USER_RESTRICTED_CLIENT)$)

Filter by member type.

isMoreIntranetMembersBoolean

If true, fetch additional pages of members.

fromSetupBoolean

If true, called from admin setup context.

startLmtInteger

Pagination start offset.

endLmtInteger

Pagination end offset.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/intranetUsers?scopeID=3000000000008&searchTerm=Bob&startLmt=0&endLmt=50' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of intranet user entries.

roleString

Member role — ADMIN or MEMBER.

isExternalUserBoolean

True if EXTERNAL_USER_CLIENT type.

hasCustomImgBoolean

True if user has a custom profile image.

emailIdString

Email address. Present based on scope visibility.

typeString

Member type code — C (corporate), CL (client), ECL (external client).

workLocationString

Work location. Present for admins/same-org users.

isUserActiveBoolean

Whether the user account is active.

memberSinceString

Formatted join date. Present if available.

seatingLocationString

Seating location. Present for admins/same-org users.

imageUrlString

Profile image URL. Present when custom image exists.

canFollowBoolean

True if caller can follow this user.

idLong

User ID (same as zuid).

departmentsJSON Array

Array of department objects. Present if user has departments.

idLong

Department ID.

valueString

Department name.

departmentString

Department name. Present if available and persona allows.

reportingToLong

Reporting-to user ZUID. Present if set.

isFollowingBoolean

True if caller follows this user.

reportingToDataJSON Object

Reporting-to user object. Present if reportingTo is set.

nameString

Reporting-to user display name.

idLong

Reporting-to user ZUID.

mobileString

Mobile phone number. Present if available and persona allows.

canShowChatOptionBoolean

True if chat is available between users.

isAdminBoolean

True if user is scope admin.

zuidLong

Zoho User ID.

nameString

Display name.

designationString

Job title. Present if available and persona allows.

statusString

Entity status — ACTIVE, INVITED, etc.

designationDataJSON Object

Designation object. Present if user has designation data.

idLong

Designation ID.

valueString

Designation name.

loadMoreBoolean

True if more results are available.

countInteger

Result count for this page.

totalCountInteger

Total number of matching users.

isPeopleSyncedBoolean

Whether Zoho People is synced.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns intranet user listing.

Copied!
        {
"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
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userFilterDetails?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
filterOrderJSON Array

Array of available filter definitions.

valuesJSON Array

Array of filter value objects.

nameString

Display value.

idLong

Tag ID, persona ID, or option ID.

nameString

Localised display name.

isCustomBoolean

True for custom fields.

idString

Field reference ID — e.g. 'DEPARTMENTS', 'DESIGNATIONS', 'WORKLOCATION', or a custom field ID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns available filter definitions.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

dashboardIdLong

Dashboard ID.

partitionIdLong

Group ID (required for GROUP type dashboards).

dashboardTypeString
Allowed value:(matches: ^(0|1|2|3)$)

Dashboard type ordinal — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/dashboard?scopeID=3000000000008&dashboardType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canCreateWidgetsString

'true' if the user can edit this dashboard.

isExternalUserString

'true' when caller is external/client user.

partitionIdLong

Group ID (for GROUP dashboards).

fileInfoJSON Object

Last editor info — version, lastModified, userDetails.

widgetsJSON Array

Array of widget objects with layout and type-specific data.

canDisplayTitleString

'true' if title can be toggled.

defaultHeightString

Default grid height.

loadMoreString

'true' if paginated loading is available.

iconString

CSS icon class.

canAddString

'true' if widget can be added by users.

bannerJSON Object

HERO type — allowScrolling, linkText, content.

minWidthString

Minimum grid width.

defaultWidthString

Default grid width.

widgetTypeString

Widget type — HERO, TIMER, LINKS, HTML, FEEDS, PEOPLE, GROUPS, EVENTS, TASKS, EMBED, etc.

widgetTitleString

Display title.

minHeightString

Minimum grid height.

displayTitleString

'true' if title is displayed.

timerJSON Object

TIMER type — remYear, remMonth, remDay, remHour, remMinutes, display.

nameString

Widget name.

xString

Grid X position (column).

widthString

Grid width in columns (out of 12).

viewTypeString

LINKS type — view type ordinal.

yString

Grid Y position (row).

linksJSON Object

LINKS type — showTitle, showDesc, viewType, links[], align, thumbnailView, showIcon.

htmlJSON Object

HTML type — align, content.

canReuseString

'true' if widget can be reused.

isConnectDefaultString

'true' if this is a Connect default widget.

heightString

Grid height in rows.

messageString

Error message (mobile, when not found).

urlString

Dashboard URL slug. Empty string for default dashboards.

audienceIdsJSON Array

Audience IDs (AUDIENCE dashboards).

deniedReasonString

noDashboardFound or notQualified when access denied.

resultString

failure when access denied.

isDefaultString

'true' if this is the default dashboard.

dashboardIdString

Dashboard ID as string.

nameString

Dashboard display name.

idLong

Native dashboard ID (mobile only).

publishedPrefJSON Object

Dashboard display preferences — titleColor, titleSize, radius, isFullWidth.

dashboardTypeString

Dashboard type ordinal as string — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE.

statusString

'success' on success; 'failure' when not found (mobile).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Dashboard returned with widgets, preferences, and file info.

Copied!
        {
"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": ""
}
}
            
Show full

Access denied — user not qualified.

Copied!
        {
"dashboard": {
"deniedReason": "notQualified",
"result": "failure",
"isExternalUser": "true"
}
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/dashboards?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canCreatePrivateDashboardString

Mobile only — 'true' if can create personal dashboard.

permissionsJSON Object

Dashboard creation/management permissions.

canManageString

'true' if can manage admin dashboards.

canCreatePrivateString

'true' if can create personal dashboard.

canCreateAudienceString

'true' if can create audience dashboard.

canCreatePublicString

'true' if can create public dashboard.

canSetUserLandingString

'true' if can set landing dashboard.

canCreateString

'true' if any create permission granted.

dashboardsJSON Array

Ordered array of dashboard objects.

canCreateWidgetsString

'true' if user can edit widgets.

lastModifiedTimeLong

Last modified timestamp epoch ms (fetchAll mode).

partitionIdLong

Group ID (fetchAll, GROUP dashboards).

urlString

Dashboard URL slug. Empty string for default dashboards.

audienceIdsJSON Array

Audience IDs (AUDIENCE dashboards).

isDefaultString

'true' if this is the default dashboard.

dashboardIdString

Dashboard ID as string.

createdByLong

Creator ZUID (fetchAll mode).

canCreateDashboardString

Mobile + personal — 'true' if can create a dashboard.

nameString

Dashboard display name.

createdTimeLong

Creation timestamp epoch ms (fetchAll mode).

idLong

Native dashboard ID (mobile only).

isLandingDashboardString

'true' for the landing dashboard.

dashboardTypeString

Type ordinal as string — 0=DEFAULT, 1=MEMBER, 2=GROUP, 3=AUDIENCE.

statusString

'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Dashboards returned with permissions.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Optional partition ID filter.

streamIdsMandatoryLong

Comma-separated post IDs. Required. Max 30.

commentLimitInteger

Maximum number of comments per post.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streams?scopeID=3000000000008&streamIds=3000000070001,3000000070002,3000000070003&commentLimit=5' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamsJSON Array

Array of post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Multiple posts retrieved by IDs.

Copied!
        {
"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."
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

needNotificationBoolean

If true, includes isNotifDisabled flag.

streamIdMandatoryLong

Post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamActionsMeta?scopeID=3000000000008&needNotification=true&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

isBookmarkedString

'true' if the user has bookmarked the post. Absent if not.

canConvertToIdeaString

'true' if the post can be converted to Idea.

canConvertToForumString

'true' if the post can be converted to Forum.

canConvertToStatusString

'true' if the post can be converted to Status.

canConvertToAnnouncementString

'true' if the post can be converted to Announcement.

isReadLaterString

'true' if the user has marked the post as read later. Absent if not.

canConvertStreamString

'true' if any conversion is available.

canCreateSocialAdvocacyString

'true' if social advocacy can be created.

isNotifDisabledString

'true' if the user has disabled notifications. Absent if not. Only present when needNotification=true.

isFollowingFeedString

'true' if the user is following the post. Absent if not.

canConvertToQuestionString

'true' if the post can be converted to Question.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post actions meta retrieved.

Copied!
        {
"result": "success",
"isBookmarked": "true",
"canConvertToIdea": "true",
"canConvertToForum": "true",
"canConvertToStatus": "true",
"canConvertToAnnouncement": "true",
"isReadLater": "true",
"canConvertStream": "true",
"canCreateSocialAdvocacy": "true",
"isNotifDisabled": "true",
"isFollowingFeed": "true",
"canConvertToQuestion": "true"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
isConvertBoolean

If true, loading for post type conversion.

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to edit. Required.

isIdeaConvertBoolean

If true, loading for conversion to Idea type.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamEditInfo?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

Post object with editable fields and conversion flags.

canConvertToIdeaString

'true' if the post can be converted to Idea.

partitionJSON Object

Target group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

canConvertToForumString

'true' if the post can be converted to Forum.

canConvertToStatusString

'true' if the post can be converted to Status.

canConvertToAnnouncementString

'true' if the post can be converted to Announcement.

linkString

Link URL (for LINK type posts).

canConvertStreamString

'true' if any conversion is available.

idLong

Post ID.

titleString

Post title (for titled types).

contentString

Raw editable content (HTML/rich text).

statusString

Post status — ACTIVE, DRAFT, etc.

canConvertToQuestionString

'true' if the post can be converted to Question.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post edit info retrieved.

Copied!
        {
"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"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

partitionIdLong

Partition ID (optional — omit for network-wide).

lastViewedTimeMandatoryLong

Epoch ms — return posts newer than this. Required.

fetchTimeLong

Upper bound timestamp (epoch ms). Defaults to current time.

streamLimitInteger

Max posts to return.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getLatestStreams?scopeID=3000000000008&lastViewedTime=1710800000000&streamLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor.

streamsJSON Array

Array of post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

countInteger

Count of new posts since lastViewedTime.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Latest posts with new-post count.

Copied!
        {
"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
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — last modified time from previous response.

scopeIDLong

Network (scope) ID.

sortingTypeString
Allowed value:(matches: ^(createdTimeDesc|mostUpvoted|mostDownvoted|mostDiscussed)$)

Sorting — createdTimeDesc, mostUpvoted, mostDownvoted, mostDiscussed.

streamTypeString
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.

isCustomIdeaStatusBoolean

If true, ideaStatus values are custom status IDs.

commentLimitInteger

Max comments per post.

showUserDetailsBoolean

If true, includes login user details in response.

ideaStatusLong

Filter by idea status IDs. Max 20.

streamLimitInteger

Max posts to return. Range: 10–30.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/recentStreams?scopeID=3000000000008&commentLimit=5&streamLimit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — last modified time.

scheduledFeedsJSON Array

Array of scheduled post objects. Present on first page only.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

streamsJSON Array

Array of post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Recent posts from the network feed.

Copied!
        {
"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!"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — pass the last post's modifiedTime for the next page.

scopeIDMandatoryLong

Network (scope) ID. Required.

commentLimitInteger

Max comments per post. Range 1–200.

streamLimitInteger

Max number of posts to return. Range 1–200.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/privateStreams?scopeID=3000000000008&commentLimit=5&streamLimit=20' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for the next page. Present only when more pages are available.

streamsJSON Array

Array of private post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Private posts retrieved.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to hide. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/hideStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post hidden successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to unhide. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unhideStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post unhidden successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to move. Required.

partitionIdLong

Destination group ID.

categoryIds[]Long

Idea category IDs in the destination.

partitionTypeMandatoryString
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
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/moveStream?scopeID=3000000000008&streamId=3000000070001&partitionId=3000000256099&partitionType=GROUP' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

The moved post object with updated group.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post moved to another group.

Copied!
        {
"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"
}
}
    
Show full

Shares (reposts) a post to another group.

Shares an existing post to another group or to the company wall. This creates a new shared post that links back to the original post. Returns the newly created shared post object.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/shareStream

Scope

ZohoPulse.feedList.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID of the original post to share. Required.

partitionIdLong

Destination group ID.

versionInteger

API version hint.

contentString
Allowed value:(matches: (?ims)(.*?))

Optional comment added by the sharer. Max 5,000 chars.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/shareStream?scopeID=3000000000008&streamId=3000000070001&partitionId=3000000256099&content=Check out this great post!' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

The newly created shared post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post shared to another group.

Copied!
        {
"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": 3000000090002,
"canComment": "true",
"type": "SHARED",
"content": "Check out this great post!",
"status": "ACTIVE"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to lock. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/lockStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post locked successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to unlock. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlockStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post unlocked successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post deleted successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIDLong

Target group/townhall ID. Omit to post to the network feed.

isAnnouncementBoolean

If true, sends email notification to all members. Used with ANNOUNCEMENT type.

streamGroupsLong

Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true.

isPrivateBoolean

If true, creates a private post visible only to specified members/groups.

partitionTypeString
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.

versionInteger

API version hint. Use 2.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Link preview description. Used with LINK type.

disableCommentsBoolean

If true, disables all comments on the post.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Link preview title. Used with LINK type.

categoryIdsLong

Comma-separated idea category IDs. Max 10. Used with IDEA type.

streamTypeString
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.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Post body content (rich-text HTML). Max 30,000 characters.

announcementExpiryTimeLong

Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type.

linkImageString
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.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

streamMembersLong

Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true.

linkURLString
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.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addStreamJSON Object

Inner addStream object — post detail on success, error keys on failure

resultString

Result status — 'failure'. Present on failure.

reasonString

Human-readable error message. Present on failure.

streamJSON Object

Created post object. Present on success.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Conversation post created in a group.

Copied!
        {
"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"
}
}
}
            
Show full

Conversation post created in the network feed.

Copied!
        {
"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"
}
}
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIDLong

Target group/townhall ID. Omit to post to the network feed.

isAnnouncementBoolean

If true, sends email notification to all members. Used with ANNOUNCEMENT type.

streamGroupsLong

Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true.

isPrivateBoolean

If true, creates a private post visible only to specified members/groups.

partitionTypeString
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.

versionInteger

API version hint. Use 2.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Link preview description. Used with LINK type.

disableCommentsBoolean

If true, disables all comments on the post.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Link preview title. Used with LINK type.

categoryIdsLong

Comma-separated idea category IDs. Max 10. Used with IDEA type.

streamTypeString
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.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Post body content (rich-text HTML). Max 30,000 characters.

announcementExpiryTimeLong

Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type.

linkImageString
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.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

streamMembersLong

Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true.

linkURLString
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.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addStreamJSON Object

Inner addStream object — post detail on success, error keys on failure

resultString

Result status — 'failure'. Present on failure.

reasonString

Human-readable error message. Present on failure.

streamJSON Object

Created post object. Present on success.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Announcement created with expiry and email notification.

Copied!
        {
"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"
}
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIDLong

Target group/townhall ID. Omit to post to the network feed.

isAnnouncementBoolean

If true, sends email notification to all members. Used with ANNOUNCEMENT type.

streamGroupsLong

Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true.

isPrivateBoolean

If true, creates a private post visible only to specified members/groups.

partitionTypeString
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.

versionInteger

API version hint. Use 2.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Link preview description. Used with LINK type.

disableCommentsBoolean

If true, disables all comments on the post.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Link preview title. Used with LINK type.

categoryIdsLong

Comma-separated idea category IDs. Max 10. Used with IDEA type.

streamTypeString
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.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Post body content (rich-text HTML). Max 30,000 characters.

announcementExpiryTimeLong

Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type.

linkImageString
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.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

streamMembersLong

Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true.

linkURLString
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.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addStreamJSON Object

Inner addStream object — post detail on success, error keys on failure

resultString

Result status — 'failure'. Present on failure.

reasonString

Human-readable error message. Present on failure.

streamJSON Object

Created post object. Present on success.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Question post created.

Copied!
        {
"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"
}
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIDLong

Target group/townhall ID. Omit to post to the network feed.

isAnnouncementBoolean

If true, sends email notification to all members. Used with ANNOUNCEMENT type.

streamGroupsLong

Comma-separated group IDs for private post recipients. Max 20. Only used when isPrivate=true.

isPrivateBoolean

If true, creates a private post visible only to specified members/groups.

partitionTypeString
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.

versionInteger

API version hint. Use 2.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Link preview description. Used with LINK type.

disableCommentsBoolean

If true, disables all comments on the post.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Link preview title. Used with LINK type.

categoryIdsLong

Comma-separated idea category IDs. Max 10. Used with IDEA type.

streamTypeString
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.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Post body content (rich-text HTML). Max 30,000 characters.

announcementExpiryTimeLong

Announcement expiry as epoch milliseconds. Used with ANNOUNCEMENT type.

linkImageString
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.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

streamMembersLong

Comma-separated ZUIDs for private post recipients. Max 20. Only used when isPrivate=true.

linkURLString
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.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Post title. Used for QUESTION, IDEA, ANNOUNCEMENT types. Max 300 characters.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — 'ltr' (left-to-right) or 'rtl' (right-to-left).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addStreamJSON Object

Inner addStream object — post detail on success, error keys on failure

resultString

Result status — 'failure'. Present on failure.

reasonString

Human-readable error message. Present on failure.

streamJSON Object

Created post object. Present on success.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Private conversation post shared with specific members and a group.

Copied!
        {
"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"
}
}
}
            
Show full

Private posts are disabled in scope preferences.

Copied!
        {
"addStream": {
"result": "failure",
"errorCode": "ACCESS_DENIED"
}
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
newTextOptionsString
Allowed value:(matches: (?ims)(.*?))

New text options to add to the poll.

removedOptionIdsLong

Poll option IDs to remove.

existingOptionsJSON Array

Existing poll option updates (JSON array). Max 25 items.

canEditVoteBoolean

Whether voters can change their vote.

scopeIDMandatoryLong

Network (scope) ID. Required.

canViewVotedUsersString
Allowed value:(matches: 0|1)

Whether voted users are visible — 0: no, 1: yes.

streamIdMandatoryLong

Post ID to update. Required.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

partitionIDLong

Target partition ID for draft.

textOptionsString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll (alias). Max 25.

isDraftBoolean

If true, saves as draft.

voteDisplayTypeString
Allowed value:(matches: 0|1|2)

How votes are displayed — 0: count, 1: percentage, 2: hidden.

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Announcement expiry year.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Updated link preview description.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

removedFileIdsLong

Comma-separated file IDs to remove.

expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Announcement expiry date.

canDeclareResultBoolean

Whether poll creator can declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll. Max 25.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

linkURLString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Updated link URL.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Updated post title. Max 300 characters.

imageIdsLong

Image option IDs for the poll.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Announcement expiry month.

newPollImageIdsLong

New image option IDs to add to the poll.

reorderFileIdsLong

Comma-separated file IDs in desired display order.

versionInteger

API version hint.

disableCommentsBoolean

If true, disables comments.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Updated link preview title.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

categoryIdsLong

Comma-separated idea category IDs. Max 10.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Updated post body content (rich-text HTML). Max 30,000 characters.

linkImageString
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.

allowMultipleBoolean

Whether multiple option selection is allowed.

draftStreamTypeString
Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$)

Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA.

optionOrdersString
Allowed value:(matches: (?ims)(.*?))

Poll option display order.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Updated post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Conversation post updated.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
newTextOptionsString
Allowed value:(matches: (?ims)(.*?))

New text options to add to the poll.

removedOptionIdsLong

Poll option IDs to remove.

existingOptionsJSON Array

Existing poll option updates (JSON array). Max 25 items.

canEditVoteBoolean

Whether voters can change their vote.

scopeIDMandatoryLong

Network (scope) ID. Required.

canViewVotedUsersString
Allowed value:(matches: 0|1)

Whether voted users are visible — 0: no, 1: yes.

streamIdMandatoryLong

Post ID to update. Required.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

partitionIDLong

Target partition ID for draft.

textOptionsString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll (alias). Max 25.

isDraftBoolean

If true, saves as draft.

voteDisplayTypeString
Allowed value:(matches: 0|1|2)

How votes are displayed — 0: count, 1: percentage, 2: hidden.

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Announcement expiry year.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Updated link preview description.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

removedFileIdsLong

Comma-separated file IDs to remove.

expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Announcement expiry date.

canDeclareResultBoolean

Whether poll creator can declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll. Max 25.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

linkURLString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Updated link URL.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Updated post title. Max 300 characters.

imageIdsLong

Image option IDs for the poll.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Announcement expiry month.

newPollImageIdsLong

New image option IDs to add to the poll.

reorderFileIdsLong

Comma-separated file IDs in desired display order.

versionInteger

API version hint.

disableCommentsBoolean

If true, disables comments.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Updated link preview title.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

categoryIdsLong

Comma-separated idea category IDs. Max 10.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Updated post body content (rich-text HTML). Max 30,000 characters.

linkImageString
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.

allowMultipleBoolean

Whether multiple option selection is allowed.

draftStreamTypeString
Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$)

Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA.

optionOrdersString
Allowed value:(matches: (?ims)(.*?))

Poll option display order.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Updated post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Announcement updated with new expiry.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
newTextOptionsString
Allowed value:(matches: (?ims)(.*?))

New text options to add to the poll.

removedOptionIdsLong

Poll option IDs to remove.

existingOptionsJSON Array

Existing poll option updates (JSON array). Max 25 items.

canEditVoteBoolean

Whether voters can change their vote.

scopeIDMandatoryLong

Network (scope) ID. Required.

canViewVotedUsersString
Allowed value:(matches: 0|1)

Whether voted users are visible — 0: no, 1: yes.

streamIdMandatoryLong

Post ID to update. Required.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

partitionIDLong

Target partition ID for draft.

textOptionsString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll (alias). Max 25.

isDraftBoolean

If true, saves as draft.

voteDisplayTypeString
Allowed value:(matches: 0|1|2)

How votes are displayed — 0: count, 1: percentage, 2: hidden.

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Announcement expiry year.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Updated link preview description.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

removedFileIdsLong

Comma-separated file IDs to remove.

expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Announcement expiry date.

canDeclareResultBoolean

Whether poll creator can declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll. Max 25.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

linkURLString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Updated link URL.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Updated post title. Max 300 characters.

imageIdsLong

Image option IDs for the poll.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Announcement expiry month.

newPollImageIdsLong

New image option IDs to add to the poll.

reorderFileIdsLong

Comma-separated file IDs in desired display order.

versionInteger

API version hint.

disableCommentsBoolean

If true, disables comments.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Updated link preview title.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

categoryIdsLong

Comma-separated idea category IDs. Max 10.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Updated post body content (rich-text HTML). Max 30,000 characters.

linkImageString
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.

allowMultipleBoolean

Whether multiple option selection is allowed.

draftStreamTypeString
Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$)

Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA.

optionOrdersString
Allowed value:(matches: (?ims)(.*?))

Poll option display order.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Updated post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Question post updated.

Copied!
        {
"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"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
streamUrlString
Allowed value:(matches: (?ims)(.*?))

Post URL (alternative to streamId).

commentIndexInteger

Comment pagination start index.

scopeIDLong

Network (scope) ID.

streamTypeString
Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$)

Filter by post type.

needAllCommentsBoolean

If true, returns all comments (no pagination).

streamIdLong

Post ID.

isRecentBoolean

If true, returns most recent comments first.

commentViewString
Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)

Comment view mode.

commentLimitInteger

Maximum number of comments to return.

isThreadBoolean

If true, returns threaded comments.

includeUnapprovedBoolean

If true, includes unapproved/moderated comments.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/singleStream?scopeID=3000000000008&streamId=3000000070001&commentLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

Full post object with comments, and task or event metadata when applicable.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Single post with comments.

Copied!
        {
"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
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

partitionIDLong

Group ID to post in.

isAnnouncementBoolean

If true, sends mail to all group members / page followers.

categoryIds[]Long

Idea category IDs.

streamGroupsLong

Private post group IDs.

isPrivateBoolean

If true, creates a private draft.

partitionTypeString
Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$)

Partition type — MEMBER, GROUP, DEFAULT, etc.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Link description.

versionInteger

API version hint.

draftedForLong

ZUID of user the draft is being saved on behalf of.

disableCommentsBoolean

Disable all comments on this post.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Link title.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Post content body. Max 30,000 characters.

streamTypeString
Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$)

Post type — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

announcementExpiryTimeLong

Expiry time for announcement.

linkImageString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Link image URL.

videoUrlString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Video URL.

fileIdsLong

Comma-separated file IDs.

fromApprovalBoolean

If true, saving from an approval workflow.

linkURLString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Link URL to attach.

streamMembersLong

Private post member user IDs.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Title for special post types. Max 300 characters.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction (ltr/rtl).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

The saved draft post object (same structure as addStream).

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft post saved successfully.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
fromEditorBoolean

Whether the request comes from the editor context.

modifiedTimeLong

Pagination cursor — fetch drafts older than this timestamp.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Filter drafts by group ID.

userIdsString
Allowed value:(matches: ^[a-zA-Z0-9_\.]+$)

Comma-separated user IDs to filter drafts by.

typeString
Allowed value:(matches: drafter|finalAuthor)

Filter by relationship: 'drafter' (drafted by me) or 'finalAuthor' (drafted for me).

versionInteger

API version flag.

needMetaBoolean

Whether to return only draft metadata instead of full posts.

statusString
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
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for the next page.

streamsJSON Array

Array of draft post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft posts retrieved successfully.

Copied!
        {
"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
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Draft post ID. Required.

pageIndexInteger

Page index for rejection details pagination (0-based).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftedEntity?scopeID=1000000008002&streamId=3000000045678&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' when the post has been rejected.

streamJSON Object

Full post object with draft metadata (first page only).

streamModifiedTimeLong

Last modification timestamp (epoch ms).

likeCountLong

Number of likes.

titleString

Post title.

typeString

Post type (STATUS, BLOG, ANNOUNCEMENT, POLL, etc.).

userDetailsJSON Object

Author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Post body content.

commentCountInteger

Number of comments.

formatedTimeString

Formatted creation time string.

partitionJSON Object

Group details.

idLong

Post ID.

timeLong

Creation timestamp (epoch ms).

viewCountLong

View count.

isApprovedBoolean

Whether the post is approved.

statusString

Post status (e.g. DRAFT, DRAFT_APPROVAL, DRAFT_REJECTED, ACTIVE).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Drafted entity retrieved successfully.

Copied!
        {
"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"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Filter by group ID.

needDraftForCountBoolean

Whether to include draft-for-others counts.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftPostsCount?scopeID=1000000008002&partitionId=3000000001234' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

draftsCountInteger

Number of draft posts.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft posts count retrieved successfully.

Copied!
        {
"result": "success",
"draftsCount": 5
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsMandatoryLong

Comma-separated user IDs (ZUIDs) to grant draft permission. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addDraftPermission?scopeID=1000000008002&userIds=60025012345,60025012346' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

permissionsJSON Array

Array of newly created draft permission objects.

formattedAddedTimeString

Formatted date when the draft permission was granted.

roleString

Member role (e.g. MEMBER).

nameString

Display name of the user.

hasCustomImgBoolean

Whether the user has a custom profile image.

canFollowBoolean

Whether the caller can follow this user.

idLong

User ID (same as zuid).

zuidLong

User ID (ZUID) of the permitted user.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft permissions added successfully.

Copied!
        {
"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
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

fromDraftedByBoolean

When true, returns users who the current user can draft for. When false, returns users who can draft for the current user.

pageIndexInteger

Page index for pagination (0-based).

forFilterBoolean

Whether the request is for filter purposes (returns all without pagination).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftPermissions?scopeID=1000000008002&fromDraftedBy=false&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

pageIndexInteger

Next page index (present when more results exist).

permissionsJSON Array

Array of draft permission objects.

formattedAddedTimeString

Formatted date when the draft permission was granted.

roleString

Member role (e.g. MEMBER).

nameString

Display name of the user.

hasCustomImgBoolean

Whether the user has a custom profile image.

canFollowBoolean

Whether the caller can follow this user.

idLong

User ID (same as zuid).

zuidLong

User ID (ZUID) of the permitted user.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft permissions retrieved successfully.

Copied!
        {
"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
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdMandatoryLong

ZUID of the user whose draft permission to revoke. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteDraftPermission?scopeID=1000000008002&userId=60025012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft permission revoked successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftedByZuids?scopeID=1000000008002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

zuidsJSON Array

Array of ZUID values of users who have drafted for the current user.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Drafted-by ZUIDs retrieved successfully.

Copied!
        {
"result": "success",
"zuids": [
60025012345,
60025012346
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/draftForOthersCount?scopeID=1000000008002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

draftedByCountEditorInteger

Count of editor-mode drafts drafted by the current user.

draftedByCountInteger

Count of drafts drafted by the current user.

draftedForCountInteger

Count of drafts drafted for the current user (awaiting review).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft-for-others counts retrieved successfully.

Copied!
        {
"result": "success",
"draftedByCountEditor": 1,
"draftedByCount": 3,
"draftedForCount": 2
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Draft post ID awaiting approval. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/sendDraftReminder?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Reminder sent successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Draft post ID to reject. Required.

messageString
Allowed value:(matches: (?ims)(.*?))

Rejection reason message (max 250 characters).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

draftedByCountEditorInteger

Updated count of editor drafts drafted by the current user.

draftCountInteger

Updated total draft count.

streamIdLong

ID of the rejected post.

draftedByCountInteger

Updated count of drafts drafted by the current user.

draftedForCountInteger

Updated count of drafts drafted for the current user.

draftStreamsJSON Array

Array of draft metadata objects.

formatedTimeString

Formatted creation time string.

canReviewDraftString

'true' if the caller can review this draft.

canEditString

'true' if the drafter can edit.

createdTimeLong

Creation timestamp (epoch ms).

draftedByJSON Object

Author details of who created the draft.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canRemindAuthorString

'true' if the drafter can send a reminder.

canDeleteString

'true' if the caller can delete this draft.

idLong

Post ID.

typeString

Post type.

draftTitleString

Truncated draft title (max 25 characters).

draftedForJSON Object

Author details of whom the draft is for.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

statusString

Post status.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft rejected successfully.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
canEditVoteBoolean

If true, voters can change their vote.

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

scopeIDLong

Network (scope) ID.

canViewVotedUsersString
Allowed value:(matches: 0|1)

If 1, voted users are visible.

questionString
Allowed value:(matches: (?ims)(.*?))

Poll question (rich-text HTML). Max 10,000 characters.

partitionIdLong

Target group ID.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

voteDisplayTypeMandatoryString
Allowed value:(matches: 0|1|2)

Vote display — 0: count, 1: percentage, 2: hidden. Required.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

disableCommentsBoolean

If true, disables comments.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

canDeclareResultBoolean

If true, poll creator can declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll. Max 25 options, 200 chars each.

allowMultipleBoolean

If true, allows selecting multiple options.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

imageIdsLong

Image option IDs. Max 25.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Created poll post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Poll created in network feed.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

imageIdLong

Image attachment ID for image poll option.

streamIdMandatoryLong

Poll post ID. Required.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text for poll option. Max 200 chars.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addPollOption?scopeID=3000000000008&streamId=3000000070001&textOption=Vue.js' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

optionJSON Object

The newly added poll option.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Poll option added.

Copied!
        {
"result": "success",
"option": {
"canDelete": "true",
"id": 3000000012347,
"option": "Vue.js"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
canEditVoteBoolean

Allow voters to change vote.

scopeIDLong

Network (scope) ID.

mustReadDueDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Mandatory read due date.

canViewVotedUsersString
Allowed value:(matches: 0|1)

0=hidden, 1=visible.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

isDraftBoolean

true to save as draft.

voteDisplayTypeMandatoryString
Allowed value:(matches: 0|1|2)

Vote display: 0=count, 1=percentage, 2=hidden.

mustReadReminderDayInteger

Reminder interval: 0, 1, 2, or 7 days.

createdYearString
Allowed value:(matches: ^(19|20)\d\d$)

Backdated creation year.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

canDeclareResultBoolean

Allow creator to declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text option(s). Max 200 chars each, up to 25.

mustReadDueYearString
Allowed value:(matches: ^(19|20)\d\d$)

Mandatory read due year.

mustReadButtonTextString
Allowed value:(matches: (?ims)(.*?))

Mandatory read button text.

createdMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Backdated creation month.

imageIdsLong

Comma-separated image attachment IDs. Max 25.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction: ltr or rtl.

mustReadReminderHourInteger

Reminder hour (0-23).

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

mustReadColorString
Allowed value:(matches: [1-5])

Mandatory read badge color (1-5).

questionString
Allowed value:(matches: (?ims)(.*?))

Poll question. Max 10000 chars.

partitionIdLong

Group ID for the draft poll.

createdMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Backdated creation minute.

createdHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Backdated creation hour.

mustReadReminderMinuteInteger

Reminder minute: 0, 15, 30, or 45.

mustReadDescriptionString
Allowed value:(matches: (?ims)(.*?))

Mandatory read description.

mustReadDueMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Mandatory read due month.

disableCommentsBoolean

Disable all commenting.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

createdDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Backdated creation date.

allowMultipleBoolean

Allow multiple option selection.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

Full post object of the saved draft poll.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Draft poll saved. Returns full post object.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Poll post ID to enable. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/enablePoll?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Poll voting re-enabled.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Poll post ID to disable. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/disablePoll?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Poll voting disabled.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Poll post ID. Required.

isSelectedMandatoryBoolean

true to vote, false to remove vote. Required.

optionIdMandatoryLong

Poll option ID to vote for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addVoting?scopeID=1000000008002&streamId=3000000012345&isSelected=true&optionId=3000000012346' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

canDeclareResultString

'true' if the caller can declare the poll result.

pollsJSON Object

Updated poll state object.

canEditVoteBoolean

Whether the current user can change their vote.

canAddVoteString

'true' if the current user can vote.

canViewVotedUsersString

'true' if the current user can view who voted.

totalVoteInteger

Total number of votes cast.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display type ordinal (0=DEFAULT, 1=SHOW_AFTER_VOTE, 2=SHOW_AFTER_ADMIN_APPROVAL).

allowmultipleString

'true' if the poll allows selecting multiple options.

isVotedBoolean

Whether the current user has voted.

canShowResultString

'true' if the current user can see vote results.

whoCanViewVotedUsersInteger

Permission level (0=admin only, 1=all).

canShowRemoveVoteString

'true' if the current user can remove their vote.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Vote cast successfully.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Poll post ID. Required.

optionIdMandatoryLong

Poll option ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/votedMembers?scopeID=3000000000008&streamId=3000000070010&optionId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of user objects who voted for the option, via constructUsersDetails().

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User does not have permission to view voted members.

Copied!
        {
"result": "failure",
"errorCode": "YOU_DONTHAVE_PERMISSION_TO_GETPOLL_USERS"
}
            
Show full

Users who voted for a poll option.

Copied!
        {
"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
}
]
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
newTextOptionsString
Allowed value:(matches: (?ims)(.*?))

New text options to add to the poll.

removedOptionIdsLong

Poll option IDs to remove.

existingOptionsJSON Array

Existing poll option updates (JSON array). Max 25 items.

canEditVoteBoolean

Whether voters can change their vote.

scopeIDMandatoryLong

Network (scope) ID. Required.

canViewVotedUsersString
Allowed value:(matches: 0|1)

Whether voted users are visible — 0: no, 1: yes.

streamIdMandatoryLong

Post ID to update. Required.

endDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Poll end date.

partitionIDLong

Target partition ID for draft.

textOptionsString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll (alias). Max 25.

isDraftBoolean

If true, saves as draft.

voteDisplayTypeString
Allowed value:(matches: 0|1|2)

How votes are displayed — 0: count, 1: percentage, 2: hidden.

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Announcement expiry year.

linkDescString
Allowed value:(matches: (?ims)(.*?))

Updated link preview description.

endYearString
Allowed value:(matches: ^(19|20)\d\d$)

Poll end year.

removedFileIdsLong

Comma-separated file IDs to remove.

expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Announcement expiry date.

canDeclareResultBoolean

Whether poll creator can declare result.

textOptionString
Allowed value:(matches: (?ims)(.*?))

Text options for the poll. Max 25.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

linkURLString
Allowed value:(matches: ^[0-9a-zA-Z.\/]([-.\ w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([ a-zA-Z0-9\-\(\)\.\?\,\~\:\;\'\/ \\\+=&%\$#_!@\*\P{InBasicLatin}]*)?$)

Updated link URL.

streamTitleString
Allowed value:(matches: (?ims)(.*?))

Updated post title. Max 300 characters.

imageIdsLong

Image option IDs for the poll.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

endMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Poll end minute.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Announcement expiry month.

newPollImageIdsLong

New image option IDs to add to the poll.

reorderFileIdsLong

Comma-separated file IDs in desired display order.

versionInteger

API version hint.

disableCommentsBoolean

If true, disables comments.

linkTitleString
Allowed value:(matches: (?ims)(.*?))

Updated link preview title.

endHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Poll end hour.

categoryIdsLong

Comma-separated idea category IDs. Max 10.

streamContentString
Allowed value:(matches: (?ims)(.*?))

Updated post body content (rich-text HTML). Max 30,000 characters.

linkImageString
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.

allowMultipleBoolean

Whether multiple option selection is allowed.

draftStreamTypeString
Allowed value:(matches: ^(STATUS|ANNOUNCEMENT|QUESTION|IDEA)$)

Post type for draft — STATUS, ANNOUNCEMENT, QUESTION, or IDEA.

optionOrdersString
Allowed value:(matches: (?ims)(.*?))

Poll option display order.

endMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Poll end month.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Updated post object.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Poll updated with new options.

Copied!
        {
"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"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

userIdsLong

Comma-separated ZUIDs. Max 10.

partitionIdsLong

Comma-separated group IDs. Max 10.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Members added to the private post.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamMembers?scopeID=3000000000008&streamId=3000000045001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
partitionsJSON Array

Array of group objects added to the post.

usersDetailsJSON Array

Array of user member objects.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canManageUsersString

'true' if the caller is the post creator.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns user members and group members of the private post.

Copied!
        {
"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"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

userIdsLong

Comma-separated ZUIDs. Max 10.

partitionIdsLong

Comma-separated group IDs. Max 10.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteStreamMembers?scopeID=3000000000008&streamId=3000000045001&userIds=60028305&partitionIds=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Members removed from the private post.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

commentMembersLong

Comma-separated ZUIDs for private comment recipients. Max 20.

streamIdLong

Post ID to comment on.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

parentCommentIdLong

Parent comment ID for threaded replies. Omit for top-level comments.

isThreadBoolean

If true, indicates threaded comment.

commentContentString
Allowed value:(matches: (?ims)(.*?))

Comment body (rich-text HTML). Max 10,000 characters.

isPrivateBoolean

If true, creates a private comment.

versionInteger

API version hint.

isAnswerBoolean

If true, marks as best answer (townhall Q&A).

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
commentJSON Object

Created comment object.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Threaded reply to a comment.

Copied!
        {
"comment": {
"streamType": "STATUS",
"streamId": 3000000070001,
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"parentCommentId": 3000000080001,
"id": 3000000080002,
"content": "Thanks Jane! Glad it was helpful."
}
}
            
Show full

Comment added to a post.

Copied!
        {
"comment": {
"streamType": "STATUS",
"streamId": 3000000070001,
"author": {
"name": "Jane Smith",
"hasCustomImg": false,
"zuid": 700000002
},
"parentCommentId": 0,
"id": 3000000080001,
"content": "Great update! Thanks for sharing."
}
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

fileIdsLong

Comma-separated attachment file IDs. Max 100.

commentIdMandatoryLong

Comment ID to update. Required.

isThreadBoolean

If true, indicates threaded comment.

reorderFileIdsLong

Comma-separated file IDs in desired display order.

commentContentString
Allowed value:(matches: (?ims)(.*?))

Updated comment body (rich-text HTML). Max 10,000 characters.

versionInteger

API version hint.

removedFileIdsLong

Comma-separated file IDs to remove.

directionString
Allowed value:(matches: ^(rtl|ltr)$)

Text direction — ltr or rtl.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateComment?scopeID=1000000008002&commentId=3000000067890&commentContent=Updated comment text' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
commentJSON Object

The updated comment object.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment updated.

Copied!
        {
"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"
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsLong

Comma-separated ZUIDs of users to add. Max 10.

commentIdMandatoryLong

Comment ID to add members to. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addCommentMembers?scopeID=3000000000008&userIds=60012345678,60012345679&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' — returned even on partial failure.

failedUsersJSON Array

Users that could not be added. Only present on partial failure.

userIdLong

ZUID of the user that could not be added.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Some members could not be added.

Copied!
        {
"result": "success",
"failedUsers": [
{
"userId": 60012345679
},
{
"userId": 60012345680
}
]
}
            
Show full

All members added.

Copied!
        {
"result": "success"
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentIdMandatoryLong

Comment ID. Required.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/comment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
commentJSON Object

The comment object.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment retrieved.

Copied!
        {
"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
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
isActivitiesBoolean

If true, includes task activity comments.

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

isRecentBoolean

If true, returns most recent comments first.

commentViewString
Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)

Comment view mode.

commentTypeString
Allowed value:(matches: COMMENT|ANSWER)

Filter by comment type — COMMENT or ANSWER.

isThreadBoolean

If true, returns threaded comments.

versionInteger

API version hint.

includeUnapprovedBoolean

If true, includes unapproved/moderated comments.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allComments?scopeID=1000000008002&streamId=3000000012345&commentView=RECENT' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — modifiedTime of the last comment.

commentsJSON Array

Array of comment objects.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

All comments retrieved.

Copied!
        {
"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!"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — last comment's modified time.

scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID. Required.

commentLimitInteger

Maximum number of comments to return.

commentTypeString
Allowed value:(matches: COMMENT|ANSWER)

Filter by comment type — COMMENT or ANSWER.

includeUnapprovedBoolean

If true, includes unapproved/moderated comments.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/moreComments?scopeID=1000000008002&streamId=3000000012345&commentLimit=10' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — modifiedTime of the last comment.

commentsJSON Array

Array of comment objects.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

More comments retrieved.

Copied!
        {
"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!"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
pinnedTimeMandatoryLong

Pagination cursor — last pinned comment's pinned time. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

commentTypeString
Allowed value:(matches: COMMENT|ANSWER)

Filter by comment type — COMMENT or ANSWER.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/morePinnedComments?pinnedTime=1700000000000&scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pinnedCommentsJSON Array

Array of pinned comment objects.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

More pinned comments retrieved.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdLong

Post ID to fetch private comments for.

commentIdLong

Comment ID for pagination (return comments before this ID).

versionInteger

Version parameter for compatibility.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/streamPrivateComments?scopeID=3000000000008&streamId=3000000070001&commentId=3000000090001&version=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

isCommentBotBoolean

Whether the comment is from a bot. Conditional.

modifiedTimeLong

Epoch ms for pagination cursor. Conditional.

commentsJSON Array

Array of private comment objects via constructComment().

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

streamJSON Object

Parent post context object.

streamUrlString

Relative post URL. Conditional.

partitionUrlString

Absolute partition URL. Conditional.

createdByLong

ZUID of the post creator. Conditional.

partitionIdLong

Partition ID. Conditional.

idLong

Post ID.

typeString

StreamType enum (STATUS, QUESTION, etc.).

partitionTypeString

PartitionType enum (GROUP, TOWNHALL, etc.). Conditional.

urlString

Absolute post URL. Conditional.

membersJSON Array

Array of member objects. Conditional: TASK in project or PAGE type.

memberLong

ZUID of the member.

privateCommentCountInteger

Count of private comments. Conditional: only when commentId is null and streamId is provided.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Private comments retrieved successfully.

Copied!
        {
"result": "success",
"comments": [],
"stream": {
"id": 3000000070001,
"type": "STATUS"
},
"members": [],
"privateCommentCount": 5
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID on which to set/remove best comment. Required.

commentIdLong

Comment ID to mark as best. Omit or pass -1 to remove best comment.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBestComment?scopeID=3000000000008&streamId=3000000070001&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

streamJSON Object

Full post object. Conditional: only for web set-best-comment (not native, not remove).

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

statusString

'removedBestComment' when removing best comment. Conditional.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Best comment removed.

Copied!
        {
"result": "success",
"status": "removedBestComment"
}
            
Show full

Best comment set (native API).

Copied!
        {
"result": "success"
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentIdMandatoryLong

Comment ID to fetch tags for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getCommentTags?scopeID=3000000000008&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
tagsJSON Array

Array of tag wrapper objects.

tagJSON Object

Tag object.

isFollowingBoolean

Whether the current user follows this tag. Conditional: only present if true.

tagIdLong

Tag ID.

tagNameString

Tag display name (HTML-escaped for web, raw for native).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tags retrieved for comment.

Copied!
        {
"tags": [
{
"tag": {
"isFollowing": true,
"tagId": 112233,
"tagName": "ProjectAlpha"
}
},
{
"tag": {
"isFollowing": true,
"tagId": 112233,
"tagName": "ProjectAlpha"
}
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentIdMandatoryLong

Comment ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteComment?scopeID=3000000000008&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment deleted successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsLong

Comma-separated ZUIDs of members to remove (max 10).

commentIdMandatoryLong

Comment ID from which to remove members. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteCommentMembers?scopeID=3000000000008&userIds=60028305,60028306&commentId=3000000090001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Always 'success', even if some users failed.

failedUsersJSON Array

Array of users that could not be removed. Conditional: only present when failures occur.

userIdLong

ZUID of the user that could not be added.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Members removed. failedUsers present if any failed.

Copied!
        {
"result": "success",
"failedUsers": [
{
"userId": 60028306
},
{
"userId": 60028307
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to like. Required.

likeTypeInteger

Reaction type (e.g., like, love, etc.).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/likeStream?scopeID=3000000000008&streamId=3000000070001&likeType=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

downvoteCountInteger

Downvote count. Conditional: Idea/Townhall posts only.

reactionTypeString

Current user's reaction type. Conditional: regular posts only.

likeCountInteger

Total like count. Conditional: regular posts only.

reactionsJSON Array

Top 3 most-used reaction types. Conditional: regular posts only.

reactionTypeJSON Object

Reaction type details.

countInteger

Number of users with this reaction.

typeString

LikeType enum (LIKE, LOVE, etc.).

upvoteCountInteger

Upvote count. Conditional: Idea/Townhall posts only.

likesJSON Array

Up to 5 users who liked. Conditional: regular posts only.

userJSON Object

User who liked.

nameString

User display name.

zuidLong

User ZUID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Like an Idea/Townhall post (upvote/downvote).

Copied!
        {
"result": "success",
"downvoteCount": 3,
"upvoteCount": 12
}
            
Show full

Like a regular post (reactions).

Copied!
        {
"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
}
}
]
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to unlike. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlikeStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

downvoteCountInteger

Downvote count. Conditional: Idea/Townhall posts only.

likeCountInteger

Total like count. Conditional: regular posts only.

reactionsJSON Array

Top 3 most-used reaction types. Conditional: regular posts only.

reactionTypeJSON Object

Reaction type details.

countInteger

Number of users with this reaction.

typeString

LikeType enum (LIKE, LOVE, etc.).

upvoteCountInteger

Upvote count. Conditional: Idea/Townhall posts only.

likesJSON Array

Up to 5 users who liked. Conditional: regular posts only.

userJSON Object

User who liked.

nameString

User display name.

zuidLong

User ZUID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Unlike an Idea/Townhall post.

Copied!
        {
"result": "success",
"downvoteCount": 3,
"upvoteCount": 11
}
            
Show full

Unlike a regular post.

Copied!
        {
"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
}
}
]
}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdLong

Post ID the comment belongs to.

commentIdMandatoryLong

Comment ID to like. Required.

likeTypeInteger

Reaction type ordinal (e.g., 0=LIKE).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/likeComment?scopeID=1000000008002&commentId=3000000067890&likeType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

downvoteCountInteger

Downvote count. For townhall answer comments only.

reactionTypeString

Reaction type of the current user (e.g., 'LIKE'). For regular comments.

likeCountLong

Total like count after liking.

reactionsJSON Array

Array of reaction type objects with type and count. For regular comments.

upvoteCountInteger

Upvote count. For townhall answer comments only.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment liked.

Copied!
        {
"result": "success",
"reactionType": "LIKE",
"likeCount": 5,
"reactions": [
{
"count": 5,
"type": "LIKE"
},
{
"count": 8,
"type": "LIKE"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdLong

Post ID the comment belongs to.

commentIdMandatoryLong

Comment ID to unlike. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unlikeComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

downvoteCountInteger

Downvote count. For townhall answer comments only.

likeCountInteger

Total like count after unliking.

reactionsJSON Array

Array of reaction type objects with type and count. For regular comments.

upvoteCountInteger

Upvote count. For townhall answer comments only.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment unliked.

Copied!
        {
"result": "success",
"likeCount": 4,
"reactions": [
{
"count": 4,
"type": "LIKE"
},
{
"count": 7,
"type": "LIKE"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor.

scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID. Required.

reactionTypeString
Allowed value:(matches: 0|1|2|3|4|5|6|7|8)

Filter by reaction type (0-8). Omit for all reactions.

needReactionsBoolean

If true, include reaction breakdown.

fetchAllBoolean

If true, fetch all liked members at once.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of user objects who liked the post.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

reactionsJSON Array

Reaction breakdown array.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns users who liked the post with reaction breakdown.

Copied!
        {
"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
}
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — pass from previous response.

scopeIDLong

Network (scope) ID.

reactionTypeString
Allowed value:(matches: 0|1|2|3|4|5|6|7|8)

Filter by reaction type ordinal.

needReactionsBoolean

If true, includes reaction type counts in response.

commentIdMandatoryLong

Comment ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/commentLikedMembers?scopeID=1000000008002&needReactions=true&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canExportBoolean

true if the caller is a partition admin (can export data).

modifiedTimeLong

Pagination cursor — pass as modifiedTime for the next page.

usersDetailsJSON Array

Array of user objects who liked the comment.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

reactionsJSON Array

Array of reaction type objects with type and count. Only when needReactions=true.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment liked members retrieved.

Copied!
        {
"usersDetails": [
{
"reactionType": "LIKE",
"name": "Jane Doe",
"zuid": 60000000001
},
{
"reactionType": "LIKE",
"name": "Alice Smith",
"zuid": 60000000002
}
],
"reactions": [
{
"count": 3,
"type": "LIKE"
},
{
"count": 6,
"type": "LIKE"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
isEmbedImageBoolean

true if file is an embedded image.

scopeIDLong

Network (scope) ID.

isPollBoolean

true if file is for a poll option image.

- Request Body

multipart/form-data
PARAM NAMEDATA TYPEDESCRIPTION
previewFileBinary

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Sample Request Body

Copied!
        {
"previewFile": "string"
}
    
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
uploadedFilesJSON Array

Array of successfully uploaded files.

attachmentIdLong

Attachment ID of the uploaded file.

notUploadedFilesJSON Array

Array of files that failed validation. Only present on partial failure.

fileInfoJSON Object

Details about the failed upload.

fileIndexInteger

Zero-based index of the file in the request.

messageString

Reason the file was not uploaded.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

File uploaded.

Copied!
        {
"uploadedFiles": [
{
"attachmentId": 3000000012345
},
{
"attachmentId": 3000000012346
}
],
"notUploadedFiles": []
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

fileNameMandatoryString
Allowed value:(matches: (?ims)(.*?))

New file name. Max 1000 chars. Required.

isCommentAttachmentBoolean

true if renaming a comment attachment.

isTempAttachmentBoolean

true if renaming a temp (not-yet-posted) attachment.

fileIdMandatoryLong

Attachment file ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

fileNameString

New file name after rename.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Attachment renamed.

Copied!
        {
"result": "success",
"fileName": "report-final.pdf"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

isStreamAttachmentBoolean

true if video is for a post attachment.

fileIdMandatoryLong

Temp file ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/checkVideoUploadedInTemp?scopeID=3000000000008&isStreamAttachment=true&fileId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success', 'In progress', or 'failure'.

fileIdLong

File ID of the video being processed.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Video processing complete.

Copied!
        {
"result": "success",
"fileId": 3000000012345
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

fileIdMandatoryLong

Temp file ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deletePreviewFile?scopeID=3000000000008&fileId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Temp file deleted.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getStreamTags?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
tagsJSON Array

Array of tag objects.

isFollowingBoolean

Whether the current user follows this tag.

tagIdLong

Tag ID.

tagNameString

Tag name.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post tags retrieved.

Copied!
        {
"tags": [
{
"isFollowing": true,
"tagId": 3000000056789,
"tagName": "release"
},
{
"tagId": 3000000056790,
"tagName": "update"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

tagIdMandatoryLong

Tag ID to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followTag?scopeID=1000000008002&tagId=3000000056789' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tag followed successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

tagIdMandatoryLong

Tag ID to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unFollowTag?scopeID=1000000008002&tagId=3000000056789' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tag unfollowed successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

tagnameMandatoryString
Allowed value:(matches: (?ims)(.*?))

Tag name to look up followers for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getTagFollowersDetails?scopeID=1000000008002&tagname=release' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
tagJSON Object

Tag details with followers list.

tagnameString

Tag name.

tagIdLong

Tag ID.

followersDetailsJSON Array

Array of user objects who follow this tag.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

followersCountInteger

Number of followers for this tag.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tag followers retrieved.

Copied!
        {
"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
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

pageIndexInteger

Page index for pagination (0-based).

searchByTagNameString
Allowed value:(matches: (?ims)(.*?))

Filter tags by name (partial match).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getAllAvailableTags?scopeID=1000000008002&pageIndex=0&searchByTagName=release' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
fetchMoreBoolean

true when pagination was requested.

allTagsJSON Array

Array of tag objects with post counts.

tagnameString

Tag name.

postCountInteger

Number of posts with this tag.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Available tags retrieved.

Copied!
        {
"allTags": [
{
"tagname": "release",
"postCount": 15
},
{
"tagname": "update",
"postCount": 8
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/getTrendingTags?scopeID=1000000008002&partitionId=3000000099001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
tagsJSON Array

Array of trending tag objects with post counts.

tagnameString

Tag name.

postCountInteger

Number of posts with this tag.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Trending tags retrieved.

Copied!
        {
"tags": [
{
"tagname": "release",
"postCount": 42
},
{
"tagname": "announcement",
"postCount": 30
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Fetch posts modified after this timestamp.

scopeIDLong

Network (scope) ID.

pageIndexInteger

Page index for pagination (0-based).

commentLimitInteger

Number of comments to include per post.

startTimeLong

Filter posts created after this timestamp.

streamLimitInteger

Number of posts per page (5–20).

endTimeLong

Filter posts created before this timestamp.

tagNameMandatoryString
Allowed value:(matches: (?ims)(.*?))

Tag name to filter posts by. Required.

versionInteger

API version flag.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamsJSON Array

Array of post objects tagged with this tag.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

tagJSON Object

Tag metadata.

tagnameString

Tag name.

isFollowingBoolean

Whether the current user follows this tag.

tagIdLong

Tag ID.

postCountInteger

Number of posts with this tag.

followersCountInteger

Number of followers for this tag.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tag posts retrieved.

Copied!
        {
"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
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
buttonTextString
Allowed value:(matches: (?ims)(.*?))

Custom acknowledgement button text (max 100 chars).

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to mark as mandatory read. Required.

colorString
Allowed value:(matches: [1-5])

Color theme (1-5).

dueMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Due date month (1-12).

dueDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Due date day (1-31).

descriptionString
Allowed value:(matches: (?ims)(.*?))

Mandatory read description/instructions (max 500 chars).

reminderHourInteger

Reminder hour of day (0-23).

reminderMinuteInteger

Reminder minute (0, 15, 30, or 45).

reminderDayInteger

Reminder interval in days before due (0, 1, 2, or 7).

dueYearString
Allowed value:(matches: ^(19|20)\d\d$)

Due date year.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

mustReadJSON Object

Mandatory read configuration object.

buttonTextString

Custom acknowledgement button text.

colorInteger

Color theme (1-5).

dueMonthInteger

Due date month (1-indexed). Conditional.

dueDateInteger

Due date day. Conditional.

descriptionString

Mandatory read description/instructions.

dueYearInteger

Due date year. Conditional: only if due date set.

mustReadDueFormattedTimeString

Formatted due date. Conditional: only if due date set.

mustReadDueTimeLong

Due date epoch ms. Conditional: only if due date set.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post marked as mandatory read.

Copied!
        {
"result": "success",
"mustRead": {
"buttonText": "Acknowledge",
"color": 1,
"dueMonth": 4,
"dueDate": 15,
"description": "Please read and acknowledge",
"dueYear": 2026
},
"mustReadDueFormattedTime": "Apr 15, 2026",
"mustReadDueTime": 1681516800000
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to unmark. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unMarkAsMustRead?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Mandatory read designation removed.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to get reminder settings for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mustReadReminder?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success. Conditional: only when alarm exists.

minInteger

Minute (0-59). Conditional: only when alarm exists.

hourInteger

Hour of day (0-23). Conditional: only when alarm exists.

dayLong

Days before due time. Conditional: only when alarm exists.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Reminder settings retrieved.

Copied!
        {
"result": "success",
"min": 30,
"hour": 10,
"day": 2
}
            
Show full

No reminder set.

Copied!
        {}
            
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms). Alias for lastModifiedTime.

scopeIDMandatoryLong

Network (scope) ID. Required.

lastModifiedTimeLong

Pagination cursor (epoch ms). Alias: modifiedTime.

filterTypeString
Allowed value:(matches: ^(unread|all)$)

Filter by mandatory read status — e.g. unread only.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mustReadPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of mandatory read post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Mandatory read posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "ANNOUNCEMENT",
"streamId": 3000000012002,
"content": "Important policy update"
},
{
"streamType": "ANNOUNCEMENT",
"streamId": 3000000012003,
"content": "Important policy update"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to mark as read. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/markStreamAsRead?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post marked as read.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

Sort direction: true for ascending.

modifiedTimeLong

Pagination cursor (epoch ms).

scopeIDMandatoryLong

Network (scope) ID. Required.

searchTermString
Allowed value:(matches: cleartext:removehtmlentities)

Filter users by name search.

streamIdMandatoryLong

Post ID (must be a mandatory read post). Required.

pageIndexInteger

Page index for pagination.

sortByTypeString
Allowed value:(matches: (byTime|byAlpha))

Sort field: byTime or byAlpha.

isUnreadBoolean

If true, return unread users; if false, return read users.

isClientUsersBoolean

If true, return client/guest users.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

Echoed sort direction. Conditional.

modifiedTimeLong

Pagination cursor (epoch ms). Conditional.

usersDetailsJSON Array

Array of user objects with read status.

roleString

User role. Conditional.

nameString

User display name.

hasCustomImgBoolean

Whether user has a custom image. Conditional.

readTimeLong

Epoch ms when user read the post. Conditional: read users only.

idLong

User ID.

designationString

User designation. Conditional.

departmentString

User department. Conditional.

zuidLong

User ZUID.

statusInteger

User status.

formattedReadTimeString

Display-formatted read time. Conditional: read users only.

searchTermString

Echoed search term. Conditional.

pageIndexInteger

Page index. Conditional.

readUsersCountInteger

Total read users count. Conditional: first page only.

unreadUsersCountInteger

Total unread users count. Conditional: first page only.

sortByTypeString

Echoed sort field. Conditional.

isClientUsersString

'true' when switching to client users. Conditional.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Read users retrieved.

Copied!
        {
"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
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID (must be a mandatory read post). Required.

userIdLong

Specific user ZUID to remind. Omit to remind all unread users.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/remindMustReadUsers?scopeID=3000000000008&streamId=3000000070001&userId=60028305' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Reminder sent successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to bookmark. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/bookmarkStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post bookmarked successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdMandatoryLong

Post ID to unbookmark. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unbookmarkStream?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post unbookmarked successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms).

scopeIDLong

Network (scope) ID.

streamLimitInteger

Max posts to return.

typeString
Allowed value:(matches: ^(STATUS|BLOG|LINK|DOCS|POLL|QUESTION||EVENT|ANNOUNCEMENT|VIDEO|PAGE|CAMPAIGN|IDEA|OTHERS)$)

Filter by post type.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v1/bookmarkedStreams?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of bookmarked post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Bookmarked posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012004,
"content": "Bookmarked post"
},
{
"streamType": "STATUS",
"streamId": 3000000012005,
"content": "Bookmarked post"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followStream?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post followed successfully.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowStream?scopeID=1000000008002&streamId=3000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post unfollowed successfully.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — last modified time from previous response (epoch ms).

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionTypeString
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
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postsIFollow?modifiedTime=1711000000000&scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of post objects the user is following.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Followed posts returned.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

startIndexInteger

Start index for pagination.

partitionIdLong

Filter by specific group ID.

streamLimitInteger

Max posts to return.

typeString
Allowed value:(matches: ^(DEFAULT|MEMBER|GROUP|PAGE|CHANNEL|PROJECT|BLOG_CATEGORY_FOLLOW|BLOG_CATEGORY_EVERYONE|FORUMS|DASHBOARD|TOWNHALL)$)

Filter by partition type.

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/mentionedItems?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of post objects mentioning the user.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Mentioned items returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012005,
"content": "Hey @user, review this"
},
{
"streamType": "STATUS",
"streamId": 3000000012006,
"content": "Hey @user, review this"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to add to read-later list. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/markAsReadLater?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post added to read-later list.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to remove from read-later list. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unMarkAsReadLater?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post removed from read-later list.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms). Alias for lastModifiedTime.

scopeIDMandatoryLong

Network (scope) ID. Required.

lastModifiedTimeLong

Pagination cursor (epoch ms). Alias: modifiedTime.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/readLaterPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of read-later post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Read-later posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012003,
"content": "Saved for later"
},
{
"streamType": "STATUS",
"streamId": 3000000012004,
"content": "Saved for later"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

createdDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Reminder day (1-31).

streamIdMandatoryLong

Post ID to set reminder for. Required.

createdMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Reminder minute (0-59).

createdYearString
Allowed value:(matches: ^(19|20)\d\d$)

Reminder year.

createdHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Reminder hour (0-23).

createdMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Reminder month (1-12).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

reminderMonthInteger

Reminder month. Conditional: native API only.

formattedRemTimeString

Formatted reminder time. Conditional: native API only.

alarmJSON Object

Alarm details wrapper (web clients).

read_laterJSON Object

Read-later alarm container.

alarmJSON Object

Alarm detail object.

formattedTimeString

Formatted alarm time.

timeJSON Object

Time components.

dateInteger

Day of month.

monthInteger

Month.

hourInteger

Hour (0-23).

yearInteger

Year.

minuteInteger

Minute (0-59).

secondInteger

Second (0-59).

typeInteger

NotifyType ordinal.

reminderYearInteger

Reminder year. Conditional: native API only.

reminderTypeInteger

NotifyType ordinal. Conditional: native API only.

reminderHourInteger

Reminder hour. Conditional: native API only.

reminderMinuteInteger

Reminder minute. Conditional: native API only.

reminderDateInteger

Reminder day of month. Conditional: native API only.

isSelfReminderBoolean

Whether this is a self-reminder. Conditional: native API only.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post reminder set successfully.

Copied!
        {
"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
}
}
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to clear reminder for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/clearPostReminder?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post reminder cleared.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms). Alias for lastModifiedTime.

scopeIDMandatoryLong

Network (scope) ID. Required.

sortingTypeString
Allowed value:(matches: ^(recent|oldest)$)

Sort order for results.

lastModifiedTimeLong

Pagination cursor (epoch ms). Alias: modifiedTime.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scheduledPosts?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

streamsJSON Array

Array of scheduled post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Scheduled posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012001,
"content": "Upcoming announcement"
},
{
"streamType": "STATUS",
"streamId": 3000000012002,
"content": "Upcoming announcement"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

eyearString
Allowed value:(matches: ^(19|20)\d\d$)

End year.

entitiesString
Allowed value:(matches: (TASK|CHECKLIST|EVENT|TOWNHALL|ALL))

Entity types: ALL, TASK, CHECKLIST, EVENT, TOWNHALL. Max 5. Defaults to ALL.

emonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

End month (1-12).

edayString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

End day (1-31).

sdayString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Start day (1-31).

smonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Start month (1-12).

syearString
Allowed value:(matches: ^(19|20)\d\d$)

Start year.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
overDueCountJSON Object

Overdue counts. Only present when overdue items exist.

taskCountInteger

Number of overdue tasks.

checklistCountInteger

Number of overdue checklists.

taskScheduledEntitiesJSON Array

Tasks and checklists.

streamIdLong

Associated post ID.

parentTaskIdLong

Parent task ID. Checklist only.

isUpcomingDueString

'true' if upcoming. Conditional.

typeString

Entity type: TASK, CHECKLIST, EVENT, or TOWNHALL.

titleString

Entity title.

allDayBoolean

True for all-day events. Conditional.

isOverDueString

'true' if overdue. Conditional.

isTaskCompletedString

'true' if completed. Conditional.

partitionJSON Object

Partition info. Conditional.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

parentTaskTitleString

Parent task title. Checklist only.

subEventTypeString

Event sub-type (EVENT, SHOWTIME_EVENT, etc.). Event only.

percentageInteger

Task completion percentage. Task/checklist only.

startTimeLong

Start time in epoch millis.

idLong

Entity ID.

formattedDueDateString

Formatted due date string.

taskStatusJSON Object

Custom or default task status. Task only.

nameString

Status name.

idInteger

Status ID.

colorTypeString

Status color type.

taskPriorityJSON Object

Custom or default task priority. Task only.

nameString

Priority name.

idInteger

Priority ID.

colorTypeString

Priority color type.

isStartedBoolean

True if event has started. Event only.

priorityString

Priority: HIGH, MEDIUM, LOW, or NONE. Task only.

usersJSON Array

Array of user ZUIDs (long values). Conditional.

locationString

Location string. Conditional.

isTodayDueString

'true' if due today. Conditional.

endTimeLong

End time in epoch millis. Conditional.

isExpiredBoolean

True if event has expired. Event only.

statusInteger

Task status code. Task/checklist only.

eventScheduledEntitiesJSON Array

Events and townhalls.

streamIdLong

Associated post ID.

parentTaskIdLong

Parent task ID. Checklist only.

isUpcomingDueString

'true' if upcoming. Conditional.

typeString

Entity type: TASK, CHECKLIST, EVENT, or TOWNHALL.

titleString

Entity title.

allDayBoolean

True for all-day events. Conditional.

isOverDueString

'true' if overdue. Conditional.

isTaskCompletedString

'true' if completed. Conditional.

partitionJSON Object

Partition info. Conditional.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

parentTaskTitleString

Parent task title. Checklist only.

subEventTypeString

Event sub-type (EVENT, SHOWTIME_EVENT, etc.). Event only.

percentageInteger

Task completion percentage. Task/checklist only.

startTimeLong

Start time in epoch millis.

idLong

Entity ID.

formattedDueDateString

Formatted due date string.

taskStatusJSON Object

Custom or default task status. Task only.

nameString

Status name.

idInteger

Status ID.

colorTypeString

Status color type.

taskPriorityJSON Object

Custom or default task priority. Task only.

nameString

Priority name.

idInteger

Priority ID.

colorTypeString

Priority color type.

isStartedBoolean

True if event has started. Event only.

priorityString

Priority: HIGH, MEDIUM, LOW, or NONE. Task only.

usersJSON Array

Array of user ZUIDs (long values). Conditional.

locationString

Location string. Conditional.

isTodayDueString

'true' if due today. Conditional.

endTimeLong

End time in epoch millis. Conditional.

isExpiredBoolean

True if event has expired. Event only.

statusInteger

Task status code. Task/checklist only.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Scheduled tasks and events.

Copied!
        {
"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
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/scheduledEntitiesCount?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
schedulesCountJSON Object

Per-type schedule counts.

readLaterPostCountInteger

Number of read-later posts.

scheduledPostCountInteger

Number of scheduled posts.

moderationPostCountInteger

Number of moderation-pending posts.

tasksCountInteger

Number of scheduled tasks.

townhallsCountInteger

Number of scheduled townhalls.

checklistsCountInteger

Number of scheduled checklists.

eventsCountInteger

Number of scheduled events.

totalCountInteger

Total count across all types.

mustReadPostCountInteger

Number of mandatory read posts.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Schedule counts.

Copied!
        {
"schedulesCount": {
"readLaterPostCount": 8,
"scheduledPostCount": 2,
"tasksCount": 15,
"townhallsCount": 2,
"checklistsCount": 5,
"eventsCount": 3,
"totalCount": 25,
"mustReadPostCount": 4
}
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

createdDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Day of month (1-31).

streamIdMandatoryLong

Post ID to reschedule. Required.

createdMinString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Minute (0-59).

createdYearString
Allowed value:(matches: ^(19|20)\d\d$)

Year for the new scheduled time.

createdHourString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Hour (0-23).

createdMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Month (1-12).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

modifiedTimeLong

New scheduled epoch ms.

formatedTimeString

Formatted display time (note: 'formated' is the actual key).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Scheduled post time updated.

Copied!
        {
"result": "success",
"modifiedTime": 1681554600000,
"formatedTime": "Apr 15, 2026 10:30 AM"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

sendEmailBoolean

Whether to send email notifications.

sendPushNotificationBoolean

Whether to send push notifications.

executionMinMandatoryString
Allowed value:(matches: ^(0?\d|[1-5]\d|60)$)

Minute of the hour (0-59). Required.

executionHourMandatoryString
Allowed value:(matches: ^(0?\d|1\d|2[0-3])$)

Hour of the day (0-23). Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Preference updated.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteMySchedulePreference?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Preference deleted.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Pin expiry date (1-31).

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to pin. Required.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Pin expiry month (1-12).

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Pin expiry year.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post pinned.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to unpin. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unPinPost?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post unpinned.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
expiryDateString
Allowed value:(matches: ^(0?[1-9]|[12]\d|3[01])$)

Pin expiry date (1-31).

scopeIDMandatoryLong

Network (scope) ID. Required.

expiryMonthString
Allowed value:(matches: ^(0?[1-9]|1[0-2])$)

Pin expiry month (1-12).

commentIdMandatoryLong

Comment ID to pin. Required.

expiryYearString
Allowed value:(matches: ^(19|20)\d\d$)

Pin expiry year.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment pinned.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentIdMandatoryLong

Comment ID to unpin. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unPinComment?scopeID=3000000000008&commentId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment unpinned.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdLong

Post ID to detect language for.

articleIdLong

Article ID to detect language for.

commentIdLong

Comment ID to detect language for.

languageString

Language hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/detectContentLanguage?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
languageCodeString

ISO language code (e.g. 'en', 'fr', 'ja'). Empty response if detection fails.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Language detected.

Copied!
        {
"languageCode": "en"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdLong

Post ID to translate.

requestIdString

Client-provided request ID for tracking.

articleIdLong

Article ID to translate.

commentIdLong

Comment ID to translate.

languageString

Source language code.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/translateContent?scopeID=3000000000008&streamId=3000000070001&language=en' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
titleString

Translated title. Only present when the source has a title.

contentString

Translated HTML content. For native API non-blog, this is a JSONArray of content elements.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Content translated.

Copied!
        {
"title": "Translated Title",
"content": "<p>Translated content...</p>"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsight?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
insightJSON Object

Post insight wrapper object.

infoJSON Object

Post insight info with author, counts, and engagement.

canExportString

'true' if current user can export. Conditional: scope admins only.

startedTimeString

Post creation date in yyyy-MM-dd (GMT).

totalVoteCountInteger

Total poll votes. Conditional: POLL posts only.

engagementJSON Object

Engagement score and emotion data.

scoreString

Engagement score formatted as '%.2f'. Formula: (participatingUsers / uniqueViewCount) * 100. '0' when no views.

percentageDouble

Emotion percentage: floor(avgEmotion / 5 * 100). Conditional: only when avgEmotion > 0.

typeInteger

Emotion type on 1-5 scale. Conditional: only when avgEmotion > 0.

uniqueViewCountInteger

Unique views within date range.

likeCountInteger

Reactions count within date range.

typeString

Post type: STATUS, POLL, CAMPAIGN, etc.

titleString

Post title. Conditional: when title is non-empty.

userDetailsJSON Object

Post author details from constructAuthor.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

First 30 chars of post body. Conditional: when title is empty.

urlString

Full URL to the post.

commentCountInteger

Comments count within date range.

totalViewCountLong

All-time total view count.

formatedTimeString

Localized display time of post creation.

socialAdvSharesCountInteger

Advocacy shares count. Conditional: CAMPAIGN posts with social sharing.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post insight with engagement data.

Copied!
        {
"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
}
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID to get summary for. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postSummary?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
summaryJSON Object

AI-generated summary object.

sentimentString

Detected sentiment (e.g. 'positive'). Conditional.

toneString

Detected tone (e.g. 'formal'). Conditional.

contentString

Sanitized HTML summary of the post.

resultString

'success' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

AI summary with tone and sentiment.

Copied!
        {
"summary": {
"sentiment": "positive",
"tone": "formal",
"content": "<p>This post discusses the new quarterly goals and team alignment strategies.</p>"
},
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

Ascending sort if true. Default false.

scopeIDMandatoryLong

Network (scope) ID. Required.

lastModifiedTimeLong

Pagination cursor. Returns users viewed before this time.

streamIdMandatoryLong

Post ID. Required.

sortByTypeString
Allowed value:(matches: (byTime|byAlpha))

Sort field: byTime (default) or byAlpha.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
canExportBoolean

Whether the caller can export the data.

usersDetailsJSON Array

Array of viewer user objects.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

lastModifiedTimeLong

Pagination cursor for next page.

uniqueViewCountLong

Unique viewer count.

viewCountLong

Total view count.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns unique viewers with view counts and pagination.

Copied!
        {
"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
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

true for ascending sort order.

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

pageIndexInteger

Pagination index.

postInsightTypeString
Allowed value:(matches: 0|1|2|3|4)

Insight type: 0=UniqueViews, 1=Comments, 2=Reactions, 3=StreamReactions, 4=PollVotes/Shares.

daysString
Allowed value:(matches: 7|30)

Time range in days: 7 or 30.

sortByString
Allowed value:(matches: (?ims)(.*?))

Sort field.

fromString
Allowed value:(matches: ^[0-9\-\/\ ]+$)

Start date for custom range.

toString
Allowed value:(matches: ^[0-9\-\/\ ]+$)

End date for custom range.

fieldTypeMandatoryLong

Tag type ordinal or custom field ID for grouping. Required.

zipPasswordString

Password for encrypted export.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

fetchMoreString

'true' when more pages exist. Conditional.

statsJSON Array

Array of stat objects grouped by department/custom field.

REACTIONS_COUNTInteger

Comment reactions count.

COMMENTS_COUNTInteger

Comments count.

POLL_VOTES_COUNTInteger

Poll votes count. Conditional: POLL posts only.

STREAM_REACTIONS_COUNTInteger

Post reactions count.

departmentString

Department name, designation, or custom field option.

UNIQUE_VIEWS_COUNTInteger

Unique views count.

ADVOCACY_SHARES_COUNTInteger

Advocacy shares count. Conditional: CAMPAIGN posts only.

pageIndexInteger

Next page index. Conditional: only when more pages exist.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User stats grouped by department.

Copied!
        {
"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
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsightUserStatsTab?scopeID=3000000000008&streamId=3000000070001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

tabsJSON Array

Array of available grouping tab objects.

nameString

Tab display name (i18n translated).

isCustomString

'true' for custom field tabs. Absent for built-in tabs.

fieldIdLong

Tag type ordinal (DEPARTMENTS=0, DESIGNATIONS=1, WORKLOCATION=2) or custom field ID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Available grouping tabs retrieved.

Copied!
        {
"result": "success",
"tabs": [
{
"name": "Departments",
"fieldId": 0
},
{
"name": "Designations",
"fieldId": 1
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

daysString
Allowed value:(matches: 7|30)

Time range in days: 7 or 30.

rangeBoolean

true to use custom date range via from/to.

fromString
Allowed value:(matches: ^[0-9\-\/\ ]+$)

Start date for custom range.

toString
Allowed value:(matches: ^[0-9\-\/\ ]+$)

End date for custom range.

zipPasswordString

Password for encrypted export.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/postInsightChart?scopeID=3000000000008&streamId=3000000070001&days=30' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
chartsString

Stringified JSON containing chart data (tooltip, dataset[], yaxisthreshold). Conditional: only when stats exist.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Chart data retrieved as stringified JSON.

Copied!
        {
"charts": "{\"tooltip\":true,\"dataset\":[{\"color\":\"#a26eef\",\"type\":\"area\",\"seriesname\":\"Unique Views\",\"data\":[[\"Mar 15\",42,\"Mar 15\"]]}],\"yaxisthreshold\":{\"color\":[],\"values\":[],\"text\":[]}}"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Post ID. Required.

zipPasswordString

Password for the encrypted ZIP file.

fieldIdsString
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
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Not returned. Response body is empty — the CSV export runs asynchronously.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Export scheduled. Response body is empty.

Copied!
        {}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myfeedWidgets?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
customwidgetsJSON Array

Array of widget objects for the user's feed.

widgetNameString

Display name of the widget.

widgetIdString

Widget ID — e.g. TRENDING_TAGS, BIRTHDAY_BUDDIES, TOP_CONTRIBUTORS.

widgetTypeString

Widget type enum value.

cssUrlString

URL for default CSS.

customCssUrlString

URL for custom CSS (if enabled).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Feed widgets returned.

Copied!
        {
"customwidgets": [
{
"widgetName": "Trending Tags",
"widgetId": "TRENDING_TAGS",
"widgetType": "TRENDING_TAGS"
},
{
"widgetName": "Trending Tags",
"widgetId": "TRENDING_TAGS",
"widgetType": "TRENDING_TAGS"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdLong

Post ID to approve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveStream?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Post approved.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdsLong

Comma-separated post IDs to approve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveStreams?scopeID=1000000008002&streamIds=3000000045678,3000000045679' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Posts approved.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

streamIdLong

Post ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedStream?scopeID=1000000008002&streamId=3000000045678' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Unapproved post deleted.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdsLong

Comma-separated post IDs to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedStreams?scopeID=1000000008002&streamIds=3000000045678,3000000045679' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Unapproved posts deleted.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

commentIdLong

Comment ID to approve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comment approved.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentIdsLong

Comma-separated comment IDs to approve. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/approveComments?scopeID=1000000008002&commentIds=3000000067890,3000000067891' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Comments approved.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

commentIdLong

Comment ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteUnapprovedComment?scopeID=1000000008002&commentId=3000000067890' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Unapproved comment deleted.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

entityTypeMandatoryString
Allowed value:(matches: 0|1)

Entity type ordinal: 0=POST, 1=COMMENT. Required.

entityIdMandatoryLong

Entity ID (post or comment). Required.

messageString
Allowed value:(matches: (?ims)(.*?))

Rejection reason message (max 250 chars).

tagsString
Allowed value:(matches: (?ims)(.*?))

Comma-separated rejection tags (max 20).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Entity rejected.

Copied!
        {
"result": "success"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
itemIdMandatoryLong

Entity ID (post or comment). Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

itemTypeMandatoryString
Allowed value:(matches: 0|1)

Entity type ordinal: 0=POST, 1=COMMENT. Required.

pageIndexInteger

Pagination page index (0-based).

versionInteger

API version flag.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/rejectedEntity?itemId=3000000045678&scopeID=1000000008002&itemType=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

rejectionsJSON Array

Array of rejection detail objects.

rejectedUserJSON Object

User who rejected the entity.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

rejectedTimeLong

Rejection timestamp (epoch ms).

formattedRejectedTimeString

Formatted rejection time.

rejectionMessageString

Rejection reason message.

tagsJSON Array

Array of rejection tags.

fetchMoreString

'true' if more pages exist.

streamJSON Object

Full post object (first page, itemType=0).

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

pageIndexInteger

Next page index.

commentJSON Object

Full comment object (first page, itemType=1).

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Rejected entity details retrieved.

Copied!
        {
"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"
}
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
itemIdMandatoryLong

Entity ID (post ID, comment ID, or user ZUID). Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

typeMandatoryString
Allowed value:(matches: POST|COMMENT|USER)

Entity type: POST, COMMENT, or USER. Required.

messageMandatoryString
Allowed value:(matches: (?ims)(.*?))

Report reason message (max 250 chars). Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Entity reported.

Copied!
        {
"result": "success"
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/moderationItems?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page (epoch ms).

itemsJSON Array

Array of moderation item objects.

msgString

Notification message.

streamTypeString

Post type — status, announcement, etc.

stream_IdLong

Associated post ID.

authorJSON Object

Item author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

notifierLong

Notifier user ID.

formattedTimeString

Formatted timestamp.

idLong

Item ID.

typeString

Item type — MODERATION_STREAM, MODERATION_COMMENT.

partitionTypeString

Partition type — GROUP, PAGE, TOWNHALL, etc.

contentString

Content text.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Moderation items returned.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — return items modified before this epoch ms.

scopeIDMandatoryLong

Network (scope) ID. Required.

isRejectedBoolean

If true, returns only rejected items. Defaults to false (pending items).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userModerationItems?modifiedTime=1717171717000&scopeID=3000000000008&isRejected=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
awaitingCountInteger

Number of items awaiting moderation.

modifiedTimeLong

Pagination cursor for next page (epoch ms).

rejectedCountInteger

Number of rejected items.

canRejectString

'true' if the caller can reject items.

itemsJSON Array

Array of moderation item objects.

msgString

Notification message.

streamTypeString

Post type — status, announcement, etc.

stream_IdLong

Associated post ID.

authorJSON Object

Item author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

notifierLong

Notifier user ID.

formattedTimeString

Formatted timestamp.

idLong

Item ID.

typeString

Item type — MODERATION_STREAM, MODERATION_COMMENT.

partitionTypeString

Partition type — GROUP, PAGE, TOWNHALL, etc.

contentString

Content text.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User moderation items returned.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter: -1, 0, or 1.

partitionIdLong

Filter to a specific group.

searchTypeString
Allowed value:(matches: ^(townhallQuestionsAutoSuggestion|townhallQuestions)$)

Search type: townhallQuestionsAutoSuggestion or townhallQuestions.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query (must contain at least one letter or digit).

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by author user ID.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Pagination index. Only present when more results are available.

streamsJSON Array

Array of matching post objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching posts with pagination.

Copied!
        {
"pageIndex": 1,
"streams": [
{
"id": 3000000070001,
"type": "STATUS",
"content": "Quarterly update..."
},
{
"id": 3000000070002,
"type": "STATUS",
"content": "Quarterly update..."
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by author.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Last modified time. Conditional.

pageIndexInteger

Pagination index. Conditional.

blogsJSON Array

Array of matching blog objects.

attachmentsJSON Array

Attachment list. Conditional.

canShareBoolean

Whether current user can share. Conditional.

isLikedBoolean

Whether the current user liked this post. Conditional.

isDraftBoolean

Whether this is a draft. Conditional.

likeCountInteger

Number of likes. Only when > 0.

isScheduledBoolean

Whether this is scheduled. Conditional.

typeString

Always 'BLOG'.

titleString

Blog post title.

userDetailsJSON Object

Author user details.

nameString

User display name.

idLong

User ID.

zuidLong

User Zoho UID.

urlString

Blog post URL path.

commentCountInteger

Number of comments. Only when > 0.

formatedTimeString

Formatted creation time string.

reactionTypeString

Current user's reaction type. Conditional.

reactionsJSON Array

Reaction details. Conditional.

reactionTypeJSON Object

Reaction type details.

countInteger

Number of users with this reaction.

typeString

LikeType enum (LIKE, LOVE, etc.).

idLong

Blog post ID.

module_nameString

Always 'BLOGS'.

viewCountInteger

Number of views. Only when > 0.

isMustReadBoolean

Whether this is marked mandatory read. Conditional.

statusString

Blog status (e.g. 'ACTIVE').

allowFooterString

Always 'false' for search results.

lastBlogCreatedTimeLong

Last blog creation time for pagination cursor. Conditional.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching blog posts.

Copied!
        {
"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"
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter: -1, 0, or 1.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by creator.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Pagination index. Conditional.

streamsJSON Array

Array of matching task objects.

streamUrlString

URL of the shared link (LINK type).

canFixAtTopBoolean

True if caller can pin to top (announcements).

commentsJSON Array

Array of comment objects. Present in single-stream views.

attachmentsJSON Array

Array of attachment objects.

streamIdLong

Parent post ID.

isCurrentUserLikedBoolean

Whether the current user liked this comment.

canEditString

'true' if the current user can edit.

parentCommentIdLong

Parent comment ID (for threaded replies).

likeCountInteger

Number of likes on this comment.

isPinnedCommentBoolean

Whether the comment is pinned.

userDetailsJSON Object

Comment author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

contentString

Comment content (HTML).

formatedTimeString

Formatted creation time string.

streamTypeString

Parent post type.

commentTypeString

Comment type (COMMENT, ANSWER, etc.).

hasHistoryString

'true' if the comment has been edited.

canDeleteString

'true' if the current user can delete.

idLong

Comment ID.

timeLong

Creation timestamp (epoch ms).

isApprovedBoolean

Whether the comment is approved.

isReplyString

'true' if this is a reply to another comment.

canLikeString

'true' if caller can like.

authorJSON Object

Post author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

canDisablePollString

'true' if the caller can disable this poll. Present only for POLL type when the caller is the creator and canEdit.

canEditBoolean

True if caller can edit.

linkJSON Object

Link preview details. Present for LINK type.

embedUrlString

Embeddable video URL.

videoTypeString

Video type (if embedded video).

linkurlString

Shared URL.

titleString

Link title.

descString

Link description.

pollsJSON Object

Poll details. Present only for POLL type posts.

canAddVoteString

'true' if the caller can vote (poll not locked, not expired, and vote editable).

canViewVotedUsersString

'true' if caller can view who voted for each option.

totalVoteInteger

Total number of votes cast. Present when canShowResult is true.

optionsJSON Array

Array of poll option objects.

optionIdLong

Poll option ID.

voteCountInteger

Number of votes for this option.

optionNameString

Poll option text.

voteDisplayTypeInteger

Vote display mode: 0=count visible, 1=show after vote, 2=hidden until admin approval.

allowmultipleString

'true' if voters can select multiple options.

isVotedBoolean

True if the current user has voted in this poll.

canShowResultString

'true' if caller can see vote results (creator, admin, or per display rules).

whoCanViewVotedUsersInteger

0=only creator/admin, 1=everyone. Present when canShowResult is true.

canShowRemoveVoteString

'true' if the caller can remove their vote.

typeString

Post type name — STATUS, ANNOUNCEMENT, QUESTION, IDEA, etc.

titleString

Post title (for titled types: QUESTION, IDEA, ANNOUNCEMENT).

contentString

Rendered HTML content.

commentCountInteger

Total number of comments.

partitionJSON Object

Target group. Present when posting to a group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

taskJSON Object

Task metadata object. Present only for TASK type posts.

streamIdLong

Associated post ID.

canEditString

'true' if caller can edit.

sectionJSON Object

Section the task belongs to.

nameString

Section name.

idLong

Section ID.

isPrivateBoolean

True if private section.

urlString

Section URL.

colorTypeInteger

Section colour index.

shortTitleString

Truncated task title.

isPrivateString

'true' if in a private section.

titleString

Task title.

isOverDueString

'true' if task is past due.

partitionJSON Object

Board the task belongs to.

typeOrdInteger

Partition type ordinal.

partitionUrlString

Board URL slug.

isPrivateBoolean

True if board is private.

isAdminString

'true' if caller is board admin.

typeString

Partition type — PROJECT.

urlString

Board URL path.

usersJSON Array

Array of member user IDs.

sectionsJSON Array

Array of board sections.

taskCountInteger

Number of tasks in section.

nameString

Section name.

colorCodeString

Header colour hex (native API only).

idLong

Section ID.

isPrivateBoolean

True if section is private.

colourTypeInteger

Section colour index.

vcardEmailIdString

Section email address (if enabled).

urlString

Section URL.

canCreateSectionString

'false' if caller cannot create sections.

nameString

Board name.

subTypeString

Board sub-type (e.g. DEFAULT, SCRUM).

idLong

Board ID.

isUserFollowBoolean

True if caller follows the board.

statusString

Entity status (ACTIVE, ARCHIVED, etc.).

canCreateTaskString

'false' if caller cannot create tasks.

percentageInteger

Completion percentage (0–100).

createdTimeLong

Creation timestamp (epoch ms).

canDeleteString

'true' if caller can delete.

idLong

Task ID.

formattedCreatedTimeString

Human-readable creation time.

formattedDueDateString

Human-readable due date.

isCompletedString

'true' if task is completed.

attachCountInteger

Number of attachments.

canCompleteString

'true' if caller can complete.

startDateLongLong

Start-date timestamp (epoch ms).

assigneesCountInteger

Number of assignees.

priorityString

Priority name (None, Low, Medium, High).

userDetailsJSON Object

Task author details.

roleString

Member role — ADMIN or MEMBER.

nameString

Display name.

hasCustomImgBoolean

True if user has a custom profile image.

idLong

Internal user ID.

emailString

Email address.

zuidLong

Zoho UID.

statusString

Member status — ACTIVE.

formattedStartDateString

Human-readable start date.

commentCountInteger

Number of comments.

endDateLongLong

Due-date timestamp (epoch ms).

canAssignString

'true' if caller can assign.

subTaskCountInteger

Number of sub-tasks.

completedSubTaskCountInteger

Number of completed sub-tasks.

positionInteger

Position within section.

descString

Task description text.

statusInteger

TaskStatus ordinal.

isLockedString

'true' if post is locked.

hasHistoryString

'true' if post has edit history.

canDeleteBoolean

True if caller can delete.

idLong

Post ID.

canCommentString

'true' if caller can comment.

isApprovedBoolean

Moderation approval status.

eventJSON Object

Event metadata object. Present only for EVENT type posts.

streamIdLong

Associated post ID.

formattedEndTimeString

Human-readable end time. Absent for all-day events.

canEditBoolean

True if the caller can edit this event.

canRSVPString

'true' if the caller can RSVP.

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Stream type (EVENT, MEETING_EVENT, SHOWTIME_EVENT, etc.).

yesCountInteger

Number of 'Yes' RSVPs.

isAllDayString

'true' if all-day event.

isSharedEventBoolean

True if the event's group was shared.

startTimeLong

Event start time (epoch ms).

canDeleteBoolean

True if the caller can delete this event.

logoTypeInteger

Logo type: 1=uploaded, 2=default.

isRSVPAllowedBoolean

Whether RSVP is enabled for this event.

invitedUserCountInteger

Number of invited users.

isStartedString

'true' if event has started but not ended.

formattedStartTimeString

Human-readable start time. Absent for all-day events.

noCountInteger

Number of 'No' RSVPs.

locationString

Event location. Absent if not set.

logoModifiedTimeLong

Logo last-modified timestamp. Present when logoType = 1.

isPrivateEventBoolean

True if the event is in a member (DM) partition.

endTimeLong

Event end time (epoch ms). Absent if not set.

isExpiredString

'true' if past end time.

logoIdLong

Uploaded logo attachment ID. Present when logoType != 1.

descString

Event description.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching tasks.

Copied!
        {
"pageIndex": 1,
"streams": [
{
"id": 3000000070001,
"type": "TASK",
"content": "Fix login bug..."
},
{
"id": 3000000070002,
"type": "TASK",
"content": "Fix login bug..."
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by author.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchManuals?scopeID=3000000000008&query=employee handbook&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
fetchMoreBoolean

Whether more results are available.

pageIndexInteger

Pagination index. Conditional.

manualsJSON Array

Array of matching manual objects.

typeOrdInteger

Partition type ordinal.

partitionUrlString

URL-safe partition slug.

bgColorString

Background color hex.

nameString

Manual name.

logoString

Manual logo URL.

idLong

Manual ID.

isPrivateBoolean

Whether this manual is private. Conditional.

typeString

Partition type (e.g. 'PAGE').

urlString

Manual URL path.

isUserFollowBoolean

Whether the current user follows this manual.

statusString

Manual status (e.g. 'PUBLISHED').

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching manuals.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by author.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchArticles?scopeID=3000000000008&query=onboarding process&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
fetchMoreBoolean

Whether more results are available.

pageIndexInteger

Pagination index. Conditional.

articlesJSON Array

Array of matching article objects.

commentsJSON Array

Matching comments. Present when isCommentSearch is true.

isPublishedBoolean

Whether the article is published.

formattedTimeString

Formatted time string.

typeString

Always 'ARTICLE'.

userDetailsJSON Object

Author user details.

nameString

User display name.

idLong

User ID.

zuidLong

User Zoho UID.

urlString

URL-safe article slug.

originalNameString

Original article name.

partitionJSON Object

Parent manual partition info.

typeOrdInteger

Partition type ordinal.

nameString

Manual name.

idLong

Manual (partition) ID.

typeString

Partition type (e.g. 'PAGE').

isCommentSearchBoolean

Whether the match was on a comment. Conditional.

nameString

Article name.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

manualNameString

Parent manual name.

nativeUrlString

Native article content URL.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching articles with manual info.

Copied!
        {
"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"
}
]
}
    
Show full

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

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by author.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchTownhalls?scopeID=3000000000008&query=company townhall&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
fetchMoreBoolean

Whether more results are available.

pageIndexInteger

Pagination index. Conditional.

townhallsJSON Array

Array of matching townhall objects.

typeOrdInteger

Partition type ordinal.

partitionUrlString

URL-safe partition slug.

bgColorString

Background color hex.

nameString

Townhall name.

logoString

Townhall logo URL.

idLong

Townhall ID.

isPrivateBoolean

Whether this townhall is private. Conditional.

typeString

Always 'TOWNHALL'.

urlString

Townhall URL path.

isUserFollowBoolean

Whether the current user follows this townhall.

statusString

Townhall status (e.g. 'ACTIVE').

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching townhalls.

Copied!
        {
"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"
}
]
}
    
Show full

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 NAMEDATA TYPEDESCRIPTION
toYearInteger

End year.

scopeIDMandatoryLong

Network (scope) ID. Required.

nextStatusString
Allowed value:(matches: -1|0|1)

Next status filter.

partitionIdLong

Filter to a specific partition.

queryString
Allowed value:(matches: .*[\p{L}\p{N}].*)

Search query.

toDateInteger

End date (1-31).

toMonthInteger

End month (1-12).

groupCategoryIdString
Allowed value:(matches: ^([A-Za-z0-9]*)$)

Group category filter.

isPrivateBoolean

Filter for private posts.

assigneeIdLong

Filter by assignee user ID.

userIdLong

Filter by uploader.

versionInteger

API version hint.

commentFilterInteger

Comment filter.

fromDateInteger

Start date (1-31).

timeCategoryIdString
Allowed value:(matches: (^([A-Za-z0-9-_]*)$)|(([\w\-\.]*)(\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2}){0,2})$))

Time filter category.

pageIndexInteger

Pagination index.

fromYearInteger

Start year.

limitInteger

Max results to return.

boardIdLong

Filter to a specific board.

fromMonthInteger

Start month (1-12).

sortByString
Allowed value:(matches: (date|relevance))

Sort order: date or relevance.

taskStatusInteger

Filter by task status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/searchFiles?scopeID=3000000000008&query=project plan&pageIndex=0' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'