Rocket.Chat Message Scraper
Pricing
Pay per event
Rocket.Chat Message Scraper
Export messages, channels, private groups, and direct messages from any Rocket.Chat instance using the REST API. Authenticate with a personal access token. Supports date-range filters, room allowlists, and full thread history.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
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.