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'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Pagination index. Conditional.

filesJSON Array

Array of matching file objects.

extensionString

File extension. Conditional.

previewUrlString

File preview URL.

permaLinkString

Permanent link. Conditional.

downloadUrlString

File download URL.

doc_typeString

Document type (e.g. 'pdf'). Conditional.

typeString

Always 'FILE'.

userDetailsJSON Object

Uploader user details.

nameString

User display name.

idLong

User ID.

zuidLong

User Zoho UID.

urlString

File view URL.

formatedTimeString

Formatted upload time.

partitionJSON Object

Group info. Conditional.

nameString

Group name.

idLong

Group ID.

nameString

File name.

idString

Doc content ID.

timeString

Upload time in epoch millis (as String).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Matching files with partition info.

Copied!
        {
"pageIndex": 1,
"files": [
{
"formatedTime": "Mar 15, 2024",
"partition": {
"name": "Engineering",
"id": 3000000070001
},
"name": "project-plan.pdf",
"id": "100001",
"time": "1711000000000",
"doc_type": "pdf",
"type": "FILE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/viewFile.do?..."
},
{
"formatedTime": "Mar 15, 2024",
"partition": {
"name": "Engineering",
"id": 3000000070001
},
"name": "project-plan.pdf 2",
"id": "100002",
"time": "1711086400000",
"doc_type": "pdf",
"type": "FILE",
"userDetails": {
"name": "John Doe",
"zuid": 60012345678
},
"url": "/pulse/viewFile.do?..."
}
]
}
    
Show full

Creates a new group in a Zoho Connect network.

Creates a new group in the network. You must have permission to create groups to use this API. Provide a group name, and optionally add a description, privacy setting, initial members, and a logo. If successful, the response includes the new group’s ID, name, URL slug, and whether it is public or private.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addGroup

Scope

ZohoPulse.grouplist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isRequestPublicBoolean

If true, the group is request-to-join public.

scopeIDMandatoryLong

Network (scope) ID. Required.

isPrivateBoolean

If true, creates a private group. Defaults to false (public).

templateIdString
Allowed value:(matches: (3[0-2]|2[0-9]|1[0-9]|[1-9]))

Template logo ID (1-32).

canSearchBoolean

If true, the group is searchable.

createOrgGroupBoolean

If true, creates a corresponding org-level IAM group.

isRequestPrivateBoolean

If true, the group is request-to-join private.

createChannelBoolean

If true, creates an associated Cliq channel.

userIdsString
Allowed value:(matches: ^[a-zA-Z0-9_\.]+$)

Comma-separated ZUIDs to add as initial members. Max 100.

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

Group name. Required, 1-50 characters.

isOpenMembershipBoolean

If true, any network member can join without approval.

isNetworkGroupBoolean

If true, creates an ALL_HANDS (network-wide) group. Requires admin.

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

Group description. Max 200 characters.

fileIdLong

ZFS file ID for a custom group logo.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addGroup?isRequestPublic=false&scopeID=3000000000008&isPrivate=true&templateId=5&canSearch=true&createOrgGroup=false&isRequestPrivate=false&createChannel=false&userIds=10001001,10001002&name=Engineering Team&isOpenMembership=false&isNetworkGroup=false&desc=Group for engineering discussions&fileId=50000000012345' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addGroupJSON Object

Inner addGroup object — success keys and error keys

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure.

partitionIdString

ID of the newly created group. Present on success.

nameString

Name of the created group. Present on success.

isPublicString

'0' for private, '1' for public. Present on success.

errorCodeString

Machine-readable error code. Present on failure.

idString

Same as partitionId. Present on success.

urlString

URL slug of the created group. Present on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Group created successfully.

Copied!
        {
"addGroup": {
"result": "success",
"partitionId": "3000000255109",
"name": "API Test Group",
"isPublic": "0",
"id": "3000000255109",
"url": "api-test-group"
}
}
            
Show full

Returned when the required name parameter is missing.

Copied!
        {
"addGroup": {
"result": "failure",
"reason": "Group name is required.",
"errorCode": "LESS_THAN_MIN_OCCURANCE"
}
}
            
Show full

Updates the name, description, or privacy settings of an existing group.

Updates an existing group’s details. You must be a group admin to perform this action. Provide the partitionId of the group and the fields you want to update. Only the specified fields will be changed. If successful, returns result=success. If it fails, returns result=failure with the reason.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateGroupDetails

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isRequestPublicBoolean

If true, the group is request-to-join public.

scopeIDMandatoryLong

Network (scope) ID. Required.

isRequestPrivateBoolean

If true, the group is request-to-join private.

partitionIdMandatoryLong

Group ID to update. Required.

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

New group name. Required, 1–100 characters.

isOpenMembershipBoolean

If true, any network member can join without approval.

isPrivateBoolean

If true, makes the group private. If false, public.

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

New group description. Max 200 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateGroupDetails?isRequestPublic=false&scopeID=3000000000008&isRequestPrivate=false&partitionId=3000000255109&name=Engineering Team Updated&isOpenMembership=false&isPrivate=true&desc=Updated group description' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateGroupDetailsJSON Object

Inner updateGroupDetails object — success and error keys

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Group details updated successfully.

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

Returned when the partitionId does not exist or the group has been deleted.

Copied!
        {
"updateGroupDetails": {
"result": "failure",
"reason": "This group has been deleted or does not exist."
}
}
            
Show full

Adds members or admins to an existing group by user IDs or email addresses.

Adds users to a group. You can add them as members or admins using their ZUIDs, or invite them using their email addresses. You must have permission to manage the group to perform this action. If successful, returns the list of added users. If some users cannot be added, their IDs are returned separately.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/addUsersToGroup

Scope

ZohoPulse.grouplist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to add users to. Required.

adminIdsLong

Comma-separated ZUIDs to add as admins. Max 100.

memberIdsLong

Comma-separated ZUIDs to add as members. Max 100.

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

Comma-separated email addresses to add as members. Max 100. Resolved to ZUIDs internally.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addUsersToGroup?scopeID=3000000000008&partitionId=3000000002143&adminIds=10001004&memberIds=10001002,10001003&userEmailIds=alice@zillium.com,bob@partner.com' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addUsersToGroupJSON Object

Inner addUsersToGroup object — success with member details, or error

resultString

'success' or 'failure'.

reasonString

Error message — e.g. 'Access denied'. Present on failure.

usersDetailsJSON Array

Array of added member objects. Present on success.

roleString

Member role in the group: ADMIN or MEMBER.

imageUrlString

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

nameString

Display name of the member.

hasCustomImgString

'true' if the member has a custom profile image.

canFollowString

'true' if the authenticated user can follow this member. Absent for self.

emailIdString

Email address. Present based on scope visibility preferences.

idString

Member ID (same as zuid).

typeString

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

zuidString

Zoho User ID.

statusString

Member status: ACTIVE, INVITED, etc.

failedUserIdsJSON Array

Array of failed user ID objects. Present when some users could not be added.

userIdString

ZUID of the user that failed to be added.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Users added successfully. Returns usersDetails array with each added member's details including role, status, and profile info.

Copied!
        {
"addUsersToGroup": {
"result": "success",
"usersDetails": [
{
"role": "MEMBER",
"name": "Vignesh 1",
"canFollow": "true",
"id": "15073567",
"type": "C",
"zuid": "15073567",
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Vignesh 5",
"canFollow": "true",
"id": "15082458",
"type": "C",
"zuid": "15082458",
"status": "ACTIVE"
}
]
}
}
            
Show full

Returned when the caller does not have manage permission or the group does not exist.

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

Returned when all specified users are already members of the group. No usersDetails array is present.

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

Removes a user from an existing group by user ID.

Removes a user from a group. You must have permission to manage the group to perform this action. If you try to remove yourself while being the only admin, the request will be blocked. If successful, returns result=success. If it fails, returns result=failure with the reason.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/removeUserFromGroup

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to remove the user from. Required.

userIdMandatoryLong

ZUID of the user to remove. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
removeUserFromGroupJSON Object

Inner removeUserFromGroup object — success result or error

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied' or sole-admin warning.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

User successfully removed from the group.

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

Returned when the caller does not have manage permission or the group does not exist.

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

Returned when the caller is removing themselves and they are the sole admin of the group.

Copied!
        {
"removeUserFromGroup": {
"result": "failure",
"reason": "Since you are the only admin here, please provide the admin privileges to another member before leaving."
}
}
            
Show full

Joins a public group in a Zoho Connect network.

Joins a public group with open membership. This action is not supported for private groups. If successful, returns result=success with the group details. If it fails, returns result=failure.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/joinGroup

Scope

ZohoPulse.grouplist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to join. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
joinGroupJSON Object

Inner joinGroup object — success result + nested partition object, or error

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure.

partitionJSON Object

Nested partition object with group details. Present on success.

typeOrdString

Ordinal of the partition type.

roleString

Caller's role in this group: ADMIN or MEMBER.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

typeString

Partition type: GROUP, DEFAULT.

userDetailsJSON Object

Group creator details.

nameString

Display name of the creator.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

zuidString

Zoho User ID of the creator.

urlString

URL path of the group.

isJoinedString

'true' if the caller is a member of this group.

accessTypeString

Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE.

isClosedString

'true' if the group is closed (requires invitation to join).

bgColorString

Background color hex code for the group avatar.

showInFeedString

'true' if the favourite group appears in the feed. Present with isFavourite.

clientSharedInfoString

Client shared info message. Present when the group is shared with clients.

nameString

Group display name.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT.

canJoinString

'true' if the caller can join this group.

canDeleteString

'true' if the caller can delete this group. Present for admins.

idString

Group ID.

timeString

Group created time as epoch milliseconds.

isFavouriteString

'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true.

isUserFollowString

'true'/'false' — whether the caller follows this group.

statusString

Group status: ACTIVE, LOCK.

descString

Group description. Present when set.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Successfully joined the group.

Copied!
        {
"joinGroup": {
"result": "success",
"partition": {
"accessType": "OPEN_PUBLIC",
"typeOrd": "2",
"partitionUrl": "public-group",
"name": "Public Group",
"subType": "DEFAULT",
"id": "3000000255163",
"type": "GROUP",
"url": "public-group",
"isUserFollow": "false",
"status": "ACTIVE"
}
}
}
            
Show full

Returned when the user is already a member of the group.

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

Leaves a group in a Zoho Connect network.

Leaves a group. If you are the only admin, you must assign another admin before you can leave. You cannot leave an All Hands group unless you are a client or external user. If successful, returns result=success.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/leaveGroup

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to leave. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
leaveGroupJSON Object

Inner leaveGroup object — success result, assignAdmin flag, or error

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure.

assignAdminString

'true' if the user is the sole admin and must assign a new admin before leaving.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Successfully left the group.

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

Returned when the user is the sole admin and must assign a new admin before leaving.

Copied!
        {
"leaveGroup": {
"assignAdmin": "true"
}
}
            
Show full

Follows a group to receive updates.

Follows a specific group.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/followPartition

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followPartition?scopeID=3000000000008&partitionId=3000000256092' \
--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

Group followed successfully.

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

Unfollows a group to stop receiving updates.

Unfollows a specific group.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/unfollowPartition

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowPartition?scopeID=3000000000008&partitionId=3000000256092' \
--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

Group unfollowed successfully.

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

Retrieves all groups in a network, including those the user has not joined.

Returns all groups in the network, including both joined and not joined groups. Each result includes details such as group identity, access type, membership status, and creator information. Unlike userGroups, which returns only your groups, this returns all groups you can view.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/allGroups

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sorts in ascending order. If false, descending.

scopeIDLong

Network (scope) ID.

limitInteger

Maximum number of groups to return.

isRecentSortBoolean

If true, sorts groups by created time instead of alphabetically.

isGroupsMetaNeededBoolean

If true (default), includes group metadata like role and joined status.

includeDefaultPartitionBoolean

If true, includes the default partition (Company Wall) in the response.

isFavouriteNeededBoolean

If true (default), includes favourite status for each group.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/allGroups?isAscSort=true&scopeID=3000000000008&limit=10&isRecentSort=true&isGroupsMetaNeeded=true&includeDefaultPartition=true&isFavouriteNeeded=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
allGroupsJSON Object

Inner allGroups object — groups array on success, error keys on failure

resultString

'failure' on error.

reasonString

Error message. Present on failure.

groupsJSON Array

Array of group objects. Each has same structure as userGroups.

typeOrdString

Ordinal of the partition type.

roleString

Caller's role in this group: ADMIN or MEMBER.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

typeString

Partition type: GROUP, DEFAULT.

userDetailsJSON Object

Group creator details.

nameString

Display name of the creator.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

zuidString

Zoho User ID of the creator.

urlString

URL path of the group.

isJoinedString

'true' if the caller is a member of this group.

accessTypeString

Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE.

isClosedString

'true' if the group is closed (requires invitation to join).

bgColorString

Background color hex code for the group avatar.

showInFeedString

'true' if the favourite group appears in the feed. Present with isFavourite.

clientSharedInfoString

Client shared info message. Present when the group is shared with clients.

nameString

Group display name.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT.

canJoinString

'true' if the caller can join this group.

canDeleteString

'true' if the caller can delete this group. Present for admins.

idString

Group ID.

timeString

Group created time as epoch milliseconds.

isFavouriteString

'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true.

isUserFollowString

'true'/'false' — whether the caller follows this group.

statusString

Group status: ACTIVE, LOCK.

descString

Group description. Present when set.

errorCodeString

Machine-readable error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

All groups in the network (joined and not-joined).

Copied!
        {
"allGroups": {
"groups": [
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "engineering",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "15065799",
"zuid": "15065799"
},
"url": "engineering",
"isJoined": "true",
"accessType": "PRIVATE",
"bgColor": "45B5DB",
"isClosed": "true",
"name": "Engineering",
"logo": "EN",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002143",
"time": "1719915898000",
"isUserFollow": "false",
"status": "ACTIVE"
},
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "engineering",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "15065799",
"zuid": "15065799"
},
"url": "engineering",
"isJoined": "true",
"accessType": "PRIVATE",
"bgColor": "45B5DB",
"isClosed": "true",
"name": "Engineering 2",
"logo": "EN",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002144",
"time": "1720002298000",
"isUserFollow": "false",
"status": "ACTIVE"
}
]
}
}
            
Show full

Returned when the scopeID is invalid.

Copied!
        {
"allGroups": {
"result": "failure",
"reason": "Looks like you do not have access to the network you have entered. Please check the URL and try again.",
"errorCode": "1022"
}
}
            
Show full

Fetches all groups the authenticated user belongs to in a network.

Returns all groups the authenticated user is a member of in the network. Each result includes details such as the group name, access type, role, membership status, and creator. You can also sort the results, paginate them using limit, and choose whether to include the default partition, such as Company Wall.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/userGroups

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sorts in ascending order. If false, descending. Used with isRecentSort.

scopeIDLong

Network (scope) ID.

limitInteger

Maximum number of groups to return. If omitted, returns all groups.

isRecentSortBoolean

If true, sorts groups by created time instead of alphabetically.

isGroupsMetaNeededBoolean

If true (default), includes group metadata like role and joined status.

includeDefaultPartitionBoolean

If true, includes the default partition (Company Wall) in the response.

isFavouriteNeededBoolean

If true (default), includes favourite status for each group.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userGroups?isAscSort=true&scopeID=3000000000008&limit=10&isRecentSort=true&isGroupsMetaNeeded=true&includeDefaultPartition=true&isFavouriteNeeded=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
userGroupsJSON Object

Inner userGroups object — groups array with optional default partition, or error keys

resultString

Result status — 'failure'. Present on error.

reasonString

Error message. Present on failure.

defaultPartitionJSON Object

Default partition (Company Wall) object. Present when includeDefaultPartition=true.

typeOrdString

Ordinal of the partition type.

roleString

Caller's role in this group: ADMIN or MEMBER.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

typeString

Partition type: GROUP, DEFAULT.

userDetailsJSON Object

Group creator details.

nameString

Display name of the creator.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

zuidString

Zoho User ID of the creator.

urlString

URL path of the group.

isJoinedString

'true' if the caller is a member of this group.

accessTypeString

Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE.

isClosedString

'true' if the group is closed (requires invitation to join).

bgColorString

Background color hex code for the group avatar.

showInFeedString

'true' if the favourite group appears in the feed. Present with isFavourite.

clientSharedInfoString

Client shared info message. Present when the group is shared with clients.

nameString

Group display name.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT.

canJoinString

'true' if the caller can join this group.

canDeleteString

'true' if the caller can delete this group. Present for admins.

idString

Group ID.

timeString

Group created time as epoch milliseconds.

isFavouriteString

'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true.

isUserFollowString

'true'/'false' — whether the caller follows this group.

statusString

Group status: ACTIVE, LOCK.

descString

Group description. Present when set.

groupsJSON Array

Array of group objects the user belongs to.

typeOrdString

Ordinal of the partition type.

roleString

Caller's role in this group: ADMIN or MEMBER.

partitionUrlString

URL slug of the group.

isPrivateString

'true' if the group is private.

typeString

Partition type: GROUP, DEFAULT.

userDetailsJSON Object

Group creator details.

nameString

Display name of the creator.

canFollowString

'true' if the caller can follow this user.

idString

User ID (same as zuid).

zuidString

Zoho User ID of the creator.

urlString

URL path of the group.

isJoinedString

'true' if the caller is a member of this group.

accessTypeString

Access type: PRIVATE, OPEN_PUBLIC, REQUEST_PUBLIC, ALL_HANDS, SAMPLE.

isClosedString

'true' if the group is closed (requires invitation to join).

bgColorString

Background color hex code for the group avatar.

showInFeedString

'true' if the favourite group appears in the feed. Present with isFavourite.

clientSharedInfoString

Client shared info message. Present when the group is shared with clients.

nameString

Group display name.

logoString

Short text logo (initials) for the group.

subTypeString

Group sub-type: DEFAULT.

canJoinString

'true' if the caller can join this group.

canDeleteString

'true' if the caller can delete this group. Present for admins.

idString

Group ID.

timeString

Group created time as epoch milliseconds.

isFavouriteString

'true' if the group is in the caller's favourites. Present when isFavouriteNeeded=true.

isUserFollowString

'true'/'false' — whether the caller follows this group.

statusString

Group status: ACTIVE, LOCK.

descString

Group description. Present when set.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns all groups the user belongs to. Each group includes name, access type, role, and creator details. Groups may be private, open public, or all-hands.

Copied!
        {
"userGroups": {
"groups": [
{
"typeOrd": "2",
"role": "ADMIN",
"partitionUrl": "product-development",
"isPrivate": "true",
"type": "GROUP",
"userDetails": {
"name": "John Smith",
"canFollow": "true",
"id": "10001001",
"zuid": "10001001"
},
"url": "product-development",
"isJoined": "true",
"accessType": "PRIVATE",
"isClosed": "true",
"bgColor": "45B5DB",
"name": "Product Development",
"logo": "PD",
"subType": "DEFAULT",
"canJoin": "false",
"canDelete": "true",
"id": "3000000002143",
"time": "1719915898000",
"isUserFollow": "false",
"status": "ACTIVE"
},
{
"typeOrd": "2",
"role": "MEMBER",
"partitionUrl": "everyone-zillium",
"type": "GROUP",
"userDetails": {
"name": "Jane Doe",
"canFollow": "true",
"id": "10001002",
"zuid": "10001002"
},
"url": "everyone-zillium",
"isJoined": "true",
"accessType": "OPEN_PUBLIC",
"bgColor": "D7A327",
"name": "Everyone @ Zillium",
"logo": "E",
"subType": "DEFAULT",
"canJoin": "true",
"id": "3000000002172",
"time": "1715756655000",
"isUserFollow": "false",
"status": "ACTIVE",
"desc": "This is the default group for all members."
}
]
}
}
            
Show full

Returned when the scopeID is invalid or the user does not have access to the network.

