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 Network Data Export API enables Viva Engage Verified Administrators to export all messages (including previous versions), files stored in Yammer, topics, users, and groups from a Viva Engage network. Data is exported as a ZIP file containing CSV files for each model and, if requested, file attachments.
You can perform a one-time export by specifying a date range, or set up recurring exports (daily or weekly) to meet compliance, analytics, or archival requirements.
Important
Daily exports are recommended instead of large, infrequent exports to reduce the risk of errors and improve reliability.
Key Features
- Comprehensive Export: Export all network data, including messages (and previous versions), files, topics, users, and groups.
- Flexible Scheduling: Perform one-time or recurring exports based on your busines needs.
- Granular Control: Specify which models to export and the date range for the export.
- External Groups and Users: Export all content for external groups and, for external users, only threads in which they participated.
Network Data Exports can also be performed via the Viva Engage admin portal: Yammer Network Admin > Content and Security > Export Data.
How the API Works
The Network Data Export API is synchronous. An HTTP GET request returns a ZIP file containing the requested data.
Example Requests
Export all data since February 9, 2020:
https://www.yammer.com/api/v1/export?since=2020-02-09T00:00:00+00:00
Export all data between February 9, 2020 and March 10, 2021:
https://www.yammer.com/api/v1/export?since=2020-02-09T00:00:00+00:00&until=2021-03-10T00:00:00+00:00
Export all data since February 9, 2020, excluding file attachments:
https://www.yammer.com/api/v1/export?since=2020-02-09T00:00:00+00:00&include=csv
Export only message data since February 9, 2020, excluding file attachments:
https://www.yammer.com/api/v1/export?since=2020-02-09T00:00:00+00:00&model=Message&include=csv
Query Parameters
model
: (Optional) Specify which models (CSVs) to export. If omitted, all available models are exported. To export multiple models, repeat themodel
parameter, each value representing the name of a CSV to export, e.g., User, Group, Message, MessageVersion, Topic, etc.since
: (Required) Start date for the export (ISO-8601 format). All exported changes will have occurred on or after this date.until
: (Optional) End date for the export (ISO-8601 format). All exported changes will have occurred on or before this date. If omitted, defaults to the current date.include
: (Optional) Specify whether to include file attachments. Usecsv
to exclude attachments orall
to include them.network
: (Optional) Specify which network(s) to export. Must be accessible with the provided OAuth bearer token.include_ens
: (Optional) Iftrue
, includes all external networks associated with the authenticated network.
Ensure all parameters are properly URL-encoded before making the request.
API Response
The response is a ZIP file (application/zip
) containing the exported data. 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)
CSV Files Reference
Admins.csv
Purpose: Contains information about network administrators and their roles.
Properties:
id
- Unique identifier for the admin username
- Admin's display nameemail
- Admin's email addressverified
- Whether the admin account is verified (true/false)roles
- Array of admin roles. Possible values include:Admin
,Tenant Admin
,M365 Yammer Admin
,Verified Admin
,Corporate Communicator
,Answers Administrator
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
,ENDED
tenant_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
,CLOSED
qna_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
,PUBLIC
cs_subscription_status
- Customer service subscription status. Possible values include:NOT_SUBSCRIBED
,SUBSCRIBED
presenter_option
- Presenter option. Possible values include:EVERYONEINCOMPANY
join_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:EveryoneInCompanyExcludingGuests
created_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
,ENDED
official
- 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:NETWORK
user_roles
- User roles associated with campaigntargeted_to
- Target audience for campaign
EngageTopicApplicationMigrationLog.csv
Purpose: Contains logs of topic application migrations.
Properties:
id
- Unique identifier for the migration logcortex_topic_id
- ID of the Cortex topictarget_id
- ID of the target contenttarget_type
- Type of target contentmigrated_at
- Timestamp when migration occurredmigration_action
- Action taken during migration
EngageTopicMigrationLog.csv
Purpose: Contains logs of topic migrations from legacy systems.
Properties:
id
- Unique identifier for the migration logcortex_topic_id
- ID of the Cortex topicmigrated_at
- Timestamp when migration occurredmigration_action
- Action taken during migration. Possible values include:migrated
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:User
group_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:SHAREPOINT
scope_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:User
created_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
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
,remove
reaction_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:User
sender_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
,announcement
poll_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_GROUP
for community messages,NETWORK_QUESTION
for Answers messages,YAMMER_INFLUENCER
for storyline messages,YAMMER_PRIVATE_CONVERSATION
for 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
MessageThreads.csv
Purpose: Contains information about message threads where external users participated.
Properties:
id
- Unique identifier for the threadfiles
- Files attached to the threadexternal_participants
- External participants in the threadupdated_at
- Timestamp when thread was last updatedoriginal_network
- Original network where thread was createdis_announcement
- Whether thread is an announcement (true/false)is_reply_disabled
- Whether replies are disabled (true/false)
MessageThreads.Outbound.csv
Purpose: Contains information about outbound message threads (cross-network), including external participants.
Properties:
id
- Unique identifier for the threadfiles
- Files attached to the threadexternal_participants
- External participants in the threadupdated_at
- Timestamp when thread was last updatedis_announcement
- Whether thread is an announcement (true/false)is_reply_disabled
- Whether replies are disabled (true/false)
MessageVersions.csv
Purpose: Contains version history of messages, tracking edits and change within the export period.
Properties: Same as Messages.csv - tracks all versions of edited messages.
MutedThreads.csv
Purpose: Contains information about muted message threads.
Properties:
thread_id
- ID of the muted threadnetwork_id
- ID of the networkis_muted
- Whether thread is muted (true/false)updated_by_id
- ID of user who updated the mute statuscreated_at
- Timestamp when mute was createdupdated_at
- Timestamp when mute was last updated
MutedUser.csv
Purpose: Contains information about muted users.
Properties:
id
- Unique identifier for the muted user recorduser_id
- ID of the muted usernetwork_id
- ID of the networkmuted_by
- ID of user who applied the mutemuted_at
- Timestamp when user was muted
Networks.csv
Purpose: Contains information about the Viva Engage network.
Properties:
id
- Unique identifier for the networkpermalink
- Network permalink/domainname
- Network nameurl
- Network URLpaid
- Whether network is paid (true/false)created_at
- Timestamp when network was createdmoderated
- Whether network is moderated (true/false)usage_policy
- Network usage policy (true/false)number_of_users
- Total number of users in networksecure_browser_token
- Secure browser token
Segments.csv
Purpose: Contains user segmentation data.
Properties:
segment_id
- Unique identifier for the segmentsegment_name
- Name of the segmentcreated_at
- Timestamp when segment was created
Sentie.csv
Purpose: Contains sentiment analysis data for content.
Properties:
user_id
- ID of the usersentiment_score
- URL to sentiment score datasentiment_opinions
- JSON array of sentiment opinionstext_sentiment
- Overall text sentiment. Possible values include:positive
,negative
,neutral
leaders
- JSON array of leader user IDscreator_id
- ID of content creatorthread_id
- ID of the thread
Summarization.csv
Purpose: Contains AI-generated summaries of content.
Properties:
network_id
- ID of the networkid
- Unique identifier for the summarizationsummarization_type
- Type of summarization. Possible values include:thread_starter_summary
summarization_data
- JSON object containing summarization data including thread IDs, message IDs, summaries, and themescreated_at
- Timestamp when summarization was created
Tags.csv
Purpose: Contains hashtags and topics used in the network.
Properties:
id
- Unique identifier for the tagname
- Tag name (without # symbol)
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
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
Users.csv
Purpose: Contains information about all users in the Viva Engage network, created or modified during the export time range.
Properties:
id
- Unique identifier for the username
- User's display nameemail
- User's email addressjob_title
- User's job titlelocation
- User's locationdepartment
- User's departmentapi_url
- API endpoint for user datadeleted_by_id
- ID of admin who deleted the user (if applicable)deleted_by_type
- Type of entity that deleted the user (if applicable)joined_at
- Timestamp when user joined the networkcreated_at
- Timestamp when user was originally created.updated_at
- Timestamp when user was last modified.deleted_at
- Timestamp when user was deleted (if applicable)suspended_by_id
- ID of admin who suspended the user (if applicable)suspended_by_type
- Type of entity that suspended the user (if applicable)suspended_at
- Timestamp when user was suspended (if applicable)guid
- Globally unique identifierstate
- User account state. Possible values include:active
,suspended
,deleted
office_user_id
- Microsoft 365 user identifieruser_cover_image_url
- URL to user's cover imagesash_campaign_id
- Campaign ID for user sash/badgeuser_segment_ids
- Comma-separated list of segment IDs the user belongs to
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_THREAD
deleted
- 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_REJECTED
acting_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
WatchAlertDetectedThreads.csv
Purpose: Contains threads detected by watch alert systems.
Properties:
thread_id
- ID of the detected threadnetwork_id
- ID of the networktheme_detections
- JSON array of theme detectionskeyword_detections
- JSON array of keyword detectionsstate
- Detection state. Possible values include:IN_REVIEW
,APPROVED
,REJECTED
sentiment_counts
- JSON object with sentiment analysis countsunique_user_count
- Number of unique users in the threadcreated_at
- Timestamp when detection was createdupdated_at
- Timestamp when detection was last updatedupdated_by_id
- ID of user who last updated the detection
WatchAlertThemes.csv
Purpose: Contains themes for watch alerts and content monitoring.
Properties:
theme_id
- Unique identifier for the themenetwork_id
- ID of the networktheme_name
- Name of the themeauto_mute
- Whether to automatically mute content matching this theme (true/false)do_notify
- Whether to send notifications for this theme (true/false)created_at
- Timestamp when theme was createdupdated_at
- Timestamp when theme was last updatedversion
- Theme version
This documentation covers all CSV files that may appear in a Viva Engage export. The actual files present in your export may vary based on your network configuration and data availability.
Message Export Details
- Only message versions within the specified time range are exported.
- If a message's latest version is within the time range, it appears in both
Messages.csv
andMessageVersions.csv
. Older versions within the range appear only inMessageVersions.csv
.
Error Handling
If any data fails to export, the export will be partial. Details of any failures are recorded in log.txt
. To minimize the risk of partial exports, use smaller timeframes for each export.
Sample Code
Sample scripts for using the Network Data Export API with Unix and Windows PowerShell are available here. These samples are for illustration purposes only and are not intended for production use.