Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Rocket.Chat team messaging - channels, messages, users, integrations via REST API
Rocket.Chat team messaging - channels, messages, users, integrations via REST API
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Open-source team chat platform for communication and collaboration.
Rocket.Chat supports: Channels (public/private), DMs, threads User and role management Integrations (webhooks, bots) Federation and omnichannel Three room types: channels (channels.*), groups/private (groups.*), DMs (im.*). Generic chat.* endpoints work across all types via roomId.
# Header-based auth curl -s \ -H "X-Auth-Token: $RC_TOKEN" \ -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/me" # Get tokens from login curl -s -X POST \ -H "Content-Type: application/json" \ -d '{"user":"username","password":"password"}' \ "$RC_URL/api/v1/login" | jq '{userId: .data.userId, authToken: .data.authToken}'
roomId โ room identifier (e.g. GENERAL, ByehQjC44FwMeiLbX) msgId โ alphanumeric message ID (not a timestamp like Slack) emoji โ name without colons (e.g. thumbsup, white_check_mark) Message context lines include rocketchat message id and room fields โ reuse them directly.
# List channels curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.list?count=50" # Channel info curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.info?roomId=ROOM_ID" # Get channel history curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.history?roomId=ROOM_ID&count=50" # Create channel curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"name":"new-channel","members":["user1"]}' \ "$RC_URL/api/v1/channels.create" # Archive channel curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"roomId":"ROOM_ID"}' \ "$RC_URL/api/v1/channels.archive" # Set channel topic curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"roomId":"ROOM_ID","topic":"Weekly standup notes"}' \ "$RC_URL/api/v1/channels.setTopic" # List channel members curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.members?roomId=ROOM_ID&count=50" For private groups use groups.*, for DMs use im.*. Same query params.
# Send message (simple) curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"channel":"#general","text":"Hello!"}' \ "$RC_URL/api/v1/chat.postMessage" channel accepts: #channel-name, @username (DM), or a roomId. # Send message (advanced โ custom _id, alias, avatar) curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"message":{"rid":"ROOM_ID","msg":"Hello from Clawdbot"}}' \ "$RC_URL/api/v1/chat.sendMessage" # Read recent messages curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.messages?roomId=ROOM_ID&count=20" # Edit message curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"roomId":"ROOM_ID","msgId":"MSG_ID","text":"Updated text"}' \ "$RC_URL/api/v1/chat.update" # Delete message curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"roomId":"ROOM_ID","msgId":"MSG_ID"}' \ "$RC_URL/api/v1/chat.delete" # Search messages curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/chat.search?roomId=ROOM_ID&searchText=keyword" # React to message (toggle โ calling again removes it) curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"messageId":"MSG_ID","emoji":"thumbsup"}' \ "$RC_URL/api/v1/chat.react" # Get message (includes reactions in message.reactions field) curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/chat.getMessage?msgId=MSG_ID"
# Pin a message curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"messageId":"MSG_ID"}' \ "$RC_URL/api/v1/chat.pinMessage" # Unpin a message curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"messageId":"MSG_ID"}' \ "$RC_URL/api/v1/chat.unPinMessage" # List pinned messages (query is URL-encoded {"pinned":true}) curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/channels.messages?roomId=ROOM_ID&query=%7B%22pinned%22%3Atrue%7D"
# List users curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/users.list" # Get user info (by username or userId) curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/users.info?username=john" curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/users.info?userId=USER_ID" # Create user (admin) curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"email":"user@example.com","name":"John","username":"john","password":"pass123"}' \ "$RC_URL/api/v1/users.create" # Set user status curl -s -X POST -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ -H "Content-Type: application/json" \ -d '{"message":"In a meeting","status":"busy"}' \ "$RC_URL/api/v1/users.setStatus"
# List custom emoji curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/emoji-custom.list"
# List webhooks curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/integrations.list?type=webhook-incoming" # Use incoming webhook (no auth needed) curl -s -X POST \ -H "Content-Type: application/json" \ -d '{"text":"Alert from external system!"}' \ "$RC_URL/hooks/WEBHOOK_ID/WEBHOOK_TOKEN"
# Server statistics curl -s -H "X-Auth-Token: $RC_TOKEN" -H "X-User-Id: $RC_USER_ID" \ "$RC_URL/api/v1/statistics"
Default: 20 requests/second per user. Check headers: X-RateLimit-Limit, X-RateLimit-Remaining.
React with white_check_mark to mark completed tasks Pin key decisions or weekly status updates Search messages for past discussions before asking a question Create project-specific channels and set descriptive topics DM users via chat.postMessage with "channel": "@username" Use incoming webhooks for external system alerts without auth For full documentation, see Rocket.Chat API Docs.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.