Copied!
        {
"userGroups": {
"result": "failure",
"reason": "Looks like you do not have access to the network you have entered. Please check the URL and try again.",
"errorCode": "1022"
}
}
            
Show full

Retrieves posts from a specific group.

Returns a paginated list of posts in a group. You can filter the results by post type, idea status, and sort order.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/v2/partitionStreams

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms).

scopeIDLong

Network (scope) ID.

isDashboardBoolean

If true, return in dashboard mode.

partitionIdLong

Group ID.

commentLimitInteger

Max comments per post.

ideaStatusLong

Filter by idea status IDs.

streamLimitInteger

Max posts to return (5–30).

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.

urlString

Partition URL slug.

itemIdLong

Specific item ID to focus on.

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

Sort order for results.

streamTypeString
Allowed value:(matches: ^(STATUS|BLOG|LINK|PAGE|WISH|QUESTION|IDEA|TASK|EVENT|ANNOUNCEMENT|SHOWTIME_EVENT|CAMPAIGN)$)

Filter by post type — STATUS, POLL, QUESTION, IDEA, ANNOUNCEMENT, etc.

pageIndexInteger

Page index for pagination.

isCustomIdeaStatusBoolean

If true, ideaStatus values are custom status IDs.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/v2/partitionStreams?scopeID=3000000000008&partitionId=3000000080001' \
--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 in the partition.

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

Partition posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012001,
"content": "Group discussion"
},
{
"streamType": "STATUS",
"streamId": 3000000012002,
"content": "Group discussion"
}
]
}
    
Show full

Returns members of a specific group.

Returns the list of members in a group. Supports pagination using pageIndex.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/groupMembers

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

partitionIdMandatoryLong

Group ID. Required.

pageIndexInteger

Page index for pagination (default 0).

versionInteger

API version.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
usersDetailsJSON Array

Array of group member user objects.

roleString

Member role — ADMIN or MEMBER.

isFollowingBoolean

True if caller follows this user.

hasCustomImgBoolean

True if user has a custom profile image.

mobileString

Mobile phone number. Present if available.

emailIdString

Email address. Present based on scope visibility.

typeString

Member type code — C, CL, ECL.

zuidLong

Zoho User ID.

workLocationString

Work location. Present for admins/same-org.

seatingLocationString

Seating location. Present for admins/same-org.

imageUrlString

Profile image URL. Present when custom image exists.

nameString

Display name.

isUserBlockedString

'true' if user is blocked by the caller.

canFollowBoolean

True if caller can follow this user.

idLong

User ID (same as zuid).

designationString

Job title. Present if available.

departmentString

Department name. Present if available.

statusString

Entity status — ACTIVE, INVITED, etc.

pendingGroupInviteCountInteger

Pending group invite count. Present on first page for GROUP/DEFAULT.

countInteger

Total member count.

partitionOwnerLong

Group creator's ZUID. Present on first page.

moderationStatusBoolean

True if partition has moderation enabled.

partitionSubTypeString

Group sub-type. Present on first page.

isAdminString

'true' if caller is scope or partition admin. Present on first page.

isPrivateString

'true' or 'false'. Present on first page.

canSwitchAdminBoolean

True if caller can switch admin role. Present for free plan.

partitionTypeString

Partition type — e.g. 'GROUP', 'PROJECT'. Present on first page.

accessTypeString

Access type of the group. Present on first page.

canInviteUsersBoolean

True if caller can invite users. Present on first page.

pageIndexInteger

Next page index. Present when more pages exist.

canManageModeratorBoolean

True if caller can manage moderators. Present on first page for GROUP.

canEditPartitionBoolean

True if caller can edit partition settings.

isPeopleSyncedString

'true' if people-synced group. Present for admins on intranet.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns group member listing.

Copied!
        {
"usersDetails": [
{
"role": "MEMBER",
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001002&fs=thumb",
"name": "Jane Doe",
"hasCustomImg": true,
"emailId": "jane.doe@zillium.com",
"id": 10001002,
"type": "C",
"zuid": 10001002
},
{
"role": "MEMBER",
"imageUrl": "https://profile.zoho.com/file?t=user&ID=10001003&fs=thumb",
"name": "Alice Smith",
"hasCustomImg": false,
"emailId": "alice.smith@zillium.com",
"id": 10001003,
"type": "C",
"zuid": 10001003
}
],
"count": 25,
"isAdmin": "true"
}
    
Show full

Retrieves the widget configuration for a specific group.

Returns the list of sidebar widgets enabled for a specific group.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/partitionWidgets

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/partitionWidgets?scopeID=3000000000008&partitionId=3000000080001' \
--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 group.

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

Partition widgets returned.

Copied!
        {
"customwidgets": [
{
"widgetName": "Top Contributors",
"widgetId": "TOP_CONTRIBUTORS",
"widgetType": "TOP_CONTRIBUTORS"
},
{
"widgetName": "Top Contributors",
"widgetId": "TOP_CONTRIBUTORS",
"widgetType": "TOP_CONTRIBUTORS"
}
]
}
    
Show full

Returns the top participants of a group.

Retrieves the most active members in a group based on their post activity.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/getTopParticipants

Scope

ZohoPulse.grouplist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
topParticipantsJSON Object

Container for the list of top participants.

usersDetailsJSON Array

Array of top participant user objects.

nameString

Display name.

hasCustomImgBoolean

Whether the user has a custom profile image. Only present when true.

postsInteger

Number of posts by the participant.

zuidLong

Zoho User ID of the participant.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns top participants with nested userDetails array.

Copied!
        {
"topParticipants": {
"userDetails": [
{
"name": "John Smith",
"hasCustomImg": true,
"posts": 42,
"zuid": 10001001
},
{
"name": "Jane Doe",
"posts": 28,
"zuid": 10001002
}
]
}
}
    
Show full

Returns latest posts in a group since a given time.

Returns posts shared in a specific group or town hall after the given lastViewedTime.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/latestPartitionStreams

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition ID. Required.

lastViewedTimeMandatoryLong

Epoch ms — return posts newer than this time. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/latestPartitionStreams?scopeID=3000000000008&partitionId=3000000256092&lastViewedTime=1710800000000' \
--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

Latest posts in a group since lastViewedTime.

Copied!
        {
"streams": [
{
"streamId": 3000000070010,
"author": {
"name": "John Doe",
"zuid": 700000001
},
"type": "POLL",
"content": "Which day works best?"
},
{
"streamId": 3000000070011,
"author": {
"name": "John Doe",
"zuid": 700000001
},
"type": "POLL",
"content": "Which day works best?"
}
]
}
    
Show full

Retrieves latest comments in a group since a given time.

Retrieve comments posted to posts in a specific group since the given lastViewedTime. Shares a URL block with latestPartitionStreams in the repo.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/latestPartitionComments

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition ID. Required.

lastViewedTimeMandatoryLong

Epoch ms — return comments newer than this time. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor. Present when more results exist.

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

Latest comments in a group since lastViewedTime.

Copied!
        {
"comments": [
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"commentId": 3000000080001,
"content": "Great update! Thanks for sharing."
},
{
"author": {
"name": "Jane Smith",
"zuid": 700000002
},
"commentId": 3000000080002,
"content": "Great update! Thanks for sharing."
}
]
}
    
Show full

Retrieves groups where the current user can perform actions.

Returns the list of groups the authenticated user is a member of, along with permission details for each group. This includes the allowed post types and whether the group is marked as a favorite.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/userActionablePermissionGroups

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

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/userActionablePermissionGroups?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
groupinfoJSON Object

Inner groupinfo object containing groupmeta array

groupmetaJSON Array

Array of group metadata objects with permissions.

canCreateBroadcastString

'false' when restricted. Present only when restricted.

canMarkAsMustReadString

'true' if mandatory read is available. Present only for admins with feature access.

canMentionGroupString

'false' when restricted. Present only when restricted.

isMemberString

'1' if user is a member, '0' otherwise.

typeString

Partition type code — 'G' (group) or 'P' (manual).

categoryNameString

Group category name. Present only when group belongs to a category.

accessTypeString

Access type — PRIVATE, PUBLIC, OPEN.

canPostString

'false' when user cannot post. Present only when restricted.

clientSharedInfoJSON Object

Client sharing info with msg and img keys. Present only for client-shared groups.

isPublicString

'1' if public, '0' if private.

idString

Group ID.

logoTypeString

Logo type ordinal (-1 if none).

isFavouriteString

'true' if user has favourited this group.

logoidString

Group logo ID.

canCreatePollString

'false' when restricted. Present only when restricted.

canCreateIdeaString

'false' when restricted. Present only when restricted.

isAdminString

'true' if user is an admin. Present only for admin users.

canCreateVideoConferenceString

'false' when restricted. Present only when restricted.

logoUrlString

Group logo URL. Empty if no logo.

urlString

Group external URL slug.

canCreateQuestionString

'false' when restricted. Present only when restricted.

canPostAnnouncementString

'false' when restricted. Present only when restricted.

nameString

Group display name (HTML-encoded).

canPostEventString

'false' when restricted. Present only when restricted.

statusString

Group status ordinal.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns groupmeta array inside userActionablePermissionGroups wrapper.

Copied!
        {
"userActionablePermissionGroups": {
"groupmeta": [
{
"permissions": {
"ANNOUNCEMENT": true,
"EVENTS": true,
"POST": true,
"POLL": true,
"QUESTION": true
},
"name": "Engineering",
"id": 3000000070001,
"isAdmin": true,
"type": "GROUP",
"isFavourite": true
},
{
"permissions": {
"ANNOUNCEMENT": true,
"EVENTS": true,
"POST": true,
"POLL": true,
"QUESTION": true
},
"name": "Engineering 2",
"id": 3000000070002,
"isAdmin": false,
"type": "GROUP",
"isFavourite": false
}
]
}
}
    
Show full

Lock, unlock, archive, unarchive, or disable a group.

Change the status of a group. You must be a group admin with permission to manage the group. - Set islock=true to lock the group and prevent members from posting. - Set isarchive=true to archive the group. - Set both isarchive=true and isdisable=true to disable the group. - To reactivate the group, remove all these flags.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/changePartitionStatus

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
islockBoolean

If true, locks the partition (GROUP only). Members can view but cannot post.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition (group/townhall/manual/board) ID. Required.

isdisableBoolean

If true (together with isarchive=true), disables the partition instead of archiving it.

isarchiveBoolean

If true, archives (or disables if isdisable is also true) the partition.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
changePartitionStatusJSON Object

Inner changePartitionStatus object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Group successfully unlocked / reactivated (all boolean flags omitted).

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

Group successfully archived (isarchive=true).

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

Group successfully disabled (isarchive=true, isdisable=true).

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

Group successfully locked (islock=true).

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

Returned when the caller lacks permission or the partition does not exist.

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

Permanently deletes (trash) a group.

Deletes a group. You must be a group admin with permission to manage it. The group is moved to the trash instead of being permanently deleted. If successful, returns result=success. If it fails, returns result=failure with the reason.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deletePartition

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required.

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

Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deletePartitionJSON Object

Inner deletePartition object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Group successfully deleted (trashed).

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

Returned when the caller is not a group admin or lacks the network role permission.

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

Creates a new board in the network.

Creates a new task board. The creator is added as the board admin by default. You can also add members and link the board to a group. If successful, returns the created board with its sections and member details.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addBoard

Scope

ZohoPulse.tasks.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

associateGroupIdLong

Group ID to associate the board with. Members of the group will be added to the board.

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

Board name. 1–50 characters. Required.

memberIdsLong

Comma-separated user IDs to add as board members. Max 100.

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

Board description. Max 200 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBoard?scopeID=3000000000008&name=Sprint Board&memberIds=700000002,700000003&desc=Board for sprint tasks' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addBoardJSON Object

Inner addBoard object — board + members

resultString

Result status — 'failure'. Present on failure.

membersJSON Array

Array of board member detail objects.

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.

errorCodeString

Error code. Present on failure.

boardJSON Object

Created board detail.

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.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Board creation limit reached.

Copied!
        {
"addBoard": {
"result": "failure",
"errorCode": "CREATE_BOARD_LIMIT_NATIVEAPI"
}
}
            
Show full

Board created successfully.

Copied!
        {
"addBoard": {
"members": [
{
"role": "ADMIN",
"name": "John Doe",
"hasCustomImg": true,
"id": 700000001,
"email": "john@zillium.com",
"zuid": 700000001,
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Jane Smith",
"hasCustomImg": false,
"id": 700000002,
"email": "jane@zillium.com",
"zuid": 700000002,
"status": "ACTIVE"
}
],
"board": {
"typeOrd": 6,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Board",
"canFollow": "true",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"sections": [],
"status": "ACTIVE",
"canCreateTask": "true"
}
}
}
            
Show full

Updates the name or description of an existing board.

Updates the name or description of an existing board. You must be a board admin or have permission to manage the board. If successful, returns result=success with the updated board details. If it fails, returns result=failure.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBoard

Scope

ZohoPulse.tasks.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Updated board name. 1–50 characters.

boardIdMandatoryLong

Board ID to update. Required.

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

Updated board description. Max 200 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBoard?scopeID=3000000000008&name=Updated Sprint Board&boardId=3000000050001&desc=Updated description' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateBoardJSON Object

Inner updateBoard object — result + board detail

resultString

Result status — 'success' or 'failure'.

boardJSON Object

Updated board detail.

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.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Board updated successfully.

Copied!
        {
"updateBoard": {
"result": "success",
"board": {
"partitionUrl": "sprint-board",
"name": "Updated Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"status": "ACTIVE"
}
}
}
            
Show full

Board update failed.

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

Adds members to an existing board.

Adds one or more users to an existing board as members. You must have permission to manage the board to perform this action. Only active network members who are not already part of the board can be added. All added users are assigned the member role. If successful, returns the details of the users who were added.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/addMembersToBoard

Scope

ZohoPulse.tasks.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

boardIdMandatoryLong

Board ID. Required.

memberIdsLong

Comma-separated user IDs to add. Max 100.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addMembersToBoard?scopeID=3000000000008&boardId=3000000050001&memberIds=700000004,700000005' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addMembersToBoardJSON Object

Inner addMembersToBoard object — members array + result

resultString

Result status — 'success' or 'failure'.

usersDetailsJSON Array

Array of added member 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.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Members added successfully.

Copied!
        {
"addMembersToBoard": {
"result": "success",
"usersDetails": [
{
"role": "MEMBER",
"name": "Alice Brown",
"hasCustomImg": false,
"id": 700000004,
"email": "alice.brown@zillium.com",
"zuid": 700000004,
"status": "ACTIVE"
},
{
"role": "MEMBER",
"name": "Alice Smith",
"hasCustomImg": true,
"id": 700000005,
"email": "alice.smith@zillium.com",
"zuid": 700000005,
"status": "ACTIVE"
}
]
}
}
    
Show full

Removes a member from a board.

Removes a specific member from a board. You must have permission to manage the board to perform this action. The last admin cannot be removed. If successful, returns result=success.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteMemberFromBoard

Scope

ZohoPulse.tasks.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

boardIdMandatoryLong

Board ID. Required.

memberIdMandatoryLong

User ID of the member to remove. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deleteMemberFromBoardJSON Object

Inner deleteMemberFromBoard object — result only

resultString

Result status — 'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Member removed successfully.

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

Retrieves boards for the authenticated user in the network.

Returns all boards that the authenticated user is a member of. Returns board details such as sections, members, permissions, and custom fields. Also includes the default status and priority values used for task display. Supports delta sync using boardsModifiedTime. If the timestamp matches the server cache, the response returns fromCache=true without board data.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/v1/myBoards

Scope

ZohoPulse.tasks.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

boardsModifiedTimeLong

Cache timestamp from a previous call. If unchanged, returns fromCache=true.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
myBoardsJSON Object

Inner myBoards object — contains boards array and cache metadata

defaultStatusJSON Array

Array of default task-status enums.

nameString

Localized status name.

idInteger

Status ordinal.

colorTypeInteger

Status colour index.

resultString

Result status — 'failure'. Present on failure.

fromCacheBoolean

True if boardsModifiedTime matches cache — response is unchanged.

defaultPriorityJSON Array

Array of default task-priority enums.

nameString

Localized priority name.

idInteger

Priority ordinal.

colorTypeInteger

Priority colour index.

boardsModifiedTimeLong

Cache timestamp. Pass back on next call for delta sync.

boardsJSON Array

Array of board objects.

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.

errorCodeString

Error code. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Boards retrieved successfully.

Copied!
        {
"myBoards": {
"defaultStatus": [
{
"name": "Open",
"id": 0,
"colorType": 0
},
{
"name": "Closed",
"id": 1,
"colorType": 4
}
],
"defaultPriority": [
{
"name": "None",
"id": 0,
"colorType": 0
},
{
"name": "High",
"id": 3,
"colorType": 3
}
],
"boardsModifiedTime": 1742464200000,
"boards": [
{
"typeOrd": 6,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"users": [
700000001,
700000002
],
"sections": [
{
  "taskCount": 5,
  "name": "To Do",
  "id": 3000000050010,
  "isPrivate": false,
  "colourType": 2
},
{
  "taskCount": 8,
  "name": "To Smith",
  "id": 3000000050011,
  "isPrivate": true,
  "colourType": 3
}
],
"status": "ACTIVE",
"canCreateTask": "true"
},
{
"typeOrd": 7,
"partitionUrl": "sprint-board",
"canCreateSection": "true",
"name": "Sprint Smith",
"id": 3000000050002,
"isAdmin": "true",
"type": "PROJECT",
"url": "/pulse/api/boardSections?boardId=3000000050001",
"users": [
700000001,
700000002
],
"sections": [
{
  "taskCount": 5,
  "name": "To Do",
  "id": 3000000050010,
  "isPrivate": false,
  "colourType": 2
},
{
  "taskCount": 8,
  "name": "To Smith",
  "id": 3000000050011,
  "isPrivate": true,
  "colourType": 3
}
],
"status": "ACTIVE",
"canCreateTask": "true"
}
]
}
}
            
Show full

Board data unchanged since last fetch.

Copied!
        {
"myBoards": {
"fromCache": true
}
}
            
Show full

Deletes (trashes) a board.

Moves a board to the trash. You must be a board admin or a network admin with permission to manage it. This removes the board from active use. If successful, returns result=success.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteBoard

Scope

ZohoPulse.tasks.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

boardIdMandatoryLong

Board ID to delete. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deleteBoardJSON Object

Inner deleteBoard object — result only

resultString

Result status — 'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Board deleted successfully.

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

Archives, unarchives, or disables a board.

Change the status of a board. You must be a board admin with permission to manage it, and have the required license. - Set isarchive=true to archive the board. - Set both isarchive=true and isdisable=true to disable the board. - To unarchive the board, remove isarchive when the current status is Archive or Disable.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/changePartitionStatus

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
islockBoolean

If true, locks the partition (GROUP only). Members can view but cannot post.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition (group/townhall/manual/board) ID. Required.

isdisableBoolean

If true (together with isarchive=true), disables the partition instead of archiving it.

isarchiveBoolean

If true, archives (or disables if isdisable is also true) the partition.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
changePartitionStatusJSON Object

Inner changePartitionStatus object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Board successfully archived (isarchive=true).

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

Board successfully unarchived / reactivated (all boolean flags omitted).

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

Returned when the caller lacks permission or the partition does not exist.

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

Returned when the board feature license has been exhausted.

Copied!
        {
"changePartitionStatus": {
"result": "failure",
"reason": "Insufficient license"
}
}
            
Show full

Creates a new section in a board.

Creates a new section in a board. You must be a board member with permission to create sections. You can also make the section private so that only selected members can view it. If successful, returns the section details, including its ID, name, color, and URL.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addBoardSection

Scope

ZohoPulse.tasks.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Section name. 1–50 characters. Required.

boardIdMandatoryLong

Board ID. Required.

positionMandatoryInteger

Position index for the new section. Required.

isPrivateBoolean

If true, creates a private section. Defaults to false.

colourTypeString
Allowed value:(matches: ^(0?[0-9])$)

