OrbTop

Rocket.Chat Message Scraper

SOCIAL MEDIABUSINESS

Rocket.Chat Message Scraper

Export messages, channels, private groups, and direct messages from any Rocket.Chat instance using the official REST API.

What it does

Connect to any self-hosted or cloud Rocket.Chat instance and download your message history. Authenticate with a personal access token and choose which room types to export: public channels, private groups, or direct messages. Optionally filter by date range or specific room IDs.

Works with Rocket.Chat Community Edition, Enterprise Edition, and cloud-hosted workspaces.

Use cases

  • Compliance archival — Export message history for legal or regulatory retention
  • Migration — Move message data to a new platform or data warehouse
  • Knowledge base extraction — Mine conversations for documentation and institutional knowledge
  • Analytics — Analyze communication patterns, response times, and topic trends
  • Backup — Create offline snapshots of workspace history

Setup: generating your personal access token

  1. Log in to your Rocket.Chat instance
  2. Click your avatar in the top-left corner then Profile
  3. Scroll down to Personal Access Tokens
  4. Click Add and give the token a name (e.g. orbtop-export)
  5. If prompted, enter your password and enable 2FA if required
  6. Copy both the Token and your User ID (shown above the token list)

These two values go into the Auth Token and User ID input fields.

Input parameters

Parameter Description Default
Instance URL Base URL of your Rocket.Chat instance https://open.rocket.chat
User ID Your Rocket.Chat User ID Required
Auth Token Personal access token Required
Room IDs Limit to specific rooms (optional) All accessible rooms
Room Types Types to scrape: c (channels), p (private groups), d (direct messages) All types
Date From Only fetch messages on or after this date (ISO format) No filter
Date To Only fetch messages on or before this date (ISO format) No filter
Include Thread Replies Fetch replies nested in threads false
Max Items Maximum records to save (0 = unlimited) No limit

Output format

Each exported message is saved as one dataset record:

Field Description
instance_url The Rocket.Chat instance base URL
room_id Rocket.Chat room identifier
room_name Human-readable room name
room_type c (channel), p (private group), d (direct message)
room_topic Room topic string
room_description Room description string
message_id Unique message identifier
message_rid Room ID the message belongs to
message_ts Message creation timestamp (ISO 8601)
message_update_at Last edit timestamp (ISO 8601)
message_user_id Sender User ID
message_user_username Sender username
message_user_name Sender display name
message_msg Plain-text message body
message_type Message type (empty = normal, rm = deleted, uj = join, etc.)
message_thread_msg_id Parent message ID if this is a thread reply
message_attachments JSON array of file/image attachments
message_reactions JSON map of emoji reactions and users
message_urls JSON array of embedded URLs
message_mentions JSON array of @mentions
message_channels JSON array of #channel references

Pricing

Pay-per-result. The actor charges a small start fee plus a per-record fee for each message saved. No charge for error records.

Notes

  • The scraper pages through the Rocket.Chat API (100 messages per request). Large workspaces may take time depending on instance rate limits.
  • Authentication failures produce an error record in the dataset and exit cleanly. Check the status field — AUTH_ERROR means the token is invalid or expired; INPUT_ERROR means a required field is missing.
  • Thread replies require an extra API call per thread and are disabled by default. Enable with includeThreadReplies: true.
  • The API only returns rooms and messages visible to the authenticated user. Admin accounts can access more rooms.
  • Private groups and direct messages require the account to be a member of the room.