다음을 통해 공유


User Data Export API

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 export
  • request.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 AMA
  • title - AMA title
  • description - AMA description
  • created_at - Timestamp when AMA was created
  • updated_at - Timestamp when AMA was last updated
  • meeting_state - State of the meeting. Possible values include: CREATED, STARTED, ENDED
  • tenant_id - ID of the tenant
  • added_by - ID of user who added the AMA
  • partner_id - Partner ID for the AMA
  • start_time - AMA start time
  • end_time - AMA end time
  • admission_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 AMA
  • artifact_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 AMA
  • calendar_id - Calendar ID for the AMA
  • is_new_question_notification_enabled - Whether new question notifications are enabled (true/false)
  • recording_url - URL to AMA recording
  • townhall_rtmp_capability - Town hall RTMP capability
  • ves_id - VES (Video Event Service) ID
  • ves_external_event_id - External VES event ID
  • version - AMA version
  • participants_data - JSON data about participants
  • calendar_invites_data - Calendar invitation data
  • is_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 vote
  • network_id - ID of the network
  • voter_id - ID of user who voted
  • message_id - ID of message that was voted on
  • thread_id - ID of thread containing the message
  • created_at - Timestamp when vote was created
  • updated_at - Timestamp when vote was last updated
  • creation_mode - Mode used to create the vote
  • application_id - ID of application used to create vote

Campaigns.csv

Purpose: Contains information about campaigns in the network.

Properties:

  • id - Unique identifier for the campaign
  • name - Campaign name
  • api_url - API endpoint for campaign data
  • description - Campaign description
  • hashtags - Hashtags associated with campaign
  • state - Campaign state. Possible values include: ACTIVE, INACTIVE, ENDED
  • official - Whether campaign is official (true/false)
  • created_at - Timestamp when campaign was created
  • creator_id - ID of user who created the campaign
  • default_cover_image_url_template - Default cover image URL template
  • cover_image_url_template - Cover image URL template
  • permalink - Campaign permalink template
  • scope_id - ID of scope where campaign exists
  • scope_type - Type of scope. Possible values include: NETWORK
  • user_roles - User roles associated with campaign
  • targeted_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 version
  • file_id - Unique identifier for the file
  • name - File name
  • description - File description
  • uploader_id - ID of user who uploaded the file
  • uploader_type - Type of uploader. Possible values include: User
  • group_id - ID of group where file was uploaded
  • group_name - Name of group where file was uploaded
  • reverted_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 data
  • download_url - URL to download the file
  • path - File path in export
  • uploaded_at - Timestamp when file was uploaded
  • deleted_at - Timestamp when file was deleted (if applicable)
  • original_network - Original network where file was uploaded
  • storage_type - Type of storage. Possible values include: SHAREPOINT
  • scope_id - ID of scope where file exists
  • scope_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 communities
  • name - community name
  • description - community description
  • private - Whether community is private (true/false)
  • moderated - Whether community is moderated (true/false)
  • api_url - API endpoint for community data
  • created_by_id - ID of user who created the community
  • created_by_type - Type of entity that created the community. Possible values include: User
  • created_at - Timestamp when community was created
  • updated_at - Timestamp when community was last updated
  • deleted - 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 identifier
  • group_tags - Tags associated with the community
  • group_custom_cover_image - URL to custom cover image
  • office_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, remove
  • reaction_timestamp - Timestamp when reaction was made
  • reacted_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 message
  • replied_to_id - ID of message this is replying to (if applicable)
  • parent_id - ID of parent message in thread
  • thread_id - ID of the message thread
  • conversation_id - ID of private conversation (if applicable)
  • group_id - ID of group where message was posted
  • group_name - Name of group where message was posted
  • participants - List of participants in private conversation
  • in_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 message
  • sender_type - Type of sender. Possible values include: User
  • sender_name - Display name of sender
  • sender_email - Email address of sender
  • body - Plain text content of the message
  • delegate_id - ID of user posting on behalf of another (if applicable)
  • api_url - API endpoint for message data
  • attachments - 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 message
  • message_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 closed
  • praise_type - Type of praise.
  • gdpr_delete_url - URL for GDPR deletion
  • scope_id - ID of scope where message exists
  • scope_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 publish
  • notification_target - Target for notifications
  • is_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 importer
  • collaborators - List of collaborators on the message
  • collaborator_id - ID of collaborator
  • creation_mode - Mode used to create the message
  • application_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 network
  • thread_id - ID of the thread
  • message_id - ID of the message
  • operation - Type of operation performed
  • operation_performed_by - ID of user who performed the operation
  • operation_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 vote
  • network_id - ID of the network
  • voter_id - ID of user who voted
  • thread_id - ID of thread that was voted on
  • created_at - Timestamp when vote was created
  • updated_at - Timestamp when vote was last updated