Colour type index (0–9). Defaults to name length mod 10.

memberIdsLong

Comma-separated user IDs for private section members. Max 20. Only used when isPrivate=true.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBoardSection?scopeID=3000000000008&name=In Review&boardId=3000000050001&position=2&colourType=4' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addBoardSectionJSON Object

Inner addBoardSection object — section detail

resultString

Result status — 'failure'. Present on failure.

errorCodeString

Error code. Present on failure.

sectionJSON Object

Created section detail.

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.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Section created successfully.

Copied!
        {
"addBoardSection": {
"section": {
"taskCount": 0,
"name": "In Review",
"id": 3000000050012,
"isPrivate": false,
"colourType": 4,
"url": "in-review"
}
}
}
    
Show full

Retrieves sections and details for a specific board.

Retrieves the complete details of a specific board, including its sections, members, permissions, tags, and statistics. You can identify the board using boardId or boardUrl. This API also checks access permissions and supports shared board access.

Rate limit: 50 requests per minute.

Request URL

https://ServerDomain/pulse/api/boardSections

Scope

ZohoPulse.tasks.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

boardIdLong

Board ID. Provide either boardId or boardUrl.

boardUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Board URL slug. Used to resolve the board if boardId is not provided.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
boardSectionsJSON Object

Inner boardSections object — sections, members, board detail

resultString

Result status — 'failure'. Present on failure.

isArchivedSectionsString

'true' if archived sections exist.

membersJSON Array

Array of board member detail objects.

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.

errorCodeString

Error code. Present on failure.

sectionsJSON Array

Array of section objects.

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.

boardJSON Object

Board detail object.

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.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Board sections retrieved successfully.

Copied!
        {
"boardSections": {
"members": [
{
"role": "ADMIN",
"name": "John Doe",
"hasCustomImg": true,
"id": 700000001,
"email": "john.doe@zillium.com",
"zuid": 700000001,
"status": "ACTIVE"
},
{
"role": "ADMIN",
"name": "John Smith",
"hasCustomImg": false,
"id": 700000002,
"email": "john.smith@zillium.com",
"zuid": 700000002,
"status": "ACTIVE"
}
],
"sections": [
{
"taskCount": 5,
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colourType": 2,
"url": "to-do"
},
{
"taskCount": 3,
"name": "In Progress",
"id": 3000000050011,
"isPrivate": false,
"colourType": 4,
"url": "in-progress"
}
],
"board": {
"partitionUrl": "sprint-board",
"name": "Sprint Board",
"id": 3000000050001,
"isAdmin": "true",
"type": "PROJECT",
"status": "ACTIVE"
}
}
}
    
Show full

Updates the name or colour of a board section.

Updates the name or color of an existing board section. You must be a board member with permission to create sections. For private sections, you must also be a member of that section. If successful, returns result=success. If it fails, returns result=failure.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBoardSection

Scope

ZohoPulse.tasks.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Updated section name. 1–50 characters.

sectionIdMandatoryLong

Section ID to update. Required.

colourTypeString
Allowed value:(matches: ^(0?[0-9])$)

Updated colour type index (0–9).

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBoardSection?scopeID=3000000000008&name=QA Review&sectionId=3000000050012&colourType=6' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateBoardSectionJSON Object

Inner updateBoardSection object — result only

resultString

Result status — 'success' or 'failure'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Section update failed.

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

Section updated successfully.

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

Deletes a section from a board.

Deletes a section from a board along with all its tasks. You must be a board member with permission to create sections. For private sections, you must also be a member of that section. This action also removes related data and triggers notifications.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteBoardSection

Scope

ZohoPulse.tasks.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

sectionIdMandatoryLong

Section ID to delete. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deleteBoardSectionJSON Object

Inner deleteBoardSection object — empty on success

resultString

Result status — 'success'. May be absent (empty body on success).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Section deleted successfully.

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

Create a new task in a board.

Creates a new task in a board section. You must be a board member with permission to create tasks. If successful, returns the full task details, including assignees, section, board, and available permissions.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addTask

Scope

ZohoPulse.tasks.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

userIdsLong

Comma-separated user IDs to assign. Max 100.

tagIdsLong

Comma-separated tag IDs. Max 50.

boardIdLong

Board ID to create the task in.

sectionIdLong

Section ID to place the task in.

positionInteger

Position index within the section.

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

Task title. Max 3000 characters. Required.

priorityString
Allowed value:(matches: ^(None|Low|Medium|High)$)

Task priority — None, Low, Medium, or High.

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

Task description. Max 50,000 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addTask?scopeID=3000000000008&boardId=3000000050001&sectionId=3000000050010&title=Implement login page&priority=High&desc=Build the login page with OAuth support' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addTaskJSON Object

Inner addTask object — post wrapping the task

resultString

Result status — 'failure'. Present on failure.

streamJSON Object

Full post object via constructStream(). Contains the nested task object plus post-level fields (id, content, author, etc.).

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

Task created successfully.

Copied!
        {
"addTask": {
"stream": {
"task": {
"attachCount": 0,
"streamId": 3000000060002,
"canComplete": "true",
"canEdit": "true",
"section": {
"name": "To Do",
"id": 3000000050010,
"isPrivate": false,
"colorType": 2
},
"assigneesCount": 0,
"shortTitle": "Implement login page",
"title": "Implement login page",
"priority": "High",
"commentCount": 0,
"partition": {
"name": "Sprint Board",
"id": 3000000050001,
"type": "PROJECT"
},
"canAssign": "true",
"subTaskCount": 0,
"percentage": 0,
"createdTime": 1742464200000,
"completedSubTaskCount": 0,
"canDelete": "true",
"id": 3000000060001,
"formattedCreatedTime": "Mar 20, 2026 10:30 AM",
"position": 0,
"desc": "Build the login page with OAuth support",
"status": 0
},
"id": 3000000060002
}
}
}
    
Show full

Retrieves a single task by ID or URL.

Retrieves the details of a specific task, including its comments and complete metadata.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/singleTaskStream

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
streamUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Post URL slug (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)$)

Post type filter.

needAllCommentsBoolean

If true, return all comments (ignores commentLimit).

streamIdLong

Post ID.

isRecentBoolean

Return only recent comments.

commentViewString
Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$)

Comment ordering — THREAD or RECENT.

commentLimitInteger

Max comments to return.

isThreadBoolean

Return threaded comments.

includeUnapprovedBoolean

Include unapproved comments (for moderators).

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/singleTaskStream?scopeID=3000000000008&streamId=3000000012007' \
--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 task with metadata, assignees, due date, and comments.

Copied!
        {
"stream": {
"partition": {
"name": "Engineering Board",
"id": 3000000008501,
"type": "PROJECT",
"url": "engineering-board"
},
"task": {
"formattedCreatedDate": "Mar 22, 2025",
"isFollowing": "false",
"startDateLong": 1711100000000,
"isUpcomingDue": "true",
"shortTitle": "Complete Q1 report",
"isAdmin": false,
"title": "Complete Q1 report",
"priority": "High",
"formattedStartDate": "Mar 22, 2025",
"endDateLong": 1711900000000,
"percentage": 0,
"createdTime": 1711100000000,
"canFollow": "true",
"id": 3000000060001,
"formattedCreatedTime": "Mar 22, 2025 02:33 PM",
"formattedDueDate": "Mar 31, 2025",
"desc": "Compile the quarterly financial and product metrics for the Q1 review.",
"status": 0
},
"comments": [
{
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"id": 3000000080001,
"content": "I will have this ready by Friday."
}
],
"canLike": "false",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"canEdit": true,
"canDelete": true,
"id": 3000000012007,
"canComment": "true",
"type": "TASK",
"status": "ACTIVE",
"commentCount": 1
}
}
    
Show full

Update a single field of an existing task.

Updates a single field of an existing task, such as the title, description, due date, start date, priority, status, or assignee. Only one field can be updated per request. The response will include details based on the field that was updated.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateTask

Scope

ZohoPulse.tasks.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

removeAssigneeIdLong

Comma-separated user IDs to remove from assignees. Max 50.

isClearStartDateBoolean

If true, removes the start date.

isClearDueDateBoolean

If true, removes the due date.

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

Updated task title.

priorityString
Allowed value:(matches: ^(None|Low|Medium|High)$)

Updated priority — None, Low, Medium, or High.

assigneeIdLong

Comma-separated user IDs to add as assignees. Max 50.

taskIdMandatoryLong

Task ID to update. Required.

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

Updated task description.

statusLong

Updated task status as a long value.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateTaskJSON Object

Inner updateTask object — varies by update type. Only one update per call.

completedTimeString

Formatted completion time. Present on completion.

startDateLongLong

Start-date timestamp (epoch ms). Present on start-date update.

taskPriorityJSON Object

Updated priority object. Present on priority update.

nameString

Localized priority name.

idInteger

Priority ordinal.

colorTypeInteger

Priority colour index.

shortTitleString

Truncated title. Present on title update.

titleString

Updated title. Present on title update.

formattedStartDateString

Human-readable start date. Present on start-date update.

isOverDueString

'true' if past due. Present on due-date update.

endDateLongLong

Due-date timestamp (epoch ms). Present on due-date update.

canAssignString

'true' if caller can assign. Present on assignee update.

taskPercentageLong

Completion percentage. Present on status update.

canCompleteCheckListString

Whether sub-task checklist can be completed.

isTodayDueString

'true' if due today. Present on due-date update.

formattedDueDateString

Human-readable due date. Present on due-date update.

taskStatusJSON Object

Updated status object. Present on status update.

nameString

Localized status name.

idInteger

Status ordinal.

colorTypeInteger

Status colour index.

completedByJSON Object

User who completed the task. Present on completion.

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.

descString

Updated description. Present on description update.

isCompletedString

'true' if completed. Present on status → 100%.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Task priority updated.

Copied!
        {
"updateTask": {
"taskPriority": {
"name": "High",
"id": 3,
"colorType": 3
}
}
}
            
Show full

Task title updated successfully.

Copied!
        {
"updateTask": {
"shortTitle": "Updated task title",
"title": "Updated task title"
}
}
            
Show full

Task status updated to completed.

Copied!
        {
"updateTask": {
"completedTime": "Mar 20, 2026 11:00 AM",
"taskPercentage": 100,
"taskStatus": {
"name": "Closed",
"id": 1,
"colorType": 4
},
"isCompleted": "true"
}
}
            
Show full

Deletes a task from a board.

Deletes a task from a board. You must have permission to delete the task. This action also removes any related sub-tasks and clears associated notifications.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteTask

Scope

ZohoPulse.tasks.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

taskIdMandatoryLong

Task ID to delete. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deleteTaskJSON Object

Inner deleteTask object — result

resultString

Result status — 'success'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Task deleted successfully.

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

Publish or unpublish an article within a manual.

Publishes a draft article or unpublish a published one. You must have permission to edit the article or its manual. If successful, returns result=success with the published time.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/publishArticle

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Optional content to add as a publish note. Max 5000 characters.

articleIdMandatoryLong

Article (sub-page) ID to publish or unpublish. Required.

isPublishBoolean

If true, publishes the article. If false, unpublishes it. Defaults to true.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/publishArticle?scopeID=3000000000008&publishContent=Publishing this article.&articleId=3000000025001&isPublish=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
publishArticleJSON Object

Inner publishArticle object — success/error response

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

publishedOnLong

Publish timestamp (epoch ms). Present on success.

canShowVersionBoolean

Whether version history is available. Present on success.

formattedPublishedTimeString

Human-readable published time. Present on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Article published successfully.

Copied!
        {
"publishArticle": {
"result": "success",
"publishedOn": 1742464200000,
"canShowVersion": true,
"formattedPublishedTime": "Mar 20, 2026 10:30 AM"
}
}
            
Show full

Returned when the article has no name or the caller lacks permissions.

Copied!
        {
"publishArticle": {
"result": "failure",
"reason": "Cannot publish article without name"
}
}
            
Show full

Retrieves all articles and chapters for a manual.

Returns the complete article and chapter tree for a specific manual.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/manualArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdLong

Manual (partition) ID. Provide either manualId or url.

scopeIDMandatoryLong

Network (scope) ID. Required.

urlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Manual URL slug. Used if manualId is not provided.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
chapterJSON Array

Array of chapter objects with nested articles.

isPublishedBoolean

True if published.

nameString

Chapter name.

idLong

Chapter ID.

typeString

Always 'CHAPTER'.

urlString

Chapter URL slug.

articleJSON Array

Array of article objects within this chapter.

modifiedTimeString

Formatted last modification time.

publishedTimeString

Formatted publication time.

isPublishedBoolean

True if published.

nameString

Article title.

idLong

Article ID.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

partitionJSON Object

Manual partition object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

canFollowBoolean

True if the caller can follow this manual.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Manual articles and chapters returned.

Copied!
        {
"chapter": [
{
"isPublished": true,
"name": "Getting Started",
"id": 3000000025001,
"type": "CHAPTER",
"url": "getting-started",
"article": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"name": "Introduction",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"name": "Introduction 2",
"id": 3000000030002,
"type": "ARTICLE",
"url": "introduction"
}
]
},
{
"isPublished": false,
"name": "Getting Smith",
"id": 3000000025002,
"type": "CHAPTER",
"url": "getting-started",
"article": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"name": "Introduction",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"name": "Introduction 2",
"id": 3000000030002,
"type": "ARTICLE",
"url": "introduction"
}
]
}
],
"partition": {
"name": "Getting Started Guide",
"id": 3000000020001,
"type": "PAGE",
"url": "getting-started-guide"
},
"canFollow": true
}
    
Show full

Fetches articles authored by the authenticated user.

Returns all articles that the authenticated user has authored across all manuals. Returns an articles array with metadata including title, URL, parent manual info, timestamps, and comment count.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/myArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

limitInteger

Maximum number of articles to return. Range 1–200.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
myArticlesJSON Object

Inner myArticles object — array of articles the caller authored

showMoreBoolean

Whether more results are available for pagination.

articlesJSON Array

Array of article objects.

modifiedTimeLong

Last modified timestamp (epoch ms).

streamIdLong

Associated post ID.

isPublishedBoolean

Whether the article is published.

typeString

Article type.

urlString

URL path of the article.

commentCountInteger

Number of comments on the article.

manualIdLong

ID of the parent manual.

publishedTimeLong

Publish timestamp (epoch ms). 0 if unpublished.

nameString

Article title.

createdTimeLong

Creation timestamp (epoch ms).

manualUrlString

URL of the parent manual.

idLong

Article ID.

manualNameString

Name of the parent manual.

excerptString

Short excerpt of article content.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns a list of articles authored by the caller.

Copied!
        {
"myArticles": {
"showMore": false,
"articles": [
{
"modifiedTime": 1742464200000,
"streamId": 3000000025002,
"isPublished": true,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 3,
"manualId": 3000000020001,
"publishedTime": 1742464200000,
"name": "How to Create a Group",
"createdTime": 1742464200000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025001,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups in Zoho Connect..."
},
{
"modifiedTime": 1742550600000,
"streamId": 3000000025003,
"isPublished": false,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 6,
"manualId": 3000000020002,
"publishedTime": 1742550600000,
"name": "How Smith",
"createdTime": 1742550600000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025002,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups in Zoho Connect..."
}
]
}
}
    
Show full

Retrieves articles within a specific group.

Returns all articles belonging to manuals in a specific group. Identify the group by partitionId or url. Returns an articles array with timestamps, parent manual info, and comment counts.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/partitionArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Group ID. Provide either partitionId or url.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

urlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Group URL slug. Used to resolve the group if partitionId is not provided.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
partitionArticlesJSON Object

Inner partitionArticles object — articles within a specific group

showMoreBoolean

Whether more results are available for pagination.

articlesJSON Array

Array of article objects.

modifiedTimeLong

Last modified timestamp (epoch ms).

streamIdLong

Associated post ID.

isPublishedBoolean

Whether the article is published.

typeString

Article type.

urlString

URL path of the article.

commentCountInteger

Number of comments on the article.

manualIdLong

ID of the parent manual.

publishedTimeLong

Publish timestamp (epoch ms). 0 if unpublished.

nameString

Article title.

createdTimeLong

Creation timestamp (epoch ms).

manualUrlString

URL of the parent manual.

idLong

Article ID.

manualNameString

Name of the parent manual.

excerptString

Short excerpt of article content.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns articles from the specified group.

Copied!
        {
"partitionArticles": {
"showMore": false,
"articles": [
{
"modifiedTime": 1742464200000,
"streamId": 3000000025002,
"isPublished": true,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 3,
"manualId": 3000000020001,
"publishedTime": 1742464200000,
"name": "How to Create a Group",
"createdTime": 1742464200000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025001,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups..."
},
{
"modifiedTime": 1742550600000,
"streamId": 3000000025003,
"isPublished": false,
"type": "ARTICLE",
"url": "/portal/zillium/manual/getting-started-guide/article/how-to-create-a-group",
"commentCount": 6,
"manualId": 3000000020002,
"publishedTime": 1742550600000,
"name": "How Smith",
"createdTime": 1742550600000,
"manualUrl": "/portal/zillium/manual/getting-started-guide",
"id": 3000000025002,
"manualName": "Getting Started Guide",
"excerpt": "Learn how to create and manage groups..."
}
]
}
}
    
Show full

Returns articles that the authenticated user follows.

Returns all articles that the authenticated user is following.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/followingArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
articlesJSON Array

Array of article objects the user is following.

modifiedTimeString

Formatted last modification time.

streamIdLong

Associated feed post ID.

isPublishedBoolean

True if the article is published.

authorJSON Object

Article author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

commentCountInteger

Number of comments.

publishedTimeString

Formatted publication time.

nameString

Article title.

createdTimeString

Formatted creation time.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

manualNameString

Parent manual display name.

excerptString

Article excerpt or summary.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Following articles returned.

Copied!
        {
"articles": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"manualName": "Getting Started Guide",
"type": "ARTICLE",
"url": "introduction"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"publishedTime": "Jan 10, 2025 10:30 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"manualName": "Getting Started Guide",
"type": "ARTICLE",
"url": "introduction"
}
]
}
    
Show full

Fetches articles shared with the authenticated user.

Returns articles that have been shared with the authenticated user.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/sharedArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Maximum number of articles to return.

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

Filter articles by name (partial match).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
articlesListJSON Array

Array of shared article objects.

modifiedTimeString

Formatted last modification time.

streamIdLong

Associated feed post ID.

isPublishedBoolean

True if published.

authorJSON Object

Article author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

commentCountInteger

Number of comments.

publishedTimeString

Formatted publication time.

sharedTimeString

Time the article was shared.

nameString

Article title.

createdTimeString

Formatted creation time.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

manualNameString

Parent manual display name.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Shared articles returned.

Copied!
        {
"articlesList": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060001,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 3,
"publishedTime": "Jan 10, 2025 10:30 AM",
"sharedTime": "Jan 15, 2025 11:00 AM",
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"manualName": "Getting Started Guide"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060002,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 6,
"publishedTime": "Jan 10, 2025 10:30 AM",
"sharedTime": "Jan 15, 2025 11:00 AM",
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"manualName": "Getting Started Guide"
}
]
}
    
Show full

Fetches the most viewed articles across all manuals.

Returns articles ranked by view count.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/mostViewedArticles

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Maximum number of articles to return. Defaults to 20.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
articlesJSON Array

Array of most viewed article objects.

modifiedTimeString

Formatted last modification time.

streamIdLong

Associated feed post ID.

isPublishedBoolean

True if published.

authorJSON Object

Article author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

uniqueViewCountInteger

Unique viewer count.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

commentCountInteger

Number of comments.

nameString

Article title.

createdTimeString

Formatted creation time.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

viewCountInteger

Total view count.

manualNameString

Parent manual display name.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Most viewed articles returned.

