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
- Log in to your Rocket.Chat instance
- Click your avatar in the top-left corner then Profile
- Scroll down to Personal Access Tokens
- Click Add and give the token a name (e.g.
orbtop-export) - If prompted, enter your password and enable 2FA if required
- 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
statusfield —AUTH_ERRORmeans the token is invalid or expired;INPUT_ERRORmeans 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.