- Added `waitForPageReady` and `waitForElementSmart` functions to replace fixed timeouts with intelligent checks. - Updated various parts of the codebase to utilize the new smart wait functions, enhancing performance and reliability. - Improved logging for page readiness and element detection. - Refactored login and browser functions to reduce unnecessary waits and enhance user experience. - Fixed selector for MORE_ACTIVITIES to avoid strict mode violations. - Added unit tests for smart wait utilities to ensure functionality and performance.
💡 What is this?
A TypeScript bot that automatically earns Microsoft Rewards points by completing:
- 🔍 Desktop & mobile Bing searches
- 📋 Daily quizzes, polls, and activities
- 🎁 Promotional offers and punch cards
- 📚 Read-to-earn tasks
Built with anti-detection to work safely and reliably.
✨ Features
- 🤖 Human-like behavior — Natural search patterns
- ⏰ Auto-scheduling — Set it and forget it
- <EFBFBD> Multi-account support — Manage multiple accounts
- 🔔 Notifications — Discord webhooks & mobile alerts
- 🐳 Docker ready — Easy containerized deployment
- 🌐 Proxy support — Enhanced privacy (optional)
🚀 Quick Start
Prerequisites
- Node.js 20+ (v22 recommended) — Download
- Microsoft account(s) with email + password
Installation
# 1. Download the project
git clone https://github.com/Obsidian-wtf/Microsoft-Rewards-Bot.git
cd Microsoft-Rewards-Bot
# 2. Install dependencies
npm install
# 3. Setup and run
npm run setup
That's it! The wizard will guide you through account setup and start earning points.
📖 Need Help?
First time using the bot? → 📘 Getting Started Guide
The complete guide covers:
- ✅ Detailed installation steps
- ✅ Creating Microsoft accounts with referrals (+7,500 points/month!)
- ✅ Setting up 2FA authentication
- ✅ Configuration options
- ✅ Troubleshooting common issues
📚 Documentation
New to the bot? Start here: 📘 Getting Started Guide
Need specific info? Check the 📖 Documentation Hub
📑 Quick Links
| Guide | Description |
|---|---|
| Getting Started | Complete installation tutorial |
| Accounts & 2FA | Setup accounts with authentication |
| Configuration | Customize bot behavior |
| Scheduling | Automate with cron/Task Scheduler |
| Notifications | Discord & mobile alerts |
| Troubleshooting | Fix common issues |
📊 Dashboard (BETA)
Monitor and control your bot through a local web interface:
# Start dashboard separately
npm run dashboard
# Or enable auto-start in config.jsonc:
{
"dashboard": {
"enabled": true,
"port": 3000
}
}
Access at http://localhost:3000 to:
- 📈 View real-time points and account status
- 📋 Monitor live logs with WebSocket streaming
- 🔄 Manually sync individual accounts
- ⚙️ Edit configuration with automatic backup
- 📊 View historical run summaries and metrics
📖 Full Dashboard API Documentation
🆕 Account Creator (BETA)
Automatically create new Microsoft accounts with advanced security features:
# Interactive mode (asks everything)
npm run creator
# With specific recovery email (auto-detected, no flag needed!)
npm run creator https://rewards.bing.com/welcome?rh=YOUR_CODE -y backup@gmail.com
✨ Features:
- 🎯 Language-independent — Works in any language
- 🔐 Strong passwords — Automatically generated (12-16 chars)
- 📧 Realistic emails — 200+ name database for natural-looking addresses
- 🎂 Natural birthdates — Random age 18-50 years old
- 🛡️ Recovery email — Optional backup email for account recovery
- 🔒 2FA support — TOTP authentication with Google Authenticator
- 🔑 TOTP secrets — Extracts and saves secret keys
- 💾 Complete backups — Saves all details including recovery codes
- 🤖 CAPTCHA support — Manual solving (human verification)
- <EFBFBD> Organized storage — Individual files per account
🎛️ Command Arguments (SIMPLIFIED!):
<url>— Referral URL (auto-detected if starts with http)<email>— Recovery email (auto-detected if contains @)-y— Auto-accept mode (enables recovery + 2FA automatically)
That's it! No more confusing flags. 🎉
⚙️ How It Works:
| Command | Recovery Email | 2FA | Notes |
|---|---|---|---|
npm run creator |
❓ Prompts | ❓ Prompts | Interactive mode |
npm run creator -y |
✅ Prompts for email | ✅ Enabled | Auto-accept all |
npm run creator -y backup@gmail.com |
✅ Uses provided email | ✅ Enabled | Full automation |
npm run creator URL -y |
✅ Prompts for email | ✅ Enabled | With referral |
npm run creator URL -y backup@gmail.com |
✅ Uses provided email | ✅ Enabled | Complete setup |
📋 What happens:
- Creates Microsoft account (email, password, birthdate, names)
- Enrolls in Microsoft Rewards (if referral URL provided)
- [Optional] Adds recovery email with verification
- [Optional] Sets up 2FA with TOTP (Google Authenticator compatible)
- Extracts and saves TOTP secret key and recovery code
- Saves complete account info to
accounts-created/directory
🔐 Saved Information:
- Email and password
- Full name and birthdate
- Referral URL (if used)
- Recovery email (if added)
- TOTP secret key (for authenticator apps)
- 5-part recovery code (emergency access)
⏰ Automatic Scheduling
Configure automatic task scheduling directly from config.jsonc - perfect for Raspberry Pi!
{
"scheduling": {
"enabled": true, // Just set this to true
"type": "auto", // Automatically detects Windows/Linux/Raspberry Pi
"cron": {
"schedule": "0 9 * * *" // Raspberry Pi/Linux: Daily at 9 AM
},
"taskScheduler": {
"schedule": "09:00" // Windows: Daily at 9:00
}
}
}
Then simply run:
npm start
The bot will automatically configure cron (Linux/Raspberry Pi) or Task Scheduler (Windows) for you!
📖 Full Scheduling Documentation
🐳 Docker Quick Start
For containerized deployment with built-in scheduling:
# Ensure accounts.jsonc and config.jsonc exist in src/
docker compose up -d
# View logs
docker logs -f microsoft-rewards-script
# Check status
docker compose ps
Container includes:
- ✅ Built-in cron scheduling
- ✅ Automatic timezone handling
- ✅ Random execution delays (anti-detection)
- ✅ Health checks
⚙️ Configuration Highlights
The script works great with default settings, but you can customize everything in src/config.jsonc:
{
"search": {
"useLocalQueries": false, // Prioritize Google Trends API (recommended)
"settings": {
"useGeoLocaleQueries": true // Use account country for searches (FR, DE, JP, etc.)
}
},
"queryDiversity": {
"enabled": true, // Mix multiple search sources
"sources": ["google-trends", "reddit", "local-fallback"]
},
"humanization": {
"enabled": true, // Enable natural behavior patterns
"stopOnBan": true // Stop on ban detection
},
"workers": {
"doDesktopSearch": true, // Desktop Bing searches
"doMobileSearch": true, // Mobile Bing searches
"doDailySet": true, // Daily tasks and quizzes
"doMorePromotions": true, // Promotional offers
"doPunchCards": true // Multi-day challenges
},
"execution": {
"clusters": 1, // Parallel account processing
"runOnZeroPoints": false // Skip when no points available
}
}
📖 Complete Configuration Guide
🎯 What Gets Automated
The script automatically completes:
- ✅ Desktop Searches — 30+ searches on Bing (desktop user-agent)
- ✅ Mobile Searches — 20+ searches on Bing (mobile user-agent)
- ✅ Daily Set — Quizzes, polls, and daily activities
- ✅ More Activities — Promotional tasks and special offers
- ✅ Punch Cards — Multi-day challenges and bonus tasks
- ✅ Daily Check-in — Simple check-in for bonus points
- ✅ Read to Earn — Article reading tasks
All while maintaining natural behavior patterns to minimize detection risk.
💡 Usage Tips
- Run regularly: Use cron, systemd timers, or Windows Task Scheduler (see docs)
- Use humanization: Always keep
humanization.enabled: truefor safety - Monitor logs: Check for ban warnings and adjust settings if needed
- Multiple accounts: Use the
clusterssetting to run accounts in parallel - Start small: Test with one account before scaling up
- Capture logs: Pipe output to a file or webhook for later review
✅ Tests
npm run test: runs the node:test suite with ts-node to validate critical utilities.
🆘 Need Help?
- 💬 Discord Community — Get support & updates
- 📖 Documentation — Complete guides
- 🐛 Report Bug — Found an issue?
- <EFBFBD> Troubleshooting — Fix common problems
⚠️ Disclaimer
This bot automates Microsoft Rewards interactions, which may violate their Terms of Service.
Risks:
- ⚠️ Account suspension or ban
- 🚫 Loss of points and rewards
Educational purposes only. Use at your own risk.
📄 License
CC BY-NC-SA 4.0 — Personal use only, no commercial use.
See LICENSE for details.
⭐ Star the repo • 💬 Join Discord • <EFBFBD> Documentation
Made with ❤️ by the community