Copied!
        {
"articles": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060001,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"uniqueViewCount": 198,
"type": "ARTICLE",
"url": "introduction",
"commentCount": 5,
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"viewCount": 342,
"manualName": "Getting Started Guide"
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060002,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"uniqueViewCount": 201,
"type": "ARTICLE",
"url": "introduction",
"commentCount": 8,
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"viewCount": 345,
"manualName": "Getting Started Guide"
}
]
}
    
Show full

Retrieves articles tagged with a specific tag within a manual.

Returns articles in a specific manual that are tagged with the given tag ID.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/articlesByTag

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Manual (partition) ID. Required.

tagIdMandatoryLong

Tag ID to filter by. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
articlesListJSON Array

Array of article objects matching the tag.

modifiedTimeString

Formatted last modification time.

streamIdLong

Associated feed post ID.

isPublishedBoolean

True if the article is published.

authorJSON Object

Article author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

commentCountInteger

Number of comments.

publishedTimeString

Formatted publication time.

nameString

Article title.

createdTimeString

Formatted creation time.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

manualNameString

Parent manual display name.

excerptString

Article excerpt or summary.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Tagged articles returned.

Copied!
        {
"articlesList": [
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060001,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 3,
"publishedTime": "Jan 10, 2025 10:30 AM",
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030001,
"manualName": "Getting Started Guide",
"excerpt": "Welcome to the guide..."
},
{
"modifiedTime": "Jan 12, 2025 02:30 PM",
"streamId": 3000000060002,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"type": "ARTICLE",
"url": "introduction",
"commentCount": 6,
"publishedTime": "Jan 10, 2025 10:30 AM",
"name": "Introduction 2",
"createdTime": "Jan 10, 2025 10:00 AM",
"manualUrl": "getting-started-guide",
"id": 3000000030002,
"manualName": "Getting Started Guide",
"excerpt": "Welcome to the guide..."
}
]
}
    
Show full

Returns the full content of an article.

Returns the full HTML content of a manual article, including metadata and navigation details.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/articleContent

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdLong

Manual (partition) ID containing the article.

scopeIDMandatoryLong

Network (scope) ID. Required.

articleIdLong

Article ID. Provide either articleId or articleUrl.

manualUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Manual URL slug. Used to resolve the manual if manualId is not provided.

isexcludeCommentsBoolean

If true, excludes comments from the response.

articleUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Article URL slug. Used if articleId is not provided.

convertVideoTagBoolean

If true, converts embedded video tags to a portable format (v1 only).

versionInteger

API version — 1 for v1 format, 0 or 2 for default format.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
isFollowingBoolean

True if the caller is following this article.

streamIdLong

Associated feed post ID.

eachArticleJSON Object

Article metadata object.

modifiedTimeString

Formatted last modification time.

streamIdLong

Associated feed post ID.

isPublishedBoolean

True if the article is published.

authorJSON Object

Article author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

typeString

Always 'ARTICLE'.

urlString

Article URL slug.

commentCountInteger

Number of comments.

publishedTimeString

Formatted publication time.

nameString

Article title.

createdTimeString

Formatted creation time.

manualUrlString

Parent manual URL slug.

idLong

Article ID.

manualNameString

Parent manual display name.

excerptString

Article excerpt or summary.

canFollowBoolean

True if the caller can follow.

manualUrlString

Parent manual URL slug.

manualTitleString

Parent manual title.

contentString

Rendered HTML content of the article.

urlString

Full article URL.

commentCountInteger

Number of comments.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Article content returned.

Copied!
        {
"isFollowing": true,
"streamId": 3000000060001,
"eachArticle": {
"modifiedTime": "Jan 12, 2025 02:30 PM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Introduction",
"createdTime": "Jan 10, 2025 10:00 AM",
"id": 3000000030001,
"type": "ARTICLE",
"url": "introduction"
},
"canFollow": true,
"manualUrl": "getting-started-guide",
"manualTitle": "Getting Started Guide",
"content": "<p>Welcome to the guide.</p>",
"url": "https://connect.zoho.com/portal/zillium/manual/getting-started-guide/article/introduction",
"commentCount": 5
}
    
Show full

Adds a tag to an article.

Assigns an existing tag to a specific article.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/addArticleTag

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Article ID. Required.

tagIdMandatoryLong

Tag ID to assign. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addArticleTag?scopeID=3000000000008&streamId=3000000030001&tagId=3000000005001' \
--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 added to article.

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

Removes a tag from an article.

Removes a specific tag from the article.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/removeArticleTag

Scope

ZohoPulse.pagelist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Article ID. Required.

tagIdMandatoryLong

Tag ID to remove. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/removeArticleTag?scopeID=3000000000008&streamId=3000000030001&tagId=3000000005001' \
--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 removed from article.

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

Follows a manual article to receive updates.

Follows a specific article so the authenticated user receives notifications on changes.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/followArticle

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

articleIdMandatoryLong

Article ID to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followArticle?scopeID=3000000000008&articleId=3000000030001' \
--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

Article followed successfully.

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

Stops following a manual article.

Unfollows a specific article so the authenticated user no longer receives notifications.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/unfollowArticle

Scope

ZohoPulse.pagelist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

articleIdMandatoryLong

Article ID to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowArticle?scopeID=3000000000008&articleId=3000000030001' \
--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

Article unfollowed successfully.

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

Exports an article as a PDF file.

Starts exporting the selected article as a PDF. If successful, returns result=success.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/exportArticleAsPDF

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

includeAttachmentsBoolean

If true, includes article attachments in the export.

articleIdMandatoryLong

Article ID to export. Required.

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

Password for the exported zip file. 4–10 characters.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' when the export file is ready for download.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Export initiated.

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

Downloads a previously exported article file.

Downloads the exported article file using the export ID.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/getArticleExportFile

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

isInlineBoolean

If true, returns the file inline (for browser viewing) instead of as a download.

exportIdMandatoryLong

Export ID returned by exportArticleAsPDF. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/octet-stream

PARAM NAMEDATA TYPEDESCRIPTION
String

Possible HTTP Status Codes

HTTP CodeDescription
200

File download

Sample Response: HTTP 200

The exported PDF or ZIP file is returned as a binary download.

Copied!
        "(binary file content)"
    
Show full

Deletes an article from a manual.

Permanently deletes the specified article.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteArticle

Scope

ZohoPulse.pagelist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

articleIdMandatoryLong

Article ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteArticle?scopeID=3000000000008&articleId=3000000030001' \
--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

Article deleted successfully.

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

Returns the chapter list for a manual.

Returns the list of chapters belonging to a specific manual.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/getChaptersFromManual

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdMandatoryLong

Manual (partition) ID. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

chaptersJSON Array

Array of chapter objects.

createdByLong

Creator user ID.

nameString

Chapter name.

createdTimeString

Formatted creation time.

idLong

Chapter ID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Chapters returned.

Copied!
        {
"result": "success",
"chapters": [
{
"createdBy": 3000000000123,
"name": "Getting Started",
"createdTime": "Jan 5, 2025 09:00 AM",
"id": 3000000025001
},
{
"createdBy": 3000000000124,
"name": "Getting Smith",
"createdTime": "Jan 5, 2025 09:00 AM",
"id": 3000000025002
}
]
}
    
Show full

Creates a new manual.

Creates a new manual page with a specific name and optional description.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addPage

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Manual name. 1–100 characters. Required.

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

Manual description. Max 500 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addPage?scopeID=3000000000008&name=API Reference&desc=API documentation for developers' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

'success' on success.

partitionIdString

Partition ID of the newly created page/manual.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Page created successfully.

Copied!
        {
"result": "success",
"partitionId": "3000000020010"
}
    
Show full

Uploads a banner image for a manual.

Uploads a banner image for a specific manual. Max file size 10 MB.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/uploadPageBanner

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Page (manual partition) ID. Required.

- 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/uploadPageBanner?scopeID=3000000000008&partitionId=3000000020001' \
--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' on success.

urlString

URL of the uploaded banner image.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Banner uploaded.

Copied!
        {
"result": "success",
"url": "https://connect.zoho.com/connect/ViewImage?scopeID=3000000000008&partitionId=3000000020001"
}
    
Show full

Uploads a logo image for a manual.

Uploads a logo image for a specific manual. Max file size 10 MB.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/uploadPageLogo

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Page (manual partition) ID. Required.

- 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/uploadPageLogo?scopeID=3000000000008&partitionId=3000000020001' \
--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' on success.

urlString

URL of the uploaded logo image.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Logo uploaded.

Copied!
        {
"result": "success",
"url": "https://connect.zoho.com/connect/ViewImage?scopeID=3000000000008&partitionId=3000000020001"
}
    
Show full

Publishes or unpublishes a manual.

Publishes a draft manual or unpublishes a published one. You must be a manual admin with permission to manage it. You can also choose to publish all unpublished articles in the manual at the same time using publishAllArticles.

Rate limit: 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/publishManual

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdMandatoryLong

Manual (page partition) ID to publish or unpublish. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Parent group ID that the manual belongs to. Required.

isPublicBoolean

If true, makes the manual public. Defaults to false.

publishAllArticlesBoolean

If true, publishes all unpublished articles in the manual. Defaults to false.

isPublishBoolean

If true, publishes the manual. If false, unpublishes it. Defaults to false.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/publishManual?manualId=3000000020001&scopeID=3000000000008&partitionId=3000000010001&isPublic=false&publishAllArticles=true&isPublish=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
publishManualJSON Object

Inner publishManual object — success result or error with reason

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Manual published successfully.

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

Returned when the caller does not have admin permissions on the manual.

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

Follows a manual to receive updates.

Follows a specific manual so the authenticated user receives notifications on changes.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/followManual

Scope

ZohoPulse.pagelist.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdMandatoryLong

Manual (partition) ID to follow. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followManual?manualId=3000000020001&scopeID=3000000000008' \
--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

Manual followed successfully.

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

Stops following a manual.

Unfollows a specific manual so the authenticated user no longer receives notifications.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/unfollowManual

Scope

ZohoPulse.pagelist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
manualIdMandatoryLong

Manual (partition) ID to unfollow. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowManual?manualId=3000000020001&scopeID=3000000000008' \
--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

Manual unfollowed successfully.

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

Returns all manuals accessible to the authenticated user.

Returns all manuals (published and draft) that the authenticated user can access.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/allManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Current page index for pagination.

manualsJSON Array

Array of manual objects.

canEditBoolean

True if the caller can edit.

isDraftBoolean

True if the manual is a draft.

bannerUrlString

Banner image URL.

articleCountInteger

Number of articles in the manual.

typeString

Always 'MANUAL'.

parentPartitionJSON Object

Parent group object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

bgColorString

Background color hex code.

canPublishBoolean

True if the caller can publish.

canFollowBoolean

True if the caller can follow.

logoString

Logo initial character.

canDeleteBoolean

True if the caller can delete.

idLong

Manual partition ID.

navigationTypeString

Navigation display type.

isFavouriteBoolean

True if marked as favourite by the caller.

isFollowingBoolean

True if the caller is following.

isPublishedBoolean

True if the manual is published.

authorJSON Object

Manual author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

isAdminBoolean

True if the caller is admin of this manual.

urlString

Manual URL slug.

logoUrlString

Logo image URL.

formatedTimeString

Formatted creation/modification time.

showInFeedBoolean

True if shown in feed.

nameString

Manual name.

descString

Manual description.

statusString

Manual status — ACTIVE, DRAFT, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

All manuals returned.

Copied!
        {
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"articleCount": 12,
"type": "MANUAL",
"url": "getting-started-guide",
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"formatedTime": "Jan 5, 2025 09:00 AM",
"bgColor": "#4CAF50",
"name": "Getting Started Guide",
"canFollow": true,
"logo": "G",
"id": 3000000020001,
"desc": "A beginner guide",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"articleCount": 15,
"type": "MANUAL",
"url": "getting-started-guide",
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"formatedTime": "Jan 5, 2025 09:00 AM",
"bgColor": "#4CAF50",
"name": "Getting Smith",
"canFollow": false,
"logo": "G",
"id": 3000000020002,
"desc": "A beginner guide",
"status": "ACTIVE"
}
]
}
    
Show full

Retrieves the manual dashboard grouped by groups.

Returns the manual dashboard with manuals organized by groups.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/getManualDashboard

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

groupIndexInteger

Group page index for incremental loading.

manualEnabledGroupsJSON Array

Array of group IDs that have manuals enabled.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
favouritesJSON Array

Array of favourite manual objects.

canEditBoolean

True if the caller can edit.

isDraftBoolean

True if the manual is a draft.

bannerUrlString

Banner image URL.

articleCountInteger

Number of articles in the manual.

typeString

Always 'MANUAL'.

parentPartitionJSON Object

Parent group object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

bgColorString

Background color hex code.

canPublishBoolean

True if the caller can publish.

canFollowBoolean

True if the caller can follow.

logoString

Logo initial character.

canDeleteBoolean

True if the caller can delete.

idLong

Manual partition ID.

navigationTypeString

Navigation display type.

isFavouriteBoolean

True if marked as favourite by the caller.

isFollowingBoolean

True if the caller is following.

isPublishedBoolean

True if the manual is published.

authorJSON Object

Manual author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

isAdminBoolean

True if the caller is admin of this manual.

urlString

Manual URL slug.

logoUrlString

Logo image URL.

formatedTimeString

Formatted creation/modification time.

showInFeedBoolean

True if shown in feed.

nameString

Manual name.

descString

Manual description.

statusString

Manual status — ACTIVE, DRAFT, etc.

manualGroupIdsJSON Array

Array of group IDs (long).

groupsJSON Array

Array of group objects with manuals.

parentPartitionJSON Object

Parent group.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

manualsJSON Array

Array of manual objects in this group.

isPublishedBoolean

True if published.

nameString

Manual name.

articleCountInteger

Number of articles.

idLong

Manual partition ID.

typeString

Always 'MANUAL'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Manual dashboard with groups returned.