Topics.csv

Purpose: Contains traditional Viva Engage topics.

Properties:

  • id - Unique identifier for the topic
  • name - Topic name
  • created_by - ID of user who created the topic
  • created_at - Timestamp when topic was created
  • api_url - API endpoint for topic data
  • description - Topic description

TopicSubscriptions.csv

Purpose: Contains user subscriptions to topics.

Properties:

  • id - Unique identifier for the subscription
  • user_network_id - ID of user network
  • subscriber_id - ID of subscribing user
  • subscription_type - Type of subscription
  • legacy_id - Legacy subscription ID
  • created_at - Timestamp when subscription was created
  • updated_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 record
  • user_prompt_view_times - Number of times user viewed prompts
  • group_recommendation_dismiss_times - Number of times user dismissed group recommendations
  • topic_recommendation_dismiss_times - Number of times user dismissed topic recommendations
  • group_recommendation_view_times - Number of times user viewed group recommendations
  • user_recommendation_view_times - Number of times user viewed user recommendations
  • topic_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 leader
  • leader_created_at - Timestamp when leader was created (Unix timestamp)
  • audience_name - Name of the audience
  • audience_created_at - Timestamp when audience was created (Unix timestamp)
  • audience_created_by - ID of user who created the audience
  • audience_updated_at - Timestamp when audience was last updated (Unix timestamp)
  • audience_updated_by - ID of user who last updated the audience
  • size - Size of the audience
  • audience_group_ids - Comma-separated list of group IDs in the audience
  • entire_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 topic
  • applicant_id - ID of user who applied the topic
  • target_id - ID of target content
  • group_id - ID of group where topic was applied
  • target_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 created
  • updated_at - Timestamp when application was last updated
  • topic_name - Name of the topic

VivaTopicCurationStateLogs.csv

Purpose: Contains logs of Viva Topic curation state changes.

Properties:

  • cortex_topic_id - ID of the Cortex topic
  • topic_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 change
  • committed_to_km_at - Timestamp when committed to knowledge management
  • created_at - Timestamp when log was created
  • updated_at - Timestamp when log was last updated

VivaTopics.csv

Purpose: Contains Viva Topics integrated with Viva Engage.

Properties:

  • id - Unique identifier for the Viva Topic
  • name - Topic name
  • created_by - ID of user who created the topic
  • created_at - Timestamp when topic was created
  • api_url - API endpoint for topic metadata
  • description - Topic description
  • legacy_id - Legacy topic ID from migration
  • merged_ids - IDs of topics that were merged
  • short_description - Short description of the topic
  • topic_curation_state - Curation state. Possible values include: APPROVED, PENDING, REJECTED

Important Notes

  1. Model names are case-insensitive: Group, group, and GROUP are all valid
  2. Default behavior: If no model parameter is provided, all supported models are exported
  3. Multiple models: Repeat the model parameter to export multiple specific models
  4. Streaming response: The export begins processing and streaming immediately upon request
  5. 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.