The v2 version is currently in Beta.
You can try it now, but expect bugs or unexpected behavior — your feedback helps stabilize the release.
Branch (v2) repository: V2 Here
To clone the v2 branch (recommended):
git clone -b v2 --single-branch https://github.com/TheNetsky/Microsoft-Rewards-Script.git👉 Support & feedback (V2 only): Our Discord server is reserved for v2-related issues and contributions. Please use it only to report problems, request help, or discuss improvements for v2. The old stable branch (v1 / 1.5.3) is not supported on this server.
Join here: https://discord.gg/h6Z69ZPPCz
Easiest way to get started — download and run:
-
Clone the v2 branch (see command above) or download the zip.
-
Run the setup script:
-
Windows: double-click
setup/setup.bator run it from a command prompt -
Linux / macOS / WSL:
bash setup/setup.sh
-
Alternative (any platform):
npm run setup
-
-
Follow the setup prompts. The script will:
- Rename
accounts.example.json→accounts.json - Ask for Microsoft account credentials
- Remind you to review
config.json - Install dependencies (
npm install) - Build the project (
npm run build) - Optionally start the script
- Rename
That's it — the setup script handles the rest.
- Install Nix from https://nixos.org/
- Run:
./run.sh- Copy
src/accounts.example.json→src/accounts.jsonand add accounts. - Edit
src/config.jsonas needed. - Install dependencies:
npm install- Build:
npm run build- Start:
npm run startBefore starting
- Remove local
/node_modulesand/distif you previously built. - Remove old Docker volumes when upgrading from v1.4 or earlier.
- You can reuse older
accounts.json.
Quick Docker (recommended for scheduling)
-
Clone v2 and configure
accounts.json. -
Ensure
config.jsonhas"headless": true. -
Edit
compose.yaml:- Set
TZ(timezone) - Set
CRON_SCHEDULE(use crontab.guru for help) - Optional:
RUN_ON_START=true
- Set
-
Start:
docker compose up -d- Monitor:
docker logs microsoft-rewards-scriptThe container randomly delays scheduled runs by ~5–50 minutes to appear more natural.
- Headless=false cleanup: If you stop the script without closing browser windows, use Task Manager /
npm run kill-chrome-winto close leftover instances. - Scheduling advice: Run at least twice daily. Use
"runOnZeroPoints": falsein config to skip runs with no points. - Multiple accounts: Use
clustersinconfig.jsonto run accounts in parallel.
Edit src/config.json to customize behavior.
| Setting | Description | Default |
|---|---|---|
baseURL |
Microsoft Rewards URL | https://rewards.bing.com |
sessionPath |
Session/fingerprint storage | sessions |
headless |
Run browser in background | false |
parallel |
Run mobile/desktop tasks at once | true |
runOnZeroPoints |
Run when no points available | false |
clusters |
Concurrent account instances | 1 |
| Setting | Description | Default |
|---|---|---|
saveFingerprint.mobile |
Reuse mobile fingerprint | false |
saveFingerprint.desktop |
Reuse desktop fingerprint | false |
| Setting | Description | Default |
|---|---|---|
workers.doDailySet |
Do daily set | true |
workers.doMorePromotions |
Promotional offers | true |
workers.doPunchCards |
Punchcard tasks | true |
workers.doDesktopSearch |
Desktop searches | true |
workers.doMobileSearch |
Mobile searches | true |
workers.doDailyCheckIn |
Daily check-in | true |
workers.doReadToEarn |
Read-to-earn | true |
| Setting | Description | Default |
|---|---|---|
searchOnBingLocalQueries |
Use local queries | false |
searchSettings.useGeoLocaleQueries |
Geo-based queries | false |
searchSettings.scrollRandomResults |
Random scrolling | true |
searchSettings.clickRandomResults |
Random link clicks | true |
searchSettings.searchDelay |
Delay between searches | 3-5 minutes |
searchSettings.retryMobileSearchAmount |
Mobile retry attempts | 2 |
| Setting | Description | Default |
|---|---|---|
globalTimeout |
Action timeout | 30s |
logExcludeFunc |
Exclude functions from logs | SEARCH-CLOSE-TABS |
proxy.proxyGoogleTrends |
Proxy Google Trends | true |
proxy.proxyBingTerms |
Proxy Bing Terms | true |
| Setting | Description | Default |
|---|---|---|
webhook.enabled |
Enable Discord notifications | false |
webhook.url |
Discord webhook URL | null |
conclusionWebhook.enabled |
Summary-only webhook | false |
conclusionWebhook.url |
Summary webhook URL | null |
Account & Session
- Multi-account support
- Persistent sessions & fingerprints
- 2FA support & passwordless options
Automation
- Headless operation & clustering
- Selectable task sets
- Proxy support & scheduling (Docker)
Search & Rewards
- Desktop & mobile searches
- Emulated browsing, scrolling, clicks
- Daily sets, promotions, punchcards, quizzes
Interactions
- Quiz solving (10 & 30–40 point variants)
- Polls, ABC quizzes, “This or That” answers
Notifications
- Discord webhooks and summary webhooks
- Extensive logs for debugging
Use at your own risk. Automation may cause suspension or banning of Microsoft Rewards accounts. This project is provided for educational purposes only. The maintainers are not responsible for account actions taken by Microsoft.
Contributions are welcome, but please keep changes compatible with the existing configuration system. This repository is primarily for v2 development — coordinate on Discord (v2 server) for feature work and bug reports.