Copied!
        {
"favourites": [],
"manualGroupIds": [
3000000010001,
3000000010002
],
"groups": [
{
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"manuals": [
{
"isPublished": true,
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL"
},
{
"isPublished": false,
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL"
}
]
},
{
"parentPartition": {
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
"manuals": [
{
"isPublished": true,
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL"
},
{
"isPublished": false,
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL"
}
]
}
]
}
    
Show full

Retrieve manuals created or owned by the authenticated user.

Returns all manuals created or owned by the authenticated user. Fetches details such as the manual title, URL, article count, published status, and available permissions. The response also includes canCreateNew, which shows whether the user can create a new manual.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/myManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

limitInteger

Maximum number of manuals to return. Range 1–200.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
myManualsJSON Object

Inner myManuals object — array of manuals the caller owns/created

canCreateNewBoolean

Whether the caller has permission to create a new manual.

pageIndexInteger

Next page index for pagination. Present only if more results exist.

manualsJSON Array

Array of manual objects.

isFollowingBoolean

Whether the caller is following this manual.

isPublishedBoolean

Whether the manual is published.

canEditBoolean

Whether the caller can edit this manual.

isDraftBoolean

Whether the manual is in draft state.

articleCountInteger

Number of articles in the manual.

isAdminBoolean

Whether the caller is an admin of this manual.

typeString

Always 'MANUAL'.

urlString

URL path of the manual.

formatedTimeString

Formatted last-modified time.

nameString

Manual title.

canPublishBoolean

Whether the caller can publish this manual.

canFollowBoolean

Whether the caller can follow this manual.

canDeleteBoolean

Whether the caller can delete this manual.

idLong

Manual ID.

descString

Manual description.

statusString

Manual status — e.g. 'ACTIVE', 'ARCHIVED'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns a list of manuals owned by the caller.

Copied!
        {
"myManuals": {
"canCreateNew": true,
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"canEdit": true,
"isDraft": false,
"articleCount": 5,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": true,
"canFollow": true,
"canDelete": true,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"canEdit": false,
"isDraft": true,
"articleCount": 8,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": false,
"canFollow": false,
"canDelete": false,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
    
Show full

Returns manuals belonging to a specific group.

Returns manuals within a specific group.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/groupManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Group URL slug.

pageIndexInteger

Page index for pagination (0-based).

partitionIdLong

Group ID. Provide either partitionId or partitionUrl.

limitInteger

Maximum number of manuals to return. Defaults to 20.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

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

Filter manuals by name (partial match).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Current page index for pagination.

manualsJSON Array

Array of manual objects for the group.

canEditBoolean

True if the caller can edit.

isDraftBoolean

True if the manual is a draft.

bannerUrlString

Banner image URL.

articleCountInteger

Number of articles in the manual.

typeString

Always 'MANUAL'.

parentPartitionJSON Object

Parent group object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

bgColorString

Background color hex code.

canPublishBoolean

True if the caller can publish.

canFollowBoolean

True if the caller can follow.

logoString

Logo initial character.

canDeleteBoolean

True if the caller can delete.

idLong

Manual partition ID.

navigationTypeString

Navigation display type.

isFavouriteBoolean

True if marked as favourite by the caller.

isFollowingBoolean

True if the caller is following.

isPublishedBoolean

True if the manual is published.

authorJSON Object

Manual author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

isAdminBoolean

True if the caller is admin of this manual.

urlString

Manual URL slug.

logoUrlString

Logo image URL.

formatedTimeString

Formatted creation/modification time.

showInFeedBoolean

True if shown in feed.

nameString

Manual name.

descString

Manual description.

statusString

Manual status — ACTIVE, DRAFT, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Group manuals returned.

Copied!
        {
"pageIndex": 1,
"manuals": [
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL",
"url": "getting-started-guide",
"status": "ACTIVE"
},
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL",
"url": "getting-started-guide",
"status": "ACTIVE"
}
]
}
    
Show full

Retrieve manuals within a specific group.

Returns all manuals in a specific group. You can identify the group using its partitionId or url. Gets manual details such as title, article count, and available permissions, along with the group's name, URL, and ID.

Rate limit: 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/partitionManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdLong

Group ID. Provide either partitionId or url.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

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

Filter manuals by name (partial match).

urlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Group URL slug. Used to resolve the group if partitionId is not provided.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/partitionManuals?isAscSort=true&scopeID=3000000000008&partitionId=3000000010001&sortBy=alpha&searchByPartName=guide&url=engineering' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
partitionManualsJSON Object

Inner partitionManuals object — manuals within a specific group

canCreateNewBoolean

Whether the caller can create a new manual in this group.

partitionNameString

Display name of the group.

partitionUrlString

URL slug of the group.

partitionIdLong

Group ID.

pageIndexInteger

Next page index for pagination. Present only if more results exist.

manualsJSON Array

Array of manual objects.

isFollowingBoolean

Whether the caller is following this manual.

isPublishedBoolean

Whether the manual is published.

canEditBoolean

Whether the caller can edit this manual.

isDraftBoolean

Whether the manual is in draft state.

articleCountInteger

Number of articles in the manual.

isAdminBoolean

Whether the caller is an admin of this manual.

typeString

Always 'MANUAL'.

urlString

URL path of the manual.

formatedTimeString

Formatted last-modified time.

nameString

Manual title.

canPublishBoolean

Whether the caller can publish this manual.

canFollowBoolean

Whether the caller can follow this manual.

canDeleteBoolean

Whether the caller can delete this manual.

idLong

Manual ID.

descString

Manual description.

statusString

Manual status — e.g. 'ACTIVE', 'ARCHIVED'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns manuals from the specified group.

Copied!
        {
"partitionManuals": {
"canCreateNew": true,
"partitionName": "Engineering",
"partitionUrl": "engineering",
"partitionId": 3000000010001,
"manuals": [
{
"isFollowing": false,
"isPublished": true,
"canEdit": true,
"isDraft": false,
"articleCount": 5,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": true,
"canFollow": true,
"canDelete": true,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": true,
"isPublished": false,
"canEdit": false,
"isDraft": true,
"articleCount": 8,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": false,
"canFollow": false,
"canDelete": false,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
    
Show full

Returns manuals marked as favorites by the authenticated user.

Returns manuals that the authenticated user has added to their favorites.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/favoriteManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

startIndexInteger

Start index for pagination (0-based).

limitInteger

Maximum number of manuals to return. Range 1–30.

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

Filter manuals by name (partial match).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
manualsJSON Array

Array of favourite manual objects.

canEditBoolean

True if the caller can edit.

isDraftBoolean

True if the manual is a draft.

bannerUrlString

Banner image URL.

articleCountInteger

Number of articles in the manual.

typeString

Always 'MANUAL'.

parentPartitionJSON Object

Parent group object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

bgColorString

Background color hex code.

canPublishBoolean

True if the caller can publish.

canFollowBoolean

True if the caller can follow.

logoString

Logo initial character.

canDeleteBoolean

True if the caller can delete.

idLong

Manual partition ID.

navigationTypeString

Navigation display type.

isFavouriteBoolean

True if marked as favourite by the caller.

isFollowingBoolean

True if the caller is following.

isPublishedBoolean

True if the manual is published.

authorJSON Object

Manual author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

isAdminBoolean

True if the caller is admin of this manual.

urlString

Manual URL slug.

logoUrlString

Logo image URL.

formatedTimeString

Formatted creation/modification time.

showInFeedBoolean

True if shown in feed.

nameString

Manual name.

descString

Manual description.

statusString

Manual status — ACTIVE, DRAFT, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Favorite manuals returned.

Copied!
        {
"manuals": [
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Started Guide",
"articleCount": 12,
"id": 3000000020001,
"type": "MANUAL",
"isFavourite": true,
"url": "getting-started-guide",
"status": "ACTIVE"
},
{
"formatedTime": "Jan 5, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Alice",
"id": 3000000000123
},
"name": "Getting Smith",
"articleCount": 15,
"id": 3000000020002,
"type": "MANUAL",
"isFavourite": false,
"url": "getting-started-guide",
"status": "ACTIVE"
}
]
}
    
Show full

Returns manuals featured by the network admin.

Returns manuals that have been marked as featured by the admin.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/featuredManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Maximum number of manuals to return. Range 1–30.

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

Filter manuals by name (partial match).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
manualsJSON Array

Array of featured manual objects.

canEditBoolean

True if the caller can edit.

isDraftBoolean

True if the manual is a draft.

bannerUrlString

Banner image URL.

articleCountInteger

Number of articles in the manual.

typeString

Always 'MANUAL'.

parentPartitionJSON Object

Parent group object.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

bgColorString

Background color hex code.

canPublishBoolean

True if the caller can publish.

canFollowBoolean

True if the caller can follow.

logoString

Logo initial character.

canDeleteBoolean

True if the caller can delete.

idLong

Manual partition ID.

navigationTypeString

Navigation display type.

isFavouriteBoolean

True if marked as favourite by the caller.

isFollowingBoolean

True if the caller is following.

isPublishedBoolean

True if the manual is published.

authorJSON Object

Manual author.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

isAdminBoolean

True if the caller is admin of this manual.

urlString

Manual URL slug.

logoUrlString

Logo image URL.

formatedTimeString

Formatted creation/modification time.

showInFeedBoolean

True if shown in feed.

nameString

Manual name.

descString

Manual description.

statusString

Manual status — ACTIVE, DRAFT, etc.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Featured manuals returned.

Copied!
        {
"manuals": [
{
"formatedTime": "Feb 1, 2025 09:00 AM",
"isPublished": true,
"author": {
"name": "Bob",
"id": 3000000000456
},
"name": "Marketing Resources",
"articleCount": 8,
"id": 3000000020005,
"type": "MANUAL",
"url": "marketing-resources",
"status": "ACTIVE"
},
{
"formatedTime": "Feb 1, 2025 09:00 AM",
"isPublished": false,
"author": {
"name": "Bob",
"id": 3000000000456
},
"name": "Marketing Smith",
"articleCount": 11,
"id": 3000000020006,
"type": "MANUAL",
"url": "marketing-resources",
"status": "ACTIVE"
}
]
}
    
Show full

Fetches manuals that the authenticated user follows.

Retrieve all manuals that the authenticated user is following. Returns details such as the manual title, URL, article count, published status, and available permissions. The response also includes canCreateNew, which shows whether the user can create a new manual.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/followingManuals

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
isAscSortBoolean

If true, sort in ascending order. Defaults to false.

scopeIDMandatoryLong

Network (scope) ID. Required.

limitInteger

Maximum number of manuals to return. Range 1–200.

sortByString
Allowed value:(matches: alpha|recent)

Sort order: 'alpha' (alphabetical) or 'recent' (most recent first).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
followingManualsJSON Object

Inner followingManuals object — array of manuals the caller follows

canCreateNewBoolean

Whether the caller has permission to create a new manual.

pageIndexInteger

Next page index for pagination. Present only if more results exist.

manualsJSON Array

Array of manual objects.

isFollowingBoolean

Whether the caller is following this manual.

isPublishedBoolean

Whether the manual is published.

canEditBoolean

Whether the caller can edit this manual.

isDraftBoolean

Whether the manual is in draft state.

articleCountInteger

Number of articles in the manual.

isAdminBoolean

Whether the caller is an admin of this manual.

typeString

Always 'MANUAL'.

urlString

URL path of the manual.

formatedTimeString

Formatted last-modified time.

nameString

Manual title.

canPublishBoolean

Whether the caller can publish this manual.

canFollowBoolean

Whether the caller can follow this manual.

canDeleteBoolean

Whether the caller can delete this manual.

idLong

Manual ID.

descString

Manual description.

statusString

Manual status — e.g. 'ACTIVE', 'ARCHIVED'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns a list of manuals the caller is following.

Copied!
        {
"followingManuals": {
"canCreateNew": true,
"manuals": [
{
"isFollowing": true,
"isPublished": true,
"canEdit": false,
"isDraft": false,
"articleCount": 5,
"isAdmin": false,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Started Guide",
"canPublish": false,
"canFollow": true,
"canDelete": false,
"id": 3000000020001,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
},
{
"isFollowing": false,
"isPublished": false,
"canEdit": true,
"isDraft": true,
"articleCount": 8,
"isAdmin": true,
"type": "MANUAL",
"url": "/portal/zillium/manual/getting-started-guide",
"formatedTime": "Mar 20, 2026 10:30 AM",
"name": "Getting Smith",
"canPublish": true,
"canFollow": false,
"canDelete": true,
"id": 3000000020002,
"desc": "A comprehensive guide for new users",
"status": "ACTIVE"
}
]
}
}
    
Show full

Retrieves groups that have the manuals feature enabled.

Returns groups where the manuals feature is active.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/manualGroups

Scope

ZohoPulse.pagelist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

doActionsBoolean

If true, includes available actions for each group.

fetchCategoryBoolean

If true, includes category data.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/manualGroups?scopeID=3000000000008' \
--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.

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

resultString

'success' on success.

canPublishInCompanyBoolean

True if the caller can publish manuals in the company wall.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Manual-enabled groups returned.

Copied!
        {
"partitions": [
{
"name": "Engineering",
"id": 3000000010001,
"type": "GROUP",
"url": "engineering"
},
{
"name": "Engineering 2",
"id": 3000000010002,
"type": "GROUP",
"url": "engineering"
}
],
"result": "success",
"canPublishInCompany": true
}
    
Show full

Archives, unarchives, or disables a manual.

Changes the status of a manual. You must be a manual admin with permission to manage it and have the required license. - Set isarchive=true to archive the manual. - Set both isarchive=true and isdisable=true to disable the manual. - To unarchive the manual, remove isarchive when the current status is Archive or Disable.

Rate limit: 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/changePartitionStatus

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
islockBoolean

If true, locks the partition (GROUP only). Members can view but cannot post.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition (group/townhall/manual/board) ID. Required.

isdisableBoolean

If true (together with isarchive=true), disables the partition instead of archiving it.

isarchiveBoolean

If true, archives (or disables if isdisable is also true) the partition.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
changePartitionStatusJSON Object

Inner changePartitionStatus object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Manual successfully unarchived / reactivated (all boolean flags omitted).

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

Manual successfully archived (isarchive=true).

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

Returned when the caller lacks permission, insufficient license, or the partition does not exist.

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

Permanently deletes (trashes) a manual.

Deletes a manual. You must be a scope admin or manual admin with manage permissions. The manual and its articles are trashed. Returns result=success on success, or result=failure with a reason on error.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deletePartition

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required.

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

Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deletePartitionJSON Object

Inner deletePartition object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returned when the caller is not a manual/scope admin or lacks the network role permission.

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

Manual successfully deleted (trashed).

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

Retrieve posts from a town hall.

Returns a paginated list of posts in a town hall. You can filter by post type, sort the results, choose a view mode, control comment view, search by keyword, and paginate through the list.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/townhallStreams

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (epoch ms).

keywordIdLong

Filter by keyword (tag) ID.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Townhall URL slug.

partitionIdLong

Townhall ID.

sortTypeString
Allowed value:(matches: ^(createdTimeAsc|createdTimeDesc|mostUpvoted|recentActivity)$)

Sort order for results.

commentViewString
Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$)

Comment ordering — THREAD or RECENT.

viewTypeString
Allowed value:(matches: ^(default|twoColumn)$)

View mode — e.g. list, grid.

filterTypeString
Allowed value:(matches: ^(unanswered|answered|all|townhallPolls|townhallAnnouncements)$)

Filter by townhall post type.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/townhallStreams?scopeID=3000000000008&partitionId=3000000080010' \
--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 townhall 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

Townhall posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012010,
"content": "CEO Q&A Session"
},
{
"streamType": "STATUS",
"streamId": 3000000012011,
"content": "CEO Q&A Session"
}
]
}
    
Show full

Retrieve bookmarked posts from town halls.

Retrieves a paginated list of town hall posts bookmarked by the authenticated user.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/bookmarkedTownhallStreams

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor (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/bookmarkedTownhallStreams?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 townhall 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 townhall posts returned.

Copied!
        {
"modifiedTime": 1711000000000,
"streams": [
{
"streamType": "STATUS",
"streamId": 3000000012011,
"content": "Bookmarked townhall post"
},
{
"streamType": "STATUS",
"streamId": 3000000012012,
"content": "Bookmarked townhall post"
}
]
}
    
Show full

Archive, unarchive, or disable a town hall.

Changes the status of a town hall. You must be a town hall admin with manage permission to do this. - To archive a town hall, set isarchive=true. You can do this only after the event end time. - To disable a town hall, set both isarchive=true and isdisable=true. - To unarchive a town hall, omit isarchive when the current status is ARCHIVE or DISABLE.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/changePartitionStatus

Scope

ZohoPulse.grouplist.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
islockBoolean

If true, locks the partition (GROUP only). Members can view but cannot post.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Partition (group/townhall/manual/board) ID. Required.

isdisableBoolean

If true (together with isarchive=true), disables the partition instead of archiving it.

isarchiveBoolean

If true, archives (or disables if isdisable is also true) the partition.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/changePartitionStatus?islock=true&scopeID=3000000000008&partitionId=3000000002143&isdisable=true&isarchive=true' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
changePartitionStatusJSON Object

Inner changePartitionStatus object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied', 'Insufficient license'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Townhall successfully archived (isarchive=true). Event must have ended.

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

Townhall successfully unarchived / reactivated (all boolean flags omitted).

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

Returned when the caller lacks permission, the townhall has not ended, or the partition does not exist.

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

Permanently deletes (trashes) a town hall.

Deletes a town hall. The caller must be a town hall admin with manage permissions. The town hall and its associated posts and broadcasts are trashed. Returns result=success on success, or result=failure with a reason on error.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deletePartition

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required.

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

Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deletePartitionJSON Object

Inner deletePartition object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Townhall successfully deleted (trashed).

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

Returned when the caller is not a townhall admin or lacks the network role permission.

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

Create a new event.

Creates a new event with title, description, location, start/end time, all-day flag, RSVP, reminder settings, invitees, recurrence configuration, logo, and event type. Supports posting to a specific group, private events, file attachments, and repetition rules (daily, weekly, monthly, yearly).

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addEvent

Scope

ZohoPulse.events.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Start month (1–12). Required.

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

End date (1–31).

canSendEmailBoolean

If true, sends email notifications to invitees.

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

Recurrence end year.

canPostInFeedBoolean

If true, posts the event in the group/network feed.

isPrivateBoolean

If true, creates a private event.

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

Event title. Max 3,000 characters. Required.

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

End year.

frequencyInteger

Recurrence frequency — 1: daily, 2: weekly, 3: monthly, 4: yearly.

allDayBoolean

If true, the event spans the entire day.

howOftenRepetitionInteger

Interval between recurrences (e.g. every 2 weeks).

monthOfYearInteger

Month of the year for yearly recurrence (1–12).

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

Recurrence end month (1–12).

dayOfWeekString
Allowed value:(matches: ^0?([1-7])$)

Days of the week for weekly recurrence (1=Sun, 7=Sat). Max 7.

fileIdsLong

Comma-separated attachment file IDs.

repeatRemDayString
Allowed value:(matches: ^(0|1|2|7)$)

Recurring event reminder — days before (0, 1, 2, or 7).

shareMembersLong

Member ZUIDs to share event with. Max 20.

logoTypeInteger

Event logo type.

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

Recurrence end date (1–31).

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

End minute (0–59).

intervalHourInteger

Reminder hour-of-day for all-day events (0–23).

partitionIdLong

Group ID. Omit for network feed.

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

Start year (e.g. 2026). Required.

intervalMinuteInteger

Reminder minute interval — 5, 15, 30, 60, or 120 minutes before.

invitedGroupsLong

Group IDs to invite. Max 20.

invitedMembersLong

Member ZUIDs to invite. Max 20.

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

Recurring event reminder — hour of day (0–23).

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

Start minute (0–59). Omit for all-day events.

isRsvpBoolean

If true, RSVP is enabled for the event.

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

End hour (0–23).

eventTypeIdLong

Event type ID for categorization.

repeatRemTypeString
Allowed value:(matches: 0|1)

Recurring event reminder type — 0: none, 1: enabled.

dayOfMonthInteger

Day of the month for monthly recurrence (1–31).

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

Start hour (0–23). Omit for all-day events.

repeatWeekTypeInteger

Week type for monthly recurrence (e.g. first, second, last week).

intervalDayInteger

Reminder day interval — 0, 1, 2, or 7 days before.

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

Event location. Max 250 characters.

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

End month (1–12).

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

Start date (1–31). Required.

logoIdLong

Event logo image ID.

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

Event description. Max 10,000 characters.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addEvent?scopeID=3000000000008&startMonth=5&endDate=17&canSendEmail=true&canPostInFeed=true&title=Team Offsite 2026&endYear=2026&endMin=0&partitionId=3000000256092&startYear=2026&startMin=0&isRsvp=true&endHour=18&startHour=9&location=Mountain Retreat Center, Colorado&endMonth=5&startDate=15&desc=Annual team offsite at the mountain retreat.' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

Created event object with event metadata.

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

Event created successfully

Sample Response: HTTP 200

Event created successfully.

Copied!
        {
"addEvent": {
"stream": {
"partition": {
"name": "Engineering",
"id": 3000000256092,
"type": "GROUP"
},
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000075001,
"canComment": "true",
"type": "EVENT",
"title": "Team Offsite 2026",
"content": "Annual team offsite at the mountain retreat.",
"status": "ACTIVE"
}
}
}
    
Show full

Update an existing event.

Updates event fields including title, description, location, start/end time, all-day flag, RSVP, reminder settings, invitees, file attachments, logo, event type, and group. Supports file upload for event logo image.

Rate limited to 25 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateEvent

Scope

ZohoPulse.events.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Event ID to update. Required.

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

Updated start month (1–12).

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

Updated end date (1–31).

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

Updated event title. Max 3,000 characters.

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

Updated end year.

removedFileIdsLong

File IDs to remove.

deleteMemInviteesLong

Member invitee ZUIDs to remove.

allDayBoolean

If true, the event spans the entire day.

fileIdsLong

File IDs to attach.

shareMembersLong

Member ZUIDs to share with.

logoTypeInteger

Event logo type.

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

Updated end minute (0–59).

intervalHourInteger

Reminder hour-of-day for all-day events (0–23).

partitionIdLong

Move event to a different group.

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

Updated start year (e.g. 2026).

intervalMinuteInteger

Reminder minute interval — 5, 15, 30, 60, or 120 minutes before.

invitedGroupsLong

Group IDs to invite.

invitedMembersLong

Member ZUIDs to invite.

reorderFileIdsLong

File IDs in desired display order.

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

Updated start minute (0–59).

deleteGrpInviteesLong

Group invitee IDs to remove.

isRsvpBoolean

If true, RSVP is enabled for the event.

versionInteger

API version hint.

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

Updated end hour (0–23).

eventTypeIdLong

Change the event type ID.

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

Updated start hour (0–23).

deletesharedMembersLong

Shared member ZUIDs to remove.

intervalDayInteger

Reminder day interval — 0, 1, 2, or 7 days before.

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

Updated event location. Max 250 characters.

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

Updated end month (1–12).

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

Updated start date (1–31).

logoIdLong

Event logo image ID.

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

Updated event description. Max 10,000 characters.

- Request Body

multipart/form-data
PARAM NAMEDATA TYPEDESCRIPTION
eventLogoImageBinary

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateEvent?scopeID=3000000000008&streamId=3000000075001&title=Team Offsite 2026 (Updated)&startMin=30&isRsvp=true&startHour=10&location=Mountain Retreat Center, Denver CO' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: multipart/form-data'
Show full

Sample Request Body

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
streamJSON Object

Updated event object with event metadata.

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

Event updated successfully

Sample Response: HTTP 200

Event updated successfully.

Copied!
        {
"updateEvent": {
"stream": {
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000075001,
"canComment": "true",
"type": "EVENT",
"title": "Team Offsite 2026 (Updated)",
"content": "Annual team offsite at the mountain retreat.",
"status": "ACTIVE"
}
}
}
    
Show full

Retrieve a single event by ID or URL.

Retrieve a single event with its comments, and full metadata. Shares the same response shape as singleStream.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/singleEventStream

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
streamUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Post URL slug (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)$)

Post type filter.

needAllCommentsBoolean

If true, return all comments (ignores commentLimit).

streamIdLong

Post ID.

isRecentBoolean

Return only recent comments.

commentViewString
Allowed value:(matches: ^(THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)$)

Comment ordering — THREAD or RECENT.

commentLimitInteger

Max comments to return.

isThreadBoolean

Return threaded comments.

includeUnapprovedBoolean

Include unapproved comments (for moderators).

versionInteger

API version hint.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/singleEventStream?scopeID=3000000000008&streamId=3000000012006' \
--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 event with metadata, RSVP, timing, and comments.

Copied!
        {
"stream": {
"comments": [
{
"author": {
"name": "Jane Smith",
"hasCustomImg": true,
"zuid": 700000002
},
"id": 3000000080001,
"content": "Looking forward to this!"
}
],
"canLike": "true",
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"canEdit": true,
"link": {
"linkurl": "https://connect.zoho.com/portal/intranet/event/3000000012006?isNative=true",
"title": "Team Building Activity",
"desc": "Outdoor team building activity for the engineering group."
},
"type": "EVENT",
"commentCount": 1,
"partition": {
"name": "Engineering",
"id": 3000000008501,
"type": "GROUP",
"url": "engineering"
},
"canDelete": true,
"id": 3000000012006,
"canComment": "true",
"event": {
"streamId": 3000000012006,
"formattedEndTime": "Mar 22, 2025 05:20 PM",
"canRSVP": "true",
"invitedUserCount": 10,
"shortTitle": "Team Building Activity",
"title": "Team Building Activity",
"type": "EVENT",
"yesCount": 5,
"formattedStartTime": "Mar 22, 2025 02:33 PM",
"noCount": 1,
"location": "Mountain Retreat Center, Colorado",
"startTime": 1711100000000,
"endTime": 1711110000000,
"logoType": 2,
"isRSVPAllowed": true,
"desc": "Outdoor team building activity for the engineering group."
},
"status": "ACTIVE"
}
}
    
Show full

Retrieve upcoming events from the network or a specific group.

