Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The User Data Export API allows verified admins to pull all data related to a single user in a specific Viva Engage network. Data is exported as a ZIP file containing CSV files for each requested model.
User Data Exports can also be performed via the Viva Engage admin portal: Viva Engage Admin center > Governance and Compliance > Data management.
How the API Works
The User Data Export API is synchronous. An HTTP GET request returns a ZIP file containing the requested data. The response is streamed immediately as the export is processed, and the download begins as soon as the API call is made.
API Endpoint
GET /api/v1/export/users/{user_id}
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
user_id |
Long | Yes | The ID of the user whose data should be exported |
Authentication
Requires Viva Engage admin or verified admin authentication via bearer token. Only network administrators can export user data. See the documentation on Permissions and Authentication to learn more.
Query Parameters
Ensure all parameters are properly URL-encoded before making the request.
model (Optional, Multiple)
Type: String
Default: All supported models
Case-Sensitive: No
Specifies which data models to include in the export. Can be specified multiple times to export multiple models. If omitted, all available models are exported.
Example
GET /api/v1/export/users/123?model=Group&model=Message&model=File
Supported Model Types
| Model Name | Description |
|---|---|
Group |
Communities the user is a member of |
Topic |
Topics the user has interacted with |
UploadedFileVersion |
Files uploaded by the user |
Message |
Messages posted by the user |
LikedMessageHistory |
Complete history of messages liked by the user |
BestReplyMessage |
Messages marked as best reply by the user |
Broadcast |
Announcement messages from the user |
PinnedToGroupThread |
Threads pinned by the user in groups |
PinnedToBroadcastThread |
Announcement threads pinned by the user |
Banner |
Banner interactions |
HiddenGroupsDiscoveryFeed |
Hidden groups from discovery feed |
AnswerVote |
User's votes on answers |
ThreadVote |
User's votes on threads |
TopicSubscription |
Topics the user is subscribed to |
UserGroupRecommendationAction |
Group recommendation actions |
UserProfile |
User profile information |
UserCoverImageURL |
User cover image URLs |
Campaigns |
Campaign interactions |
Amas |
AMA (Ask Me Anything) participation |
UserLeader |
Leadership information |
UserBadge |
Badges earned by the user |
VivaTopic |
Viva Topics the user has interacted with |
VivaTopicApplication |
Viva Topic applications |
VivaTopicCurationStateLog |
Viva Topic curation history |
UserSetting |
User settings and preferences |
UserNotification |
User notifications |
UserNotificationDevice |
Registered notification devices |
UserNotificationSetting |
Notification preferences |
PollVote |
User's poll votes |
MessageThreadExtension |
Extended thread information |
exclude_files (Optional)
Type: Boolean
Default: false
When set to true, excludes file content from the export. Only CSV metadata will be included.
Example:
GET /api/v1/export/users/123?exclude_files=true
API Response
Success Response (200 OK)
Content-Type: application/zip
Response Type: Binary stream (ZIP file)
The ZIP file includes:
- CSV files for all or specifically requested models
log.txt: Summary of the exportrequest.txt: Parameters used for the export- File attachments (if requested and stored in Yammer)
Error Responses
400 Bad Request
When: Invalid model type(s) specified in the model parameter
Response Body:
At least one of the provided models in the input is not supported: InvalidModel
Supported models are Group, Topic, File, Message, LikedMessageHistory, BestReplyMessage, Broadcast, ...
401 Unauthorized
When:
- User is not authenticated
- User does not have admin privileges
Response Body: Empty
404 Not Found
When:
- User with the specified ID does not exist
- User has been deleted
Response Body: Empty
CSV Files Reference
AMAs.csv
Purpose: Contains information about Ask Me Anything (AMA) sessions.
Properties:
id- Unique identifier for the AMAtitle- AMA titledescription- AMA descriptioncreated_at- Timestamp when AMA was createdupdated_at- Timestamp when AMA was last updatedmeeting_state- State of the meeting. Possible values include:CREATED,STARTED,ENDEDtenant_id- ID of the tenantadded_by- ID of user who added the AMApartner_id- Partner ID for the AMAstart_time- AMA start timeend_time- AMA end timeadmission_type- Type of admission. Possible values include:OPEN,CLOSEDqna_app_enabled- Whether Q&A app is enabled (true/false)replies_enabled- Whether replies are enabled (true/false)moderation_enabled- Whether moderation is enabled (true/false)is_thread_upvote_enabled- Whether thread upvoting is enabled (true/false)access_category- Access category. Possible values include:PRIVATE,PUBLICcs_subscription_status- Customer service subscription status. Possible values include:NOT_SUBSCRIBED,SUBSCRIBEDpresenter_option- Presenter option. Possible values include:EVERYONEINCOMPANYjoin_link- Link to join the AMAartifact_service_enabled- Whether artifact service is enabled (true/false)is_anonymous_posting_enabled- Whether anonymous posting is enabled (true/false)auto_admitted_policy- Auto-admission policy. Possible values include:EveryoneInCompanyExcludingGuestscreated_by_type- Type of entity that created the AMAcalendar_id- Calendar ID for the AMAis_new_question_notification_enabled- Whether new question notifications are enabled (true/false)recording_url- URL to AMA recordingtownhall_rtmp_capability- Town hall RTMP capabilityves_id- VES (Video Event Service) IDves_external_event_id- External VES event IDversion- AMA versionparticipants_data- JSON data about participantscalendar_invites_data- Calendar invitation datais_reaction_enabled- Whether reactions are enabled (true/false)is_anonymous_reply_enabled- Whether anonymous replies are enabled (true/false)
AnswerVotes.csv
Purpose: Contains votes on answers in Q&A threads.
Properties:
id- Unique identifier for the votenetwork_id- ID of the networkvoter_id- ID of user who votedmessage_id- ID of message that was voted onthread_id- ID of thread containing the messagecreated_at- Timestamp when vote was createdupdated_at- Timestamp when vote was last updatedcreation_mode- Mode used to create the voteapplication_id- ID of application used to create vote
Campaigns.csv
Purpose: Contains information about campaigns in the network.
Properties:
id- Unique identifier for the campaignname- Campaign nameapi_url- API endpoint for campaign datadescription- Campaign descriptionhashtags- Hashtags associated with campaignstate- Campaign state. Possible values include:ACTIVE,INACTIVE,ENDEDofficial- Whether campaign is official (true/false)created_at- Timestamp when campaign was createdcreator_id- ID of user who created the campaigndefault_cover_image_url_template- Default cover image URL templatecover_image_url_template- Cover image URL templatepermalink- Campaign permalink templatescope_id- ID of scope where campaign existsscope_type- Type of scope. Possible values include:NETWORKuser_roles- User roles associated with campaigntargeted_to- Target audience for campaign
Banners.csv
Purpose: Contains information about banner interactions and configurations.
Properties:
- Banner-related properties and interactions
BestReplyMessages.csv
Purpose: Contains messages that have been marked as best replies in discussions.
Properties:
- Message properties for best reply designations
Broadcast.csv
Purpose: Contains broadcast messages and their properties.
Properties:
- Broadcast message details and metadata
Files.csv
Purpose: Contains information about files uploaded to the network. Files.csv does not contain the actual files. Files stored in Viva Engage are exported in their native format to the Files folder of the zip file. Files stored in SharePoint are not exported.
Properties:
id- Unique identifier for the file versionfile_id- Unique identifier for the filename- File namedescription- File descriptionuploader_id- ID of user who uploaded the fileuploader_type- Type of uploader. Possible values include:Usergroup_id- ID of group where file was uploadedgroup_name- Name of group where file was uploadedreverted_to_id- ID of version file was reverted to (if applicable)deleted_by_user_id- ID of user who deleted the file (if applicable)in_private_group- Whether file is in a private group (true/false)in_private_conversation- Whether file is in a private conversation (true/false)file_api_url- API endpoint for file datadownload_url- URL to download the filepath- File path in exportuploaded_at- Timestamp when file was uploadeddeleted_at- Timestamp when file was deleted (if applicable)original_network- Original network where file was uploadedstorage_type- Type of storage. Possible values include:SHAREPOINTscope_id- ID of scope where file existsscope_type- Type of scope. Possible values include:YAMMER_INFLUENCER,YAMMER_GROUP
Groups.csv
Purpose: Contains information about communities in the network.
Properties:
id- Unique identifier for the communitiesname- community namedescription- community descriptionprivate- Whether community is private (true/false)moderated- Whether community is moderated (true/false)api_url- API endpoint for community datacreated_by_id- ID of user who created the communitycreated_by_type- Type of entity that created the community. Possible values include:Usercreated_at- Timestamp when community was createdupdated_at- Timestamp when community was last updateddeleted- Whether community is deleted (true/false)external- Whether community is external (true/false). This applies only to the legacy Yammer communities, and doesn't reflect external status of M365 connected communities.office_group_id- Microsoft 365 community identifiergroup_tags- Tags associated with the communitygroup_custom_cover_image- URL to custom cover imageoffice_resource_card_enabled- Whether Office resource card is enabled (true/false)files_tab_enabled- Whether files tab is enabled (true/false)segment_id- ID of segment the group belongs to
HiddenGroupsDiscoveryFeed.csv
Purpose: Contains information about groups hidden from the discovery feed.
Properties:
- Group information for hidden discovery feed items
LikedMessageHistory.csv
Purpose: Contains history of message likes and reactions.
Properties: Same as Messages.csv plus:
reaction- Type of reaction. Possible values include:like,love,celebrate,thank,laugh,sad,happy,excited,smile,silly,intenseLaugh,starStruck,goofy,thinking,surprised,mindBlown,scared,crying,shocked,angry,agree,praise,takingNotes,heartBroken,support,confirmed,watching,brain,medal,bullseye.reaction_action- Action taken. Possible values include:add,removereaction_timestamp- Timestamp when reaction was madereacted_by- ID of user who made the reaction
Messages.csv
Purpose: Contains all messages posted in the network, including posts and replies.
Properties:
id- Unique identifier for the messagereplied_to_id- ID of message this is replying to (if applicable)parent_id- ID of parent message in threadthread_id- ID of the message threadconversation_id- ID of private conversation (if applicable)group_id- ID of group where message was postedgroup_name- Name of group where message was postedparticipants- List of participants in private conversationin_private_group- Whether message is in a private group (true/false)in_private_conversation- Whether message is in a private conversation (true/false)sender_id- ID of user who sent the messagesender_type- Type of sender. Possible values include:Usersender_name- Display name of sendersender_email- Email address of senderbody- Plain text content of the messagedelegate_id- ID of user posting on behalf of another (if applicable)api_url- API endpoint for message dataattachments- Information about file attachments. Within attachments this OGO information is exported: id, url, title, description.deleted_by_id- ID of user who deleted the message (if applicable)deleted_by_type- Type of entity that deleted the message (if applicable)created_at- Timestamp when message was created. If edited, it shows the last edit time.deleted_at- Timestamp when message was deleted (if applicable)title- Message title (if applicable)html_body- HTML-formatted content of the messagemessage_type- Type of message. Possible values include:normal,praise,poll,announcementpoll_options- Poll options (if message is a poll)poll_voting_closed_at- Timestamp when poll voting closedpraise_type- Type of praise.gdpr_delete_url- URL for GDPR deletionscope_id- ID of scope where message existsscope_type- Type of scope. Possible values include:YAMMER_GROUPfor community messages,NETWORK_QUESTIONfor Answers messages,YAMMER_INFLUENCERfor storyline messages,YAMMER_PRIVATE_CONVERSATIONfor private messages.is_supplemental_reply- Whether this is a supplemental reply (true/false)scheduled_publish_at- Timestamp when message was scheduled to publishnotification_target- Target for notificationsis_draft- Whether message is a draft (true/false)intelligent_importer_extraction_id- ID for intelligent importer extraction. This id does not correspond to any other exported model, but can be used to correlate messages that were generated together.is_ai_generated- Whether message was AI-generated (true/false). If a message was generated as a draft, such as with Intelligent Importer, it is only considered AI generated until it is published. Once an AI-generated message is posted, this flag is reset and the message in export appears like any other message posted by a user.intelligent_importer_file_id- File ID for intelligent importercollaborators- List of collaborators on the messagecollaborator_id- ID of collaboratorcreation_mode- Mode used to create the messageapplication_id- ID of application used to create message
MessageThreadExtension.csv
Purpose: Contains more detailed data for message threads, such as best reply, or verified reply.
Properties:
network_id- ID of the networkthread_id- ID of the threadmessage_id- ID of the messageoperation- Type of operation performedoperation_performed_by- ID of user who performed the operationoperation_performed_at- Timestamp when operation was performed
PinnedToBroadcastThreads.csv
Purpose: Contains information about threads pinned to broadcast channels.
Properties:
- Thread and broadcast pinning information
PinnedToGroupThreads.csv
Purpose: Contains information about threads pinned within groups.
Properties:
- Thread and group pinning information
PollVotes.csv
Purpose: Contains votes cast on poll questions.
Properties:
- Poll voting data and user responses
ThreadVotes.csv
Purpose: Contains votes on entire message threads.
Properties:
id- Unique identifier for the votenetwork_id- ID of the networkvoter_id- ID of user who votedthread_id- ID of thread that was voted oncreated_at- Timestamp when vote was createdupdated_at- Timestamp when vote was last updated
Topics.csv
Purpose: Contains traditional Viva Engage topics.
Properties:
id- Unique identifier for the topicname- Topic namecreated_by- ID of user who created the topiccreated_at- Timestamp when topic was createdapi_url- API endpoint for topic datadescription- Topic description
TopicSubscriptions.csv
Purpose: Contains user subscriptions to topics.
Properties:
id- Unique identifier for the subscriptionuser_network_id- ID of user networksubscriber_id- ID of subscribing usersubscription_type- Type of subscriptionlegacy_id- Legacy subscription IDcreated_at- Timestamp when subscription was createdupdated_at- Timestamp when subscription was last updated
UserCoverImageURL.csv
Purpose: Contains URLs for user cover images.
Properties:
- User cover image URL data and metadata
UserGroupRecommendationActions.csv
Purpose: Contains user actions on group and topic recommendations.
Properties:
id- Unique identifier for the action recorduser_prompt_view_times- Number of times user viewed promptsgroup_recommendation_dismiss_times- Number of times user dismissed group recommendationstopic_recommendation_dismiss_times- Number of times user dismissed topic recommendationsgroup_recommendation_view_times- Number of times user viewed group recommendationsuser_recommendation_view_times- Number of times user viewed user recommendationstopic_recommendation_view_times- Number of times user viewed topic recommendations
UserNotification.csv
Purpose: Contains user notification data and preferences.
Properties:
- Notification settings and delivery information
UserProfile.csv
Purpose: Contains detailed user profile information.
Properties:
- User profile details and personal information
USER_BADGE.csv
Purpose: Contains information about badges earned by users.
Properties:
- Badge data and achievement information
USER_SETTING.csv
Purpose: Contains user settings and preferences.
Properties:
- Individual user configuration and preference data
VivaEngageLeaders.csv
Purpose: Contains information about Viva Engage leaders and their audiences.
Properties:
leader_id- ID of the leaderleader_created_at- Timestamp when leader was created (Unix timestamp)audience_name- Name of the audienceaudience_created_at- Timestamp when audience was created (Unix timestamp)audience_created_by- ID of user who created the audienceaudience_updated_at- Timestamp when audience was last updated (Unix timestamp)audience_updated_by- ID of user who last updated the audiencesize- Size of the audienceaudience_group_ids- Comma-separated list of group IDs in the audienceentire_org- Whether audience includes entire organization (true/false)entire_mto- Whether audience includes entire MTO (true/false)
VivaTopicApplications.csv
Purpose: Contains applications of Viva Topics to content.
Properties:
cortex_topic_id- ID of the Cortex topicapplicant_id- ID of user who applied the topictarget_id- ID of target contentgroup_id- ID of group where topic was appliedtarget_type- Type of target. Possible values include:MESSAGE_THREADdeleted- Whether application is deleted (true/false)is_topic_curated- Whether topic is curated (true/false)created_at- Timestamp when application was createdupdated_at- Timestamp when application was last updatedtopic_name- Name of the topic
VivaTopicCurationStateLogs.csv
Purpose: Contains logs of Viva Topic curation state changes.
Properties:
cortex_topic_id- ID of the Cortex topictopic_curation_state_update- Type of curation state update. Possible values include:CREATE_APPROVED,CREATE_PENDING,CREATE_REJECTEDacting_user_id- ID of user who made the changecommitted_to_km_at- Timestamp when committed to knowledge managementcreated_at- Timestamp when log was createdupdated_at- Timestamp when log was last updated
VivaTopics.csv
Purpose: Contains Viva Topics integrated with Viva Engage.
Properties:
id- Unique identifier for the Viva Topicname- Topic namecreated_by- ID of user who created the topiccreated_at- Timestamp when topic was createdapi_url- API endpoint for topic metadatadescription- Topic descriptionlegacy_id- Legacy topic ID from migrationmerged_ids- IDs of topics that were mergedshort_description- Short description of the topictopic_curation_state- Curation state. Possible values include:APPROVED,PENDING,REJECTED
Important Notes
- Model names are case-insensitive:
Group,group, andGROUPare all valid - Default behavior: If no
modelparameter is provided, all supported models are exported - Multiple models: Repeat the
modelparameter to export multiple specific models - Streaming response: The export begins processing and streaming immediately upon request
- Admin only: Only network administrators can export user data
*This documentation covers the CSV files present in user data exports. The actual files in your export may vary based on your network configuration, user activity, and data availability.