Returns upcoming event objects with metadata including title, location, RSVP status, start/end time, and event type. Supports calendar-view mode, partition-scoped queries, time-range filtering, and pagination. Optionally returns townhall events and repeating events.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/upcomingEvents

Scope

ZohoPulse.events.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

isDashboardBoolean

If true, returns dashboard-optimized event data.

partitionUrlString
Allowed value:(matches: ^[0-9a-zA-Z\-\%\P{InBasicLatin}]+$)

Partition URL slug. Used to resolve the partition if partitionId is not provided.

partitionIdLong

Group ID. Omit for network-wide events.

partitionTypeInteger

Partition type filter (e.g. GROUP, TOWNHALL).

versionInteger

API version hint.

eventTypeIdsLong

Comma-separated event type IDs to filter.

pageIndexInteger

Page index for pagination.

limitInteger

Max events to return. Range: 1–300.

selectedPartIdsLong

Comma-separated partition IDs to filter events from specific groups.

startTimeLong

Lower-bound epoch ms — return events starting from this time.

isDescBoolean

If true, returns events in descending order.

endTimeLong

Upper-bound epoch ms — return events ending before this time.

sharedWithMeBoolean

If true, returns only events shared with the current user.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/upcomingEvents?scopeID=3000000000008&limit=20&startTime=1710900000000&endTime=1713492000000' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for subsequent requests.

repetitionEventsJSON Array

Array of repeating event objects (calendar view only).

dateString

Event date key from events map (format: M-d-yyyy).

streamIdLong

Post ID for the event.

formattedEndTimeString

Formatted end time. Absent for all-day events.

startMonthInteger

Start month (1-12).

endDateInteger

End day of month (conditional).

canEditBoolean

Whether user can edit (conditional).

canRSVPString

String 'true' when RSVP is enabled (absent otherwise).

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Post type (EVENT, SHOWTIME_EVENT, etc.).

endYearInteger

End year (conditional).

isAllDayString

String 'true' for all-day events (absent otherwise).

partitionJSON Object

Partition object (conditional — present for non-MEMBER partitions).

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

endDayInteger

End day of week (conditional).

startTimeLong

Event start epoch ms.

canDeleteBoolean

Whether user can delete (conditional).

logoTypeInteger

Logo type identifier.

endMinInteger

End minute (conditional).

startDayInteger

Start day of week (1=Sun..7=Sat).

startYearInteger

Start year.

isStartedString

String 'true' when event has started (absent otherwise).

startMinInteger

Start minute (0-59).

userDetailsJSON Object

Event author object.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

endHourInteger

End hour (conditional).

formattedStartTimeString

Formatted start time (e.g. '09:00 AM'). Absent for all-day events.

startHourInteger

Start hour (0-23).

locationString

Event location (conditional).

endTimeLong

Event end epoch ms (conditional).

isExpiredString

String 'true' when event has ended (absent otherwise).

endMonthInteger

End month (conditional).

logoIdLong

Logo image ID (conditional).

startDateInteger

Start day of month.

descString

Event description (conditional).

eventsJSON Array

Array of upcoming event objects.

dateString

Event date key from events map (format: M-d-yyyy).

streamIdLong

Post ID for the event.

formattedEndTimeString

Formatted end time. Absent for all-day events.

startMonthInteger

Start month (1-12).

endDateInteger

End day of month (conditional).

canEditBoolean

Whether user can edit (conditional).

canRSVPString

String 'true' when RSVP is enabled (absent otherwise).

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Post type (EVENT, SHOWTIME_EVENT, etc.).

endYearInteger

End year (conditional).

isAllDayString

String 'true' for all-day events (absent otherwise).

partitionJSON Object

Partition object (conditional — present for non-MEMBER partitions).

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

endDayInteger

End day of week (conditional).

startTimeLong

Event start epoch ms.

canDeleteBoolean

Whether user can delete (conditional).

logoTypeInteger

Logo type identifier.

endMinInteger

End minute (conditional).

startDayInteger

Start day of week (1=Sun..7=Sat).

startYearInteger

Start year.

isStartedString

String 'true' when event has started (absent otherwise).

startMinInteger

Start minute (0-59).

userDetailsJSON Object

Event author object.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

endHourInteger

End hour (conditional).

formattedStartTimeString

Formatted start time (e.g. '09:00 AM'). Absent for all-day events.

startHourInteger

Start hour (0-23).

locationString

Event location (conditional).

endTimeLong

Event end epoch ms (conditional).

isExpiredString

String 'true' when event has ended (absent otherwise).

endMonthInteger

End month (conditional).

logoIdLong

Logo image ID (conditional).

startDateInteger

Start day of month.

descString

Event description (conditional).

townhallsJSON Array

Array of townhall event objects (network-level only, native API).

dateString

Event date key from events map (format: M-d-yyyy).

streamIdLong

Post ID for the event.

formattedEndTimeString

Formatted end time. Absent for all-day events.

startMonthInteger

Start month (1-12).

endDateInteger

End day of month (conditional).

canEditBoolean

Whether user can edit (conditional).

canRSVPString

String 'true' when RSVP is enabled (absent otherwise).

shortTitleString

Truncated event title.

titleString

Event title.

typeString

Post type (EVENT, SHOWTIME_EVENT, etc.).

endYearInteger

End year (conditional).

isAllDayString

String 'true' for all-day events (absent otherwise).

partitionJSON Object

Partition object (conditional — present for non-MEMBER partitions).

nameString

Partition name.

idLong

Partition ID.

typeString

Partition type — GROUP, TOWNHALL, CHANNEL, etc.

urlString

Partition URL.

endDayInteger

End day of week (conditional).

startTimeLong

Event start epoch ms.

canDeleteBoolean

Whether user can delete (conditional).

logoTypeInteger

Logo type identifier.

endMinInteger

End minute (conditional).

startDayInteger

Start day of week (1=Sun..7=Sat).

startYearInteger

Start year.

isStartedString

String 'true' when event has started (absent otherwise).

startMinInteger

Start minute (0-59).

userDetailsJSON Object

Event author object.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

endHourInteger

End hour (conditional).

formattedStartTimeString

Formatted start time (e.g. '09:00 AM'). Absent for all-day events.

startHourInteger

Start hour (0-23).

locationString

Event location (conditional).

endTimeLong

Event end epoch ms (conditional).

isExpiredString

String 'true' when event has ended (absent otherwise).

endMonthInteger

End month (conditional).

logoIdLong

Logo image ID (conditional).

startDateInteger

Start day of month.

descString

Event description (conditional).

Possible HTTP Status Codes

HTTP CodeDescription
200

Upcoming events retrieved successfully

Sample Response: HTTP 200

Upcoming events retrieved successfully.

Copied!
        {
"upcomingEvents": {
"modifiedTime": 1710900000000,
"events": [
{
"date": "5-15-2026",
"streamId": 3000000075001,
"startMonth": 5,
"startDay": 5,
"canEdit": true,
"canRSVP": "true",
"startYear": 2026,
"shortTitle": "Team Offsite 2026",
"title": "Team Offsite 2026",
"type": "EVENT",
"startMin": 0,
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"formattedStartTime": "09:00 AM",
"startHour": 9,
"location": "Mountain Retreat Center, Colorado",
"startTime": 1747299600000,
"canDelete": true,
"endTime": 1747386000000,
"logoType": 2,
"startDate": 15
},
{
"date": "5-20-2026",
"streamId": 3000000075010,
"formattedEndTime": "03:00 PM",
"startMonth": 5,
"startDay": 3,
"canEdit": true,
"startYear": 2026,
"shortTitle": "Sprint Planning",
"title": "Sprint Planning",
"type": "EVENT",
"startMin": 0,
"userDetails": {
"name": "Jane Smith",
"hasCustomImg": false,
"zuid": 700000002
},
"formattedStartTime": "02:00 PM",
"partition": {
"name": "Engineering",
"id": 3000000256092
},
"startHour": 14,
"startTime": 1747731600000,
"endTime": 1747735200000,
"isExpired": "true",
"logoType": 0,
"startDate": 20
}
]
}
}
    
Show full

Delete an event from the feed.

Deletes the specified event. The shared URL block also covers deleteShowtimeEvent and deleteConference actions.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteEvent

Scope

ZohoPulse.events.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Event ID to delete. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/deleteEvent?scopeID=3000000000008&streamId=3000000075001' \
--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

Event deleted successfully

Sample Response: HTTP 200

Event deleted successfully.

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

Start a video conference in a group and notify invitees.

Start a video conference in the specified group and notify the invited users.

Rate limited to 50 requests per minute.

Request URL

https://ServerDomain/pulse/api/startVideoConf

Scope

ZohoPulse.feedList.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID. Required.

inviteesMandatoryLong

Comma-separated ZUIDs of invited users. Max 10. Required.

sessionIdMandatoryLong

Video conference session ID. Required.

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

Conference title.

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

Video conference URL. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/startVideoConf?scopeID=3000000000008&partitionId=3000000070001&invitees=60012345678,60012345679&sessionId=9000000001&title=Team Sync&url=https://meet.zoho.com/abc123' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
reasonString

Error reason. Only present on failure.

STATUSString

'success' or 'failure'.

streamIdLong

ID of the created VIDEO_CONFERENCE post.

TITLEString

Conference title. Only present when provided.

INVITEESJSON Array

Array of invited user ZUIDs (long values).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Video conference started.

Copied!
        {
"STATUS": "success",
"streamId": 3000000070001,
"TITLE": "Team Sync",
"INVITEES": [
60012345678,
60012345679
]
}
    
Show full

Stop an active video conference.

Stop the specified active video conference.

Rate limited to 50 requests per minute.

Request URL

https://ServerDomain/pulse/api/stopVideoConference

Scope

ZohoPulse.feedList.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Video conference post ID to stop. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
STATUSString

'FAILURE' on failure.

messageString

Error message. Only present on failure.

statusString

'SUCCESS' on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Video conference stopped.

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

Retrieve user details for a broadcast post.

Returns broadcast-specific user details for the specified post.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/broadcastUserDetails

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Broadcast post ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

success

isScheduledConferenceBoolean

Whether this is a scheduled conference.

isConfOverBoolean

Whether the broadcast/conference has ended.

chatletMapIdLong

Chatlet mapping ID. Present only if a chatlet exists for this broadcast.

userOTPString

RTC user OTP. Present only while conference is active.

confkeyString

Conference key (integrated entity ID). Present only if conference has an RTC key.

userIdString

RTC user ID. Present only while conference is active.

chidString

WMS chatlet ID. Present only if a chatlet exists.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns broadcast user details including conference status and RTC credentials.

Copied!
        {
"result": "success",
"isScheduledConference": false,
"isConfOver": false,
"chatletMapId": 3000000090001,
"userOTP": "a1b2c3d4",
"confkey": "RTCP-1234567890",
"userId": "RT_1_10001001",
"chid": "WMS-9001"
}
    
Show full

Retrieve attendees of a broadcast post.

Returns the list of attendees for the specified broadcast post. Supports incremental sync via modifiedTime parameter.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/broadcastAttendees

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Timestamp for incremental sync. Returns only attendees modified after this time.

scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Broadcast post ID. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/broadcastAttendees?modifiedTime=1742464200000&scopeID=3000000000008&streamId=3000000045001' \
--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 attendees data. Present only for scope admins or creators with export permission.

resultString

success

modifiedTimeLong

Last modified timestamp for pagination. Present only when attendees count reaches the limit.

usersDetailsJSON Array

Array of attendee user objects.

isFollowingBoolean

Whether the caller follows this user.

roleString

Member role in broadcast (e.g. PRESENTER).

formattedViewedTimeString

Formatted view timestamp.

hasCustomImgBoolean

Whether user has a custom profile image.

mobileString

Mobile number.

emailIdString

Email ID. Admin-only.

typeString

Member type.

formattedFirstViewedTimeString

Formatted first view timestamp.

zuidLong

Zoho User ID.

workLocationString

Work location. Admin-only.

firstViewedTimeLongLong

Timestamp of first view.

seatingLocationString

Seating location. Admin-only.

imageUrlString

Profile image URL.

nameString

Display name.

canFollowBoolean

Whether the caller can follow this user.

viewedTimeLongLong

Timestamp of when attendee last viewed the broadcast.

idLong

User ID (same as zuid).

designationString

Designation.

departmentString

Department.

statusString

Member status.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns attendees in usersDetails array with user profile fields.

Copied!
        {
"canExport": true,
"result": "success",
"usersDetails": [
{
"isFollowing": false,
"role": "PRESENTER",
"formattedViewedTime": "Mar 20, 2025 11:15 AM",
"name": "John Smith",
"hasCustomImg": true,
"canFollow": true,
"viewedTimeLong": 1742464500000,
"id": 10001001,
"designation": "Senior Developer",
"department": "Engineering",
"zuid": 10001001,
"status": "ACTIVE"
},
{
"name": "Jane Doe",
"id": 10001002,
"zuid": 10001002,
"status": "ACTIVE"
}
]
}
    
Show full

Update the invited members and groups for a broadcast.

Updates the invitee list for a broadcast post. Accepts up to 20 member ZUIDs and up to 20 group IDs. Returns result=success on success, or throws error.

Rate limited to 30 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBroadcastInvitees

Scope

ZohoPulse.events.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Broadcast post ID. Required.

invitedGroupsLong

Comma-separated group IDs of invited groups. Max 20.

invitedMembersLong

Comma-separated ZUIDs of invited members. Max 20.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBroadcastInvitees?scopeID=3000000000008&streamId=3000000045001&invitedGroups=3000000256092&invitedMembers=10001001,10001002' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
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

Broadcast invitees updated successfully.

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

Creates a new forum post, either published or as a draft.

Creates a new forum post in the network. If isPublished is true, the post is published immediately, or saved as a draft. You can also assign categories, disable comments, or choose comment settings. If successful, returns result=success with the post ID, URL, title, and saved time. If it fails, returns result=failure with the reason.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/addBlog

Scope

ZohoPulse.blogs.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

categoryIDsLong

Comma-separated forum-category IDs. Max 10.

isPublishedBoolean

If true, publishes the post immediately. If false (default), saves as draft.

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

Forum post title. 1–255 characters.

contentString

Forum post body content (HTML). Max 1,000,000 characters.

disableCommentsBoolean

If true, disables all comments on the forum post.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/addBlog?scopeID=3000000000008&categoryIDs=3000000012001,3000000012002&isPublished=true&title=Getting Started with Zoho Connect&content=<p>Welcome to our first forum post!</p>&disableComments=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
addBlogJSON Object

Merged success + error response for addBlog

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

streamJSON Object

Full post object (via constructStream). Only present when isPublished=true.

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.

savedTimeString

Formatted save/publish time. Present on success.

errorCodeString

Machine-readable error code (e.g. BLOG_CATEGORY_MANDATORY). Present on failure.

idString

Forum post post ID (long as string). Present on success.

titleString

Forum post title. Returns 'Untitled' if no title was provided. Present on success.

urlString

URL path of the new forum post. Present on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Forum post published successfully.

Copied!
        {
"addBlog": {
"result": "success",
"savedTime": "Mar 20, 2026 10:30 AM",
"id": "3000000015001",
"title": "Getting Started with Zoho Connect",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect"
}
}
            
Show full

Returned when forum categories are mandatory but none were provided.

Copied!
        {
"addBlog": {
"result": "failure",
"reason": "Blog category is mandatory",
"errorCode": "BLOG_CATEGORY_MANDATORY"
}
}
            
Show full

Updates the title, content, categories, or comment settings of an existing forum post.

Updates an existing forum post. Only the author can make changes. If successful, returns result=success along with the updated post ID, URL, and saved time. If it fails, returns result=failure with the reason.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBlog

Scope

ZohoPulse.blogs.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

categoryIDsLong

Comma-separated forum-category IDs. Max 10.

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

Updated forum post title. Max 1000 characters.

blogIdMandatoryLong

Forum post ID to update. Required.

contentString

Updated forum post body content (HTML). Max 1,000,000 characters.

disableCommentsBoolean

If true, disables all comments on the forum post.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateBlog?scopeID=3000000000008&categoryIDs=3000000012001&title=Updated Forum Post Title&blogId=3000000015001&content=<p>Updated content here.</p>&disableComments=false' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
updateBlogJSON Object

Merged success + error response for updateBlog

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

savedTimeString

Formatted save time. Present on success.

errorCodeString

Machine-readable error code. Present on failure.

idString

Forum post post ID (long as string). Present on success.

urlString

URL path of the updated forum post. Present on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Forum post updated successfully.

Copied!
        {
"updateBlog": {
"result": "success",
"savedTime": "Mar 20, 2026 11:00 AM",
"id": "3000000015001",
"url": "/portal/zillium/forum/post/updated-forum-post-title"
}
}
            
Show full

Returned when the caller lacks permission to update.

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

Publishes an existing draft forum post.

Publishes a forum post that was saved as a draft.. On success, returns result=success and the published post URL. On failure, throws a general error.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/publishBlog

Scope

ZohoPulse.blogs.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

blogIdMandatoryLong

Forum post ID to publish. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
publishBlogJSON Object

Merged success + error response for publishBlog

resultString

Result status — 'success' or 'failure'.

reasonString

Human-readable error message. Present on failure.

urlString

URL path of the published forum post. Present on success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Forum post published successfully.

Copied!
        {
"publishBlog": {
"result": "success",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect"
}
}
            
Show full

Returned when the blogId is invalid or the post cannot be published.

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

Retrieve a single forum post with full details, comments, and attachments.

Returns a single forum post by ID or URL slug, including HTML content, author, comments (with thread/recent/pinned views), tags, attachments, reactions, and permission flags. Lookup is by blogId or url — provide one or the other. Comments are fetched by default (fetchComment=true). Use commentView to control comment ordering.

Rate limited to 30 requests per second.

Request URL

https://ServerDomain/pulse/api/singleBlog

Scope

ZohoPulse.blogs.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

commentViewString
Allowed value:(matches: THREAD|RECENT|MOSTDISCUSSED|MOSTREACTED)

Comment view mode — THREAD, RECENT, MOSTDISCUSSED, or MOSTREACTED.

commentIdLong

Comment ID to highlight in the response.

fetchCommentBoolean

Whether to fetch comments. Defaults to true.

blogIdLong

Forum post ID. Provide either blogId or url.

versionInteger

API version hint. Use 2 for structured comment responses.

convertVideoTagBoolean

If true, converts embedded video tags for native rendering.

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

Forum post URL slug. Provide either blogId or url.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
singleBlogJSON Object

Inner singleBlog wrapper containing the blog object

blogJSON Object

Forum post object with full details.

isBookmarkedBoolean

true if the current user has bookmarked this post.

isDraftString

'true' if the post is a draft.

streamModifiedTimeInteger

Last modification timestamp.

likeCountInteger

Number of likes. Present when > 0.

isScheduledString

'true' if the post is scheduled.

typeString

Post type — always 'BLOG'.

canPinPostBoolean

true if the user can pin this post.

canShowPostSummaryString

'true' if AI post summary is available.

isLockedBoolean

true if comments are disabled on this post.

createdTimeInteger

Creation timestamp in milliseconds.

canDeleteString

'true' if the current user can delete this post.

idInteger

Forum post ID.

canCommentString

'true' if the current user can comment.

isMustReadBoolean

true if marked as mandatory read.

canShowInsightBoolean

true if the Post Insight feature is available.

canMarkAsReadLaterString

'true' if the post can be marked as read-later.

canReportSpamString

'true' if the user can report this post as spam.

canSharePostString

'true' if the post can be shared.

isRecentViewBoolean

true when comments are in recent view.

isLikedString

'true' if the current user has liked this post.

userDetailsJSON Object

Author details.

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

commentCountInteger

Number of comments. Present when > 0.

isPinnedPostBoolean

true if the post is pinned.

tagsJSON Array

Array of tags on this post.

tagnameString

Tag name.

postCountString

Number of posts with this tag.

formatedTimeString

Human-readable formatted creation time.

reactionTypeString

Current user's reaction type (e.g. LIKE, HEART). Present when isLiked is true.

linkurlString

Full permalink URL of the post.

module_nameString

Module name — 'BLOGS'.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, DELETED.

canTranslateBoolean

true if content translation is available.

attachmentsJSON Array

Array of file attachments.

isImageBoolean

true if the attachment is an image.

extensionString

File extension.

sizeString

Human-readable file size.

nameString

File name.

storageTypeString

Storage type — UDS or ZFS.

timeString

Formatted upload time.

contentTypeString

MIME content type.

fileIdString

Attachment file ID.

canLikeString

'false' when liking is not allowed (e.g. unapproved post). Absent when liking is allowed.

canMarkAsMustReadString

'true' if the user can mark this post as mandatory read.

uniqueViewCountInteger

Unique viewer count. Present when > 0 and viewer has permission.

isReadLaterString

'true' if marked as read-later by the current user.

canEditString

'true' if the current user can edit this post.

titleString

Forum post title.

contentString

Forum post HTML content.

isThreadViewBoolean

true when comments are in thread view.

canModerateBoolean

true if the user can moderate this unapproved post.

canFollowString

'true' if the current user can follow this post.

isNotifDisabledBoolean

true if notifications are disabled for this post by the current user.

viewCountInteger

Total view count. Present when > 0.

isApprovedString

'false' when the post is pending moderation approval.

isFollowingString

'true' if the current user is following this post.

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.

isPublishedString

'false' when the post is not yet active/published.

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.

urlString

URL slug of the forum post.

hasHistoryString

'true' if the post has been edited.

reactionsJSON Array

Most used reaction types with counts.

reactionTypeJSON Object

Reaction type details.

countInteger

Number of users with this reaction.

typeString

LikeType enum (LIKE, LOVE, etc.).

timeInteger

Same as createdTime.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Forum post retrieved successfully with comments and tags.

Copied!
        {
"singleBlog": {
"blog": {
"attachments": [],
"canEdit": "true",
"streamModifiedTime": 1742464200000,
"likeCount": 5,
"type": "BLOG",
"title": "Getting Started with Zoho Connect",
"content": "<p>Welcome to our first forum post!</p>",
"canShowPostSummary": "true",
"createdTime": 1742464200000,
"canFollow": "true",
"canDelete": "true",
"id": 3000000015001,
"viewCount": 150,
"canComment": "true",
"canShowInsight": true,
"canMarkAsReadLater": "true",
"isFollowing": "true",
"comments": [],
"userDetails": {
"name": "Vignesh Thangavel",
"hasCustomImg": true,
"zuid": 15065799
},
"url": "getting-started-with-zoho-connect",
"commentCount": 3,
"tags": [
{
"tagname": "getting-started",
"postCount": 1
}
],
"formatedTime": "Mar 20, 2026 10:30 AM",
"linkurl": "https://connect.zoho.com/portal/zillium/forum/post/getting-started-with-zoho-connect",
"time": 1742464200000,
"module_name": "BLOGS",
"status": "ACTIVE"
}
}
}
    
Show full

Fetches a paginated list of recent forum posts.

Gets a list of recent forum posts in the network, with an option to filter by category. Returns post details such as author, creation time, title, URL, status, likes, and comment count. Supports pagination using paginationFetchTime.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/recentBlogs

Scope

ZohoPulse.blogs.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

isDashboardBoolean

If true, includes dashboard-specific data (excerpt, attachments). Defaults to false.

pageIndexInteger

Zero-based page index for offset pagination. Defaults to 0.

limitInteger

Maximum number of forum posts to return per page. Range 1–200.

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

Forum-category URL slug to filter by. If provided (and categoryId is empty), resolves to a category ID internally.

lastBlogCreatedTimeLong

Cursor: created-time of the last forum post on the previous page. Used for cursor-based pagination.

paginationFetchTimeLong

Alternative cursor field (takes precedence over lastBlogCreatedTime if both provided).

categoryIdLong

Comma-separated forum-category IDs to filter by. Max 100.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/recentBlogs?scopeID=3000000000008&isDashboard=false&pageIndex=0&limit=10&categoryUrl=general&lastBlogCreatedTime=1742464200000&paginationFetchTime=1742464200000&categoryId=3000000012001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
recentBlogsJSON Object

Inner recentBlogs object — forum post list with pagination

forumPartitionIdInteger

Forum partition ID for the network.

pageIndexString

Next page index for offset pagination. Present when there are more results.

blogsJSON Array

Array of forum post objects (flat — inner 'blog' key stripped by hasSimilarElements serialization).

formatedTimeString

Human-readable formatted creation time.

createdTimeInteger

Creation timestamp in milliseconds.

streamModifiedTimeInteger

Last modification timestamp.

idInteger

Forum post post ID.

timeInteger

Same as createdTime.

typeString

Post type — always 'BLOG'.

titleString

Forum post title.

urlString

URL path of the forum post.

statusString

Post status — ACTIVE, DRAFT, SCHEDULED, DELETED.

lastBlogCreatedTimeInteger

Created time of the last forum post (cursor for next page). Present in native API when more results exist.

paginationFetchTimeInteger

Pagination cursor (same value as lastBlogCreatedTime). Present when more results exist.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns a list of recent forum posts.

Copied!
        {
"recentBlogs": {
"forumPartitionId": 3000000001008,
"blogs": [
{
"formatedTime": "Mar 20, 2026 10:30 AM",
"createdTime": 1742464200000,
"streamModifiedTime": 1742464200000,
"id": 3000000015001,
"time": 1742464200000,
"type": "BLOG",
"title": "Getting Started with Zoho Connect",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect",
"status": "ACTIVE"
},
{
"formatedTime": "Mar 20, 2026 10:30 AM",
"createdTime": 1742550600000,
"streamModifiedTime": 1742550600000,
"id": 3000000015002,
"time": 1742550600000,
"type": "BLOG",
"title": "Getting Started with Zoho Connect (2)",
"url": "/portal/zillium/forum/post/getting-started-with-zoho-connect",
"status": "ACTIVE"
}
],
"paginationFetchTime": 1742464200000
}
}
    
Show full

Returns the current user's draft forum posts.

Gets draft forum posts created by the authenticated user. You can filter the results by category and paginate them as needed.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/myDraftBlogs

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

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

scopeIDLong

Network (scope) ID.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Number of posts per page.

paginationFetchTimeLong

Timestamp for delta pagination (epoch ms).

categoryIdLong

Filter by forum category ID.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/myDraftBlogs?modifiedTime=1742464200000&scopeID=3000000000008&pageIndex=0&limit=20&paginationFetchTime=1711000000000&categoryId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
forumPartitionIdLong

Forum partition ID for the network.

pageIndexInteger

Next page index. Present when more results exist.

blogsJSON Array

Array of draft forum post objects.

uniqueViewCountLong

Unique viewer count. Present only when > 0 and user has permission.

isDraftString

'true' if this is a draft. Conditional.

streamModifiedTimeLong

Last modification timestamp (epoch ms).

likeCountLong

Number of likes. Present only when > 0.

isScheduledString

'true' if this is scheduled. Conditional.

typeString

Post type — always 'BLOG'.

titleString

Forum post title.

canPinPostBoolean

True if caller can pin this post. Conditional.

canShowPostSummaryString

'true' if post summary available. Conditional.

canShowPostAuditBoolean

True if audit trail available. Conditional.

createdTimeLong

Creation timestamp (epoch ms).

idLong

Forum post post ID.

viewCountLong

Total view count. Present only when > 0.

categoriesJSON Array

Forum categories the post belongs to. Conditional.

isMustReadBoolean

True if marked mandatory read. Conditional.

canShareString

'true' if sharable. Conditional.

isLikedString

'true' if the caller liked this post. Conditional.

isNewBoolean

True if post is newer than user's last view. Conditional.

canShowHistoryBoolean

True if edit history available. Conditional.

userDetailsJSON Object

Author details (via constructAuthor).

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

urlString

URL slug of the forum post.

commentCountLong

Number of comments. Present only when > 0.

isPinnedPostBoolean

True if pinned. Conditional.

formatedTimeString

Human-readable formatted creation time.

reactionTypeString

Current user's reaction type. Conditional.

hasHistoryString

'true' if the post has been edited. Conditional.

reactionsJSON Array

Most used reaction types with counts. Conditional.

linkurlString

Full permalink URL of the post.

timeLong

Same as createdTime.

module_nameString

Always 'BLOGS'.

statusString

Post status: ACTIVE, DRAFT, SCHEDULED, DELETED.

paginationFetchTimeLong

Pagination cursor timestamp (epoch ms). Present when more results exist.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns blogs array with draft posts, forumPartitionId, and pagination fields.

Copied!
        {
"forumPartitionId": 3000000080001,
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 20, 2026 02:00 PM",
"id": 3000000090002,
"title": "Draft: New Feature Overview",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "draft-new-feature-overview",
"status": "DRAFT"
},
{
"formatedTime": "Mar 20, 2026 02:00 PM",
"id": 3000000090003,
"title": "Draft: New Feature Overview (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "draft-new-feature-overview",
"status": "DRAFT"
}
],
"paginationFetchTime": 1711000000000
}
    
Show full

Retrieves published forum posts by one or more users.

Returns active, published forum posts created by the specified users. You can filter the results by category, paginate using pageIndex and limit, and sync updates incrementally with paginationFetchTime.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/userActiveBlogs

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Number of posts per page.

userIdLong

User ZUID(s). Comma-separated, max 50.

paginationFetchTimeLong

Timestamp for delta pagination (epoch ms).

categoryIdLong

Filter by forum category ID.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userActiveBlogs?scopeID=3000000000008&pageIndex=0&limit=20&userId=60028305&paginationFetchTime=1711000000000&categoryId=3000000080001' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
forumPartitionIdLong

Forum partition ID for the network.

modifiedTimeLong

Same as lastBlogCreatedTime. Present on native API when more results exist.

pageIndexInteger

Next page index. Present when more results exist.

blogsJSON Array

Array of published forum post objects.

uniqueViewCountLong

Unique viewer count. Present only when > 0 and user has permission.

isDraftString

'true' if this is a draft. Conditional.

streamModifiedTimeLong

Last modification timestamp (epoch ms).

likeCountLong

Number of likes. Present only when > 0.

isScheduledString

'true' if this is scheduled. Conditional.

typeString

Post type — always 'BLOG'.

titleString

Forum post title.

canPinPostBoolean

True if caller can pin this post. Conditional.

canShowPostSummaryString

'true' if post summary available. Conditional.

canShowPostAuditBoolean

True if audit trail available. Conditional.

createdTimeLong

Creation timestamp (epoch ms).

idLong

Forum post post ID.

viewCountLong

Total view count. Present only when > 0.

categoriesJSON Array

Forum categories the post belongs to. Conditional.

isMustReadBoolean

True if marked mandatory read. Conditional.

canShareString

'true' if sharable. Conditional.

isLikedString

'true' if the caller liked this post. Conditional.

isNewBoolean

True if post is newer than user's last view. Conditional.

canShowHistoryBoolean

True if edit history available. Conditional.

userDetailsJSON Object

Author details (via constructAuthor).

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

urlString

URL slug of the forum post.

commentCountLong

Number of comments. Present only when > 0.

isPinnedPostBoolean

True if pinned. Conditional.

formatedTimeString

Human-readable formatted creation time.

reactionTypeString

Current user's reaction type. Conditional.

hasHistoryString

'true' if the post has been edited. Conditional.

reactionsJSON Array

Most used reaction types with counts. Conditional.

linkurlString

Full permalink URL of the post.

timeLong

Same as createdTime.

module_nameString

Always 'BLOGS'.

statusString

Post status: ACTIVE, DRAFT, SCHEDULED, DELETED.

lastBlogCreatedTimeLong

Created time of last blog. Present on native API when more results exist.

paginationFetchTimeLong

Pagination cursor timestamp (epoch ms). Present when more results exist.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns blogs array with active posts, forumPartitionId, and pagination fields.

Copied!
        {
"forumPartitionId": 3000000080001,
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 5,
"id": 3000000090001,
"viewCount": 150,
"title": "Getting Started Guide",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 3
},
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 8,
"id": 3000000090002,
"viewCount": 153,
"title": "Getting Started Guide (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 6
}
],
"paginationFetchTime": 1711000000000
}
    
Show full

Retrieves all forum posts (published and draft) by a specific user.

Retrieves forum posts created by a specific user. Supports pagination using pageIndex and limit.

Rate limited to 50 requests per minute.

Request URL

https://ServerDomain/pulse/api/userBlogs

Scope

ZohoPulse.userDetail.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

pageIndexInteger

Page index for pagination (0-based).

limitInteger

Number of posts per page.

userIdMandatoryLong

User ZUID whose forum posts to retrieve. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
pageIndexInteger

Next page index. Present when more results exist.

blogsJSON Array

Array of forum post objects (flat — inner 'blog' key stripped by hasSimilarElements).

uniqueViewCountLong

Unique viewer count. Present only when > 0 and user has permission.

isDraftString

'true' if this is a draft. Conditional.

streamModifiedTimeLong

Last modification timestamp (epoch ms).

likeCountLong

Number of likes. Present only when > 0.

isScheduledString

'true' if this is scheduled. Conditional.

typeString

Post type — always 'BLOG'.

titleString

Forum post title.

canPinPostBoolean

True if caller can pin this post. Conditional.

canShowPostSummaryString

'true' if post summary available. Conditional.

canShowPostAuditBoolean

True if audit trail available. Conditional.

createdTimeLong

Creation timestamp (epoch ms).

idLong

Forum post post ID.

viewCountLong

Total view count. Present only when > 0.

categoriesJSON Array

Forum categories the post belongs to. Conditional.

isMustReadBoolean

True if marked mandatory read. Conditional.

canShareString

'true' if sharable. Conditional.

isLikedString

'true' if the caller liked this post. Conditional.

isNewBoolean

True if post is newer than user's last view. Conditional.

canShowHistoryBoolean

True if edit history available. Conditional.

userDetailsJSON Object

Author details (via constructAuthor).

nameString

Author display name.

hasCustomImgBoolean

True if author has a custom profile image.

zuidLong

Author Zoho UID.

urlString

URL slug of the forum post.

commentCountLong

Number of comments. Present only when > 0.

isPinnedPostBoolean

True if pinned. Conditional.

formatedTimeString

Human-readable formatted creation time.

reactionTypeString

Current user's reaction type. Conditional.

hasHistoryString

'true' if the post has been edited. Conditional.

reactionsJSON Array

Most used reaction types with counts. Conditional.

linkurlString

Full permalink URL of the post.

timeLong

Same as createdTime.

module_nameString

Always 'BLOGS'.

statusString

Post status: ACTIVE, DRAFT, SCHEDULED, DELETED.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns blogs array with post details and pagination.

Copied!
        {
"pageIndex": 1,
"blogs": [
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 5,
"id": 3000000090001,
"viewCount": 150,
"title": "Getting Started Guide",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 3
},
{
"formatedTime": "Mar 15, 2026 10:30 AM",
"likeCount": 8,
"id": 3000000090002,
"viewCount": 153,
"title": "Getting Started Guide (2)",
"userDetails": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 60028305
},
"url": "getting-started-guide",
"status": "ACTIVE",
"commentCount": 6
}
]
}
    
Show full

Follows a forum category to receive updates.

Follows a specific forum category so the authenticated user receives updates when new posts are published. Returns result=success on success.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/followBlogCategory

Scope

ZohoPulse.feedList.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

categoryIdMandatoryLong

Forum category (tag) ID to follow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/followBlogCategory?scopeID=3000000000008&categoryId=3000000020001' \
--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

Category followed successfully.

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

Stops following a forum category.

Unfollows a specific forum category so the authenticated user no longer receives updates. Returns result=success on success.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/unfollowBlogCategory

Scope

ZohoPulse.feedList.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

categoryIdMandatoryLong

Forum category (tag) ID to unfollow. Required.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/unfollowBlogCategory?scopeID=3000000000008&categoryId=3000000020001' \
--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

Category unfollowed successfully.

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

Changes the status of an idea post.

Update the status of an idea post. Returns result=success.

Rate limited to 120 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateIdeaStatus

Scope

ZohoPulse.feedList.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

streamIdMandatoryLong

Idea post ID to update. Required.

statusIdMandatoryLong

New status ID to apply. Required.

isCustomBoolean

true if the status is a custom (non-built-in) status.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request POST \
--url 'https://connect.zoho.com/pulse/api/updateIdeaStatus?scopeID=3000000000008&streamId=3000000070001&statusId=3000000080001&isCustom=false' \
--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

Idea status updated.

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

Creates an idea post with categories.

Creates an idea post with a required title and optional categories. Ideas also support voting and reactions. You can assign categories using categoryIds.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/v2/addStream

Scope

ZohoPulse.feedList.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM 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

Idea feature not available on the current plan.

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

Idea post created with a category.

Copied!
        {
"addStream": {
"stream": {
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"canDelete": true,
"id": 3000000070005,
"canComment": "true",
"type": "IDEA",
"title": "Add dark mode to the mobile app",
"canVoteReact": "true",
"content": "It would be great to have a dark mode option for the mobile app to reduce eye strain.",
"status": "ACTIVE"
}
}
}
            
Show full

Updates an idea post's title, content, and categories.

Updates an idea post by modifying its title, content, and assigned categories.

Rate limited to 50 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateStream

Scope

ZohoPulse.feedList.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM 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

Idea post updated with new categories.

Copied!
        {
"result": "success",
"stream": {
"author": {
"name": "John Doe",
"hasCustomImg": true,
"zuid": 700000001
},
"canEdit": true,
"hasHistory": "true",
"canDelete": true,
"id": 3000000070005,
"canComment": "true",
"type": "IDEA",
"title": "Add dark mode to the mobile and desktop apps",
"canVoteReact": "true",
"content": "Extended idea: dark mode for both mobile and desktop.",
"status": "ACTIVE"
}
}
    
Show full

Re-enable notifications for a specific post.

Re-enables notifications for the specified post so the current user will receive alerts for activity on it again.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/enableStreamNotification

Scope

ZohoPulse.connectNotifications.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

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 POST \
--url https://connect.zoho.com/pulse/api/enableStreamNotification \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Disable notifications for a specific post.

Turns off notifications for the specified post so the current user will no longer receive alerts for activity on it.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/disableStreamNotification

Scope

ZohoPulse.connectNotifications.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

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 POST \
--url https://connect.zoho.com/pulse/api/disableStreamNotification \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Retrieve the current user's notification preferences.

Get notification preferences across general, groups, forums, and boards.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/getEmailNotifyDetails

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

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/getEmailNotifyDetails?scopeID=3000000000008' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
sharedBoardsJSON Array

Array of shared board references. Conditional.

partitionIdLong

Shared board partition ID.

getCliqBotPrefBoolean

true when Cliq bot notification DO is empty. Conditional.

cliqBotJSON Object

Cliq bot integration preferences.

isOrgNotifierEnabledBoolean

Whether org-level Cliq notifier is enabled. Conditional.

needUpgradeBoolean

true if plan doesn't support Cliq bot. Conditional.

isSubscribedBoolean

Whether user is subscribed to Cliq bot. Conditional.

canUninstallBoolean

Whether user can uninstall Cliq bot. Conditional.

isEnabledBoolean

Whether Cliq bot is enabled.

canInstallBoolean

Whether user can install Cliq bot. Conditional.

isInstalledBoolean

Whether Cliq bot extension is installed. Conditional.

noAppAccountBoolean

true if user has no Cliq account. Conditional.

isSupportedBoolean

Whether Cliq bot is supported.

isDisabledBoolean

true if Cliq extension is disabled. Conditional.

mailDigestMinInteger

Email digest minute (0-59). Conditional: only when digest time is set.

canShowEmailDigestTimeBoolean

Whether email digest time settings can be shown.

needGamificationNotificationsBoolean

Whether gamification badge notifications are available. Conditional.

groupsJSON Array

Array of per-group notification preference objects.

mentionEmailBoolean

Email on mentions. Present for GROUP/DEFAULT.

mentionCliqBotBoolean

Cliq bot on mentions. Present for GROUP/DEFAULT.

postCliqBotBoolean

Cliq bot on new posts. Present for all types.

commentPushBoolean

Push on comments. Present for DEFAULT/GROUP/PAGE.

surveyPushBoolean

Push on surveys. Present for GROUP/DEFAULT only.

commentEmailBoolean

Email on comments. Present for DEFAULT/GROUP/PAGE.

postPushBoolean

Push on new posts. Present for all types.

typeString

Partition type: GROUP, DEFAULT, TOWNHALL, or PAGE.

postEmailBoolean

Email on new posts. Present for all types.

muteGroupBoolean

Whether group is muted. Present for GROUP/PAGE only.

mentionPushBoolean

Push on mentions. Present for GROUP/DEFAULT.

showInFeedBoolean

Show group posts in feed. Present for DEFAULT/GROUP/PAGE.

nameString

Group name (HTML-encoded).

idLong

Group ID.

commentCliqBotBoolean

Cliq bot on comments. Present for DEFAULT/GROUP/PAGE.

boardsJSON Array

Array of per-board notification preference objects.

preferencesJSON Array

Array of board notification preferences (19 types).

executionTimeLong

Execution time in milliseconds. Conditional: only on taskBeforeDueDate/taskBeforeStartDate.

cliqBotBoolean

Whether Cliq bot notification is enabled.

preferenceString

Board preference type from BoardNotifyPrefType enum.

executionMinInteger

Minute to send notification. Conditional: only on taskBeforeDueDate/taskBeforeStartDate.

taskDueNDaysInteger

Days before due date to notify. Conditional: only on taskBeforeDueDate/taskBeforeStartDate.

executionHourInteger

Hour to send notification. Conditional: only on taskBeforeDueDate/taskBeforeStartDate.

pushBoolean

Whether push notification is enabled.

emailBoolean

Whether email notification is enabled.

isFollowingBoolean

Whether current user is following the board.

nameString

Board name.

muteBoolean

Whether board is muted.

idLong

Board (partition) ID.

typeString

Partition type (PROJECT).

canShowForumTabBoolean

Whether the forum notification tab should be shown. Conditional.

digestNotificatonsBoolean

Whether email digest notifications are enabled.

noMoreNotificationsBoolean

Whether all notifications are suppressed.

mailDigestHourInteger

Email digest hour (0-23). Conditional: only when digest time is set.

generalJSON Array

Array of general notification preference objects.

cliqBotBoolean

Whether Cliq bot notification is enabled.

preferenceString

Preference type name from NotifyPrefType enum (e.g. commentOnPost, likeOnPost, mentionOnPost).

pushBoolean

Whether push notification is enabled.

emailBoolean

Whether email notification is enabled.

forumsJSON Object

Forum notification preferences.

showInFeedBoolean

Show forum posts in feed.

cliqBotBoolean

Cliq bot on forum activity.

emailBoolean

Email on forum activity.

pushBoolean

Push on forum activity.

turnOffNotificationsBoolean

true if all notifications are turned off. Conditional.

showEmailDigestTimeUpgradeBoolean

Whether digest time is an upgrade feature.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Notification preferences retrieved.

Copied!
        {
"general": [
{
"cliqBot": true,
"preference": "commentOnPost",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "commentOnPost",
"push": false,
"email": false
}
],
"forums": {
"showInFeed": true,
"cliqBot": false,
"email": true,
"push": true
},
"cliqBot": {
"isEnabled": true,
"isSupported": true
},
"canShowEmailDigestTime": true,
"groups": [
{
"postCliqBot": true,
"postPush": true,
"name": "Engineering",
"id": 3000000070001,
"type": "GROUP",
"postEmail": true
},
{
"postCliqBot": false,
"postPush": false,
"name": "Engineering 2",
"id": 3000000070002,
"type": "GROUP",
"postEmail": false
}
],
"boards": [
{
"preferences": [
{
"cliqBot": true,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": false,
"email": false
}
],
"isFollowing": true,
"name": "Project Board",
"mute": false,
"id": 3000000080001,
"type": "PROJECT"
},
{
"preferences": [
{
"cliqBot": true,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": false,
"email": false
}
],
"isFollowing": false,
"name": "Project Smith",
"mute": true,
"id": 3000000080002,
"type": "PROJECT"
}
],
"digestNotificatons": false,
"noMoreNotifications": false,
"showEmailDigestTimeUpgrade": false
}
    
Show full

Update a general notification preference.

Updates a general notification preference for the current user. This affects the email notification channel for the specified preference type.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateGeneralNotificationPreference

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
notifyPrefTypeMandatoryString

General notification preference type (e.g., commentOnPost, likeOnPost, mentionOnPost). Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

valueMandatoryBoolean

Whether to enable (true) or disable (false) the preference. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Operation result — success or failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Retrieve notification preferences for a group.

Returns the notification preference settings for the specified group.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/getGroupNotificationPreferences

Scope

ZohoPulse.grouplist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
partitionIdLong

Group ID.

cliqBotJSON Object

Zoho Cliq bot notification status.

isOrgNotifierEnabledBoolean

Whether org-wide Cliq notification is enabled. Conditional.

needUpgradeBoolean

Whether a plan upgrade is required. Conditional.

isSubscribedBoolean

Whether user is subscribed to the Cliq bot. Conditional.

canUninstallBoolean

Whether user can uninstall the Cliq extension. Conditional.

isEnabledBoolean

Whether Cliq bot notifications are enabled.

canInstallBoolean

Whether user can install the Cliq extension. Conditional.

isInstalledBoolean

Whether the Cliq extension is installed. Conditional.

noAppAccountBoolean

Whether user has no Cliq app account. Conditional.

isSupportedBoolean

Whether Cliq bot is supported for this scope.

isDisabledBoolean

Whether the Cliq extension is disabled. Conditional.

notificationPreferencesJSON Object

Object containing per-type notification preference booleans for the group.

mentionEmailBoolean

Email notifications for mentions.

mentionCliqBotBoolean

Cliq bot notifications for mentions.

muteGroupBoolean

Whether the group is muted.

mentionPushBoolean

Push notifications for mentions.

postCliqBotBoolean

Cliq bot notifications for new posts.

showInFeedBoolean

Whether group posts appear in the user feed.

commentPushBoolean

Push notifications for comments.

surveyPushBoolean

Push notifications for surveys.

commentEmailBoolean

Email notifications for comments.

postPushBoolean

Push notifications for new posts.

commentCliqBotBoolean

Cliq bot notifications for comments.

postEmailBoolean

Email notifications for new posts.

isMoreEmailBoolean

Whether user has exceeded email notification limits.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Returns per-type notification preference flags, email limit status, and Cliq bot status.

Copied!
        {
"partitionId": 3000000256092,
"cliqBot": {
"isEnabled": false,
"isSupported": true
},
"notificationPreferences": {
"mentionEmail": true,
"mentionCliqBot": false,
"muteGroup": false,
"mentionPush": true,
"postCliqBot": false,
"showInFeed": true,
"commentPush": true,
"surveyPush": true,
"commentEmail": false,
"postPush": true,
"commentCliqBot": false,
"postEmail": true
},
"isMoreEmail": false
}
    
Show full

Update a notification preference for a group.

Updates a notification preference for the specified group. Affects the email notification channel for the given preference type.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateGroupNotificationPreference

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
notifyPrefTypeMandatoryString

Group notification preference type. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Group ID. Required.

valueMandatoryBoolean

Whether to enable (true) or disable (false) the preference. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Operation result — success or failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Retrieve notification preferences for a specific board.

Returns the per-type notification preference settings (push, email, Cliq bot) for the specified board, along with general notification preferences and Cliq bot status. The board must be active and the user must be a member.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/getBoardNotificationPreferences

Scope

ZohoPulse.grouplist.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

partitionIdMandatoryLong

Board (partition) ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
generalJSON Array

General notification preferences.

cliqBotBoolean

Cliq bot notification enabled.

preferenceString

Preference type name (e.g., commentOnPost, likeOnPost).

pushBoolean

Push notification enabled.

emailBoolean

Email notification enabled.

preferencesJSON Array

Board-specific notification preferences.

executionTimeLong

Execution time in milliseconds. Conditional.

cliqBotBoolean

Cliq bot notification enabled.

preferenceString

Board preference type (e.g., taskAddedOnBoard, taskAssignedToMe).

executionMinInteger

Minute of execution time. Conditional.

taskDueNDaysInteger

Days before due date to notify. Conditional.

executionHourInteger

Hour of execution time. Conditional.

pushBoolean

Push notification enabled.

emailBoolean

Email notification enabled.

isFollowingBoolean

Whether the user follows new posts on this board.

cliqBotJSON Object

Zoho Cliq bot notification status.

isOrgNotifierEnabledBoolean

Whether org-wide Cliq notification is enabled. Conditional.

needUpgradeBoolean

Whether a plan upgrade is required. Conditional.

isSubscribedBoolean

Whether user is subscribed to the Cliq bot. Conditional.

canUninstallBoolean

Whether user can uninstall the Cliq extension. Conditional.

isEnabledBoolean

Whether Cliq bot notifications are enabled.

canInstallBoolean

Whether user can install the Cliq extension. Conditional.

isInstalledBoolean

Whether the Cliq extension is installed. Conditional.

noAppAccountBoolean

Whether user has no Cliq app account. Conditional.

isSupportedBoolean

Whether Cliq bot is supported for this scope.

isDisabledBoolean

Whether the Cliq extension is disabled. Conditional.

nameString

Board name.

muteBoolean

Whether the board is muted.

idLong

Board (partition) ID.

noMoreNotificationsBoolean

Whether the user has exceeded email notification limits.

typeString

Partition type (e.g., PROJECT).

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Get Board Notification Preferences returned successfully.

Copied!
        {
"general": [
{
"cliqBot": false,
"preference": "commentOnPost",
"push": true,
"email": true
},
{
"cliqBot": false,
"preference": "likeOnPost",
"push": true,
"email": false
}
],
"preferences": [
{
"cliqBot": false,
"preference": "taskAddedOnBoard",
"push": true,
"email": true
},
{
"cliqBot": true,
"preference": "taskAssignedToMe",
"push": true,
"email": true
}
],
"isFollowing": true,
"cliqBot": {
"isEnabled": false,
"isSupported": true
},
"name": "Engineering Sprint",
"mute": false,
"id": 3000000270001,
"noMoreNotifications": false,
"type": "PROJECT"
}
    
Show full

Update a notification preference for a board.

Updates a notification preference for the specified board. Accepts push, email, or Cliq bot notification types and board-specific preference types.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBoardNotificationPreference

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
notifyPrefTypeMandatoryString

Board notification preference type (e.g., taskAddedOnBoard, taskAssignedToMe). Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

notifyTypeString

Notification channel — EMAIL, PUSH, or CLIQBOT.

partitionIdMandatoryLong

Board (partition) ID. Required.

taskDDExecutionHourInteger

Hour component of before-due-date execution time.

taskSDNDaysString

Number of days before the start date to notify (1-30).

taskDDExecutionMinInteger

Minute component of before-due-date execution time.

taskSDExecutionMinInteger

Minute component of before-start-date execution time.

taskSDExecutionHourInteger

Hour component of before-start-date execution time.

valueMandatoryBoolean

Whether to enable (true) or disable (false) the preference. Required.

taskDDNDaysString

Number of days before the due date to notify (1-30).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Operation result — success or failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Update Cliq bot notification preference for a board.

Updates a Cliq bot notification preference for the specified board. Accepts push, email, or Cliq bot notification types and board-specific preference types.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateBoardCliqBotNotificationPreference

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
notifyPrefTypeMandatoryString

Board notification preference type (e.g., taskAddedOnBoard, taskAssignedToMe). Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

notifyTypeString

Notification channel — EMAIL, PUSH, or CLIQBOT.

partitionIdMandatoryLong

Board (partition) ID. Required.

taskDDExecutionHourInteger

Hour component of before-due-date execution time.

taskSDNDaysString

Number of days before the start date to notify (1-30).

taskDDExecutionMinInteger

Minute component of before-due-date execution time.

taskSDExecutionMinInteger

Minute component of before-start-date execution time.

taskSDExecutionHourInteger

Hour component of before-start-date execution time.

valueMandatoryBoolean

Whether to enable (true) or disable (false) the preference. Required.

taskDDNDaysString

Number of days before the due date to notify (1-30).

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Operation result — success or failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Update a notification preference for forums.

Updates a forum notification preference (email, push, Cliq bot, or feed push) for the current user.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateForumNotificationPreference

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

notifyTypeMandatoryString

Notification channel — EMAIL, PUSH, CLIQBOT, or FEEDPUSH. Required.

valueMandatoryBoolean

Whether to enable (true) or disable (false) the preference. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Operation result — success or failure.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Enable or disable mobile push notifications.

Toggles the master mobile push notification setting for the current user. Only the NO_MORE_EMAILS preference type is accepted; other types will result in an error.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/updateMobileNotificationSetting

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
preferenceTypeMandatoryString

Preference type — must be "NO_MORE_EMAILS". Required.

preferenceValueMandatoryBoolean

Whether to disable (true) or enable (false) push notifications. Required.

scopeIDMandatoryLong

Network (scope) ID. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Retrieve the current user's unread notification count.

Returns the unread notification count and whether the current user can mark all notifications as read.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/notificationCounts

Scope

ZohoPulse.feedList.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

versionInteger

API version hint.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
notificationCountInteger

Number of unread notifications.

canReadAllBoolean

Whether the user can mark all notifications as read.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Notification count returned.

Copied!
        {
"notificationCount": 5,
"canReadAll": true
}
    
Show full

Reset the unread notification count to zero.

Resets the unread notification count badge for the current user.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/resetNotificationCount

Scope

ZohoPulse.connectNotifications.CREATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDLong

Network (scope) ID.

versionInteger

API version. When 1, resets all categories; otherwise resets only GENERAL.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Retrieve the notification feed for the current user.

Returns a paginated list of notifications for the authenticated user, including activity details, message text, and pagination cursor. Supports filtering by notification type and sorting.

Rate limited to 20 requests per minute.

Request URL

https://ServerDomain/pulse/api/userNotifications

Scope

ZohoPulse.connectNotifications.READ

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor — epoch time in milliseconds. Returns notifications older than this time.

scopeIDMandatoryLong

Network (scope) ID. Required.

sortingTypeString

Sort order type.

filterTypeString

Notification filter type.

versionInteger

API version hint. When 1, user details are returned in a "details" array instead of a "usersDetails" object.

Sample Request

Curl
C#
Java
Python
Deluge
Copied!
curl --request GET \
--url 'https://connect.zoho.com/pulse/api/userNotifications?modifiedTime=3000000100001&scopeID=3000000000008&sortingType=latest&filterType=all&version=1' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
modifiedTimeLong

Pagination cursor for next page. Present when more results available.

canReadAllBoolean

Whether the user can mark all as read. Present via nativeapi path.

unreadCountInteger

Total unread notification count. Present via nativeapi path.

notificationsJSON Array

Array of notification objects.

msgString

Notification message text.

hasCustomImgBoolean

Whether notifier has custom profile image. Conditional.

typeString

Activity type (e.g., NEW_COMMENT, LIKE_STREAM).

urlString

Full URL to the notification target.

isUnreadBoolean

Whether the notification is unread.

contentString

Content snippet. Conditional.

zuidLong

Notifier Zoho User ID. Conditional.

formatedTimeString

Formatted display time.

streamTypeString

Post type. Conditional.

stream_IdLong

Post ID. Conditional.

notifierLong

User ID of the person who triggered the notification.

linkUrlString

Relative URL path.

commentTypeString

Comment type (e.g., COMMENT).

nameString

Notifier display name. Conditional.

notificationIdLong

Unique notification ID.

postTitleString

Post or task title. Conditional.

idLong

Related item ID.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Get User Notifications returned successfully.

Copied!
        {
"modifiedTime": 1752588300000,
"canReadAll": true,
"unreadCount": 3,
"notifications": [
{
"msg": "John Smith commented on your post",
"hasCustomImg": true,
"type": "NEW_COMMENT",
"url": "https://connect.zoho.com/portal/myorg/#postDetail/515500000009433",
"isUnread": true,
"content": "Great work on the report!",
"zuid": 10001001,
"formatedTime": "Jul 15, 2025 03:45 PM",
"streamType": "STATUS",
"stream_Id": 515500000009433,
"notifier": 10001001,
"linkUrl": "/portal/myorg/#postDetail/515500000009433",
"commentType": "COMMENT",
"name": "John Smith",
"notificationId": 515500000010551,
"id": 515500000010550
},
{
"msg": "John Smith commented on your post",
"hasCustomImg": false,
"type": "NEW_COMMENT",
"url": "https://connect.zoho.com/portal/myorg/#postDetail/515500000009433",
"isUnread": false,
"content": "Great work on the report!",
"zuid": 10001002,
"formatedTime": "Jul 15, 2025 03:45 PM",
"streamType": "STATUS",
"stream_Id": 515500000009434,
"notifier": 10001002,
"linkUrl": "/portal/myorg/#postDetail/515500000009433",
"commentType": "COMMENT",
"name": "John Smith",
"notificationId": 515500000010552,
"id": 515500000010551
}
]
}
    
Show full

Delete a specific notification.

Permanently removes a notification for the current user by notification ID.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/deleteNotification

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

notificationIdMandatoryLong

Notification ID to delete. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Mark a specific notification as read.

Marks the specified notification as read for the current user.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/markNotificationAsRead

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

notificationIdMandatoryLong

Notification ID to mark as read. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

canReadAllBoolean

Whether the user can mark all notifications as read. Conditional.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

Copied!
        {
"result": "success",
"canReadAll": true
}
    
Show full

Mark a specific notification as unread.

Marks the specified notification as unread for the current user so it appears as new again.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/markNotificationAsUnread

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

notificationIdMandatoryLong

Notification ID to mark as unread. Required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

canReadAllBoolean

Always returned as true when marking unread.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

Copied!
        {
"result": "success",
"canReadAll": true
}
    
Show full

Mark all notifications as read for the current user.

Marks every unread notification as read for the authenticated user in the given scope.

Rate limited to 60 requests per minute.

Request URL

https://ServerDomain/pulse/api/markAllNotificationsAsRead

Scope

ZohoPulse.connectNotifications.UPDATE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

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/markAllNotificationsAsRead \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
Show full

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
resultString

Success indicator — success.

canReadAllBoolean

Whether the user can mark all notifications as read. Conditional.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Operation completed successfully.

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

Deletes a channel within a group

Deletes a channel by providing the channelId instead of the partitionId. You must be a channel admin to perform this action. Returns result=success if the deletion is successful, or result=failure with a reason if it fails.

Rate limited to 10 requests per minute.

Request URL

https://ServerDomain/pulse/api/deletePartition

Scope

ZohoPulse.grouplist.DELETE

Header

Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52

Endpoints

Request Parameters

- Query Parameters

PARAM NAMEDATA TYPEDESCRIPTION
scopeIDMandatoryLong

Network (scope) ID. Required.

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

Partition (group/townhall/manual/board) ID. Accepts long or alphanumeric string. Either partitionId or channelId is required.

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

Channel ID (alphanumeric string). Used to delete a channel instead of a partition. Either partitionId or channelId is required.

Sample Request

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

Response Parameters

- HTTP code 200

Response Body - application/json

PARAM NAMEDATA TYPEDESCRIPTION
deletePartitionJSON Object

Inner deletePartition object — success result or error with reason

resultString

'success' or 'failure'.

reasonString

Error message. Present on failure — e.g. 'Access denied'.

Possible HTTP Status Codes

HTTP CodeDescription
200

Success response

Sample Response: HTTP 200

Channel successfully deleted.

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

Returned when the caller is not a channel admin.

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