The project's README from github.com/xinxinshuhao-create/grok-register. As one markdown file: README.md.
Automated account registration toolkit for x.ai (Grok) with SSO token extraction, OAuth Device Flow minting, and auto-replenish daemon for API gateway integration.
grok.py) — curl_cffi-based engine, supports YesCaptcha for Turnstile solvingsso_to_cpa.py) — OAuth Device Flow with corrected scope, converts SSO tokens to access/refresh tokensauto_replenish.py) — monitors account pool, registers new accounts on demand, pushes to API gatewaytoken_daemon.py) — keeps tokens aliveremint_oauth.py) — re-mints revoked tokens via Device Flow when xAI invalidates refresh tokensturnstile_solver_local.py) — local CAPTCHA solving service (Patchright)cloakbrowser_solver.py) — stealth-Chromium CAPTCHA solving service (CloakBrowser)email_service.py) — multi-provider support (LuckMail, MailNest)clash_rotator.py) — proxy rotation for registration# Clone
git clone https://github.com/xinxinshuhao-create/grok-register.git
cd grok-register
# Install dependencies
uv sync
# Configure
cp .env.example .env
# Edit .env with your API keys
# Create output directory
mkdir -p keys
# Run registration
uv run python grok.py
Copy .env.example to .env and fill in:
| Variable | Required | Description |
|---|---|---|
YESCAPTCHA_KEY |
Yes | YesCaptcha API key for Turnstile solving |
EMAIL_PROVIDER |
No | Email provider: luckmail / mailnest / gptmail / tmail / fce / gmail (default: luckmail) |
LUCKMAIL_API_KEY |
If luckmail | LuckMail API key |
LUCKMAIL_PROJECT_CODE |
No | LuckMail project code (default: grok) |
LUCKMAIL_EMAIL_TYPE |
No | Email type (default: ms_imap) |
LUCKMAIL_DOMAIN |
No | Email domain (default: outlook.com) |
THREADS |
No | Concurrent registration threads (default: 1) |
GROK2API_BASE |
No | API gateway URL for auto-replenish (default: http://127.0.0.1:8000) |
GROK2API_USER |
No | API gateway admin user (default: admin) |
GROK2API_PASS |
No | API gateway admin password |
GROK_PROXY |
No | HTTP proxy for registration (default: http://127.0.0.1:7897) |
| Provider | Cost | Email domain | Headed Chrome | Notes |
|---|---|---|---|---|
luckmail (default) |
Paid (¥0.02/inbox) | Outlook.com addresses | No | Verified for Grok codes (76-99s) |
gmail |
Free | Your own Gmail (+alias) | No | Highest trust; set GMAIL_BASE_EMAIL + GMAIL_APP_PASSWORD |
fce |
Free | Platform domains: @ditapi.info, @fce.email |
No | Pure REST API; set FCE_API_KEY. Gmail/Outlook addresses are NOT accepted as inboxes; custom domains require paid plans ($29/mo+). Free tier has rate limits; OTP endpoint returns __DETECTED__ on free tier — codes are parsed from messages instead |
tmail |
Free | Shared eu.org domains | Yes | Anonymous, no key |
gptmail |
Free | Shared disposable domains | Yes | xAI does not deliver codes to these domains (use for other platforms) |
outlook |
Free | Your own Outlook/Hotmail (+tag alias) | No | High trust (personal domain). Set OUTLOOK_ACCOUNTS + OUTLOOK_TOKENS_FILE; requires one-time Microsoft OAuth authorization per account (see below) |
mailnest |
Paid | Outlook-based | No | Set MAILNEST_API_KEY + MAILNEST_PROJECT_CODE |
⚠️ xAI actively blocks shared disposable-mail domains (mail.tm, gptmail domains). For Grok registration prefer
luckmail(Outlook addresses) orgmail/outlook(your own accounts). Maintainer's production setup usesluckmail. The free providers above are provided as options for other users; their availability may change without notice.
The outlook provider reads codes via Microsoft OAuth (XOAUTH2 IMAP). Authorize each account once:
# uses the same authorization flow as unified-mail's graph_auth.py
uv run python outlook_auth.py [email protected]
The resulting refresh token is stored in OUTLOOK_TOKENS_FILE (default ./outlook_tokens.json),
format: {"[email protected]": {"refresh_token": "..."}}. Only accounts with a valid refresh
token are used for registration.
# Basic
uv run python grok.py
# With luckmail provider and 8 threads
uv run python grok.py --email-provider luckmail --threads 8
Output:
keys/grok.txt — SSO token listkeys/accounts.txt — email:password:sso formatuv run python sso_to_cpa.py --all
Converts SSO tokens to OAuth access/refresh tokens via Device Flow.
uv run python auto_replenish.py --daemon 600 --min 2
Monitors account pool every 600s, registers new accounts when pool drops below 2.
uv run python token_daemon.py
When xAI invalidates refresh tokens (happens on model releases or account policy changes), re-mint them:
uv run python remint_oauth.py
Re-runs Device Flow with existing SSO tokens to obtain fresh access/refresh tokens.
uv run python turnstile_solver_local.py
Local HTTP service for CAPTCHA solving (Patchright + system Chrome).
# Install CloakBrowser (once)
pip install cloakbrowser
cloakbrowser install
# Start the HTTP service
uv run python cloakbrowser_solver.py
Uses CloakBrowser's stealth Chromium to pass Cloudflare Turnstile without a paid API.
Set GROK_PROXY env var to route through a proxy (optional).
uv run python cloakbrowser_solver.py --once --url https://example.com --key YOUR_SITE_KEY
Registered accounts and minted tokens can be used with grok2api to access the following models.
These are the models you get immediately after registration — no SuperGrok subscription needed:
| Model | Capability | How to get |
|---|---|---|
grok-chat-fast |
Chat (fast mode) | SSO token → Web pool |
grok-imagine-image |
Image generation (lite) | SSO token → Web pool |
grok-4.5 |
Chat + reasoning + search, 1M output tokens | SSO → Device Flow (sso_to_cpa.py) → Build pool |
grok-4.6 |
Chat + reasoning + search, 500K context, long-running agents, xhigh reasoning |
SSO → Device Flow (sso_to_cpa.py) → Build pool |
✅ All four models above have been tested and confirmed working end-to-end as of 2026-09-05.
Note: After Grok 4.6 release, xAI temporarily removed
grok-4.5from the Build pool (8/14), but it has been reinstated via CPA auths import API (2026-09-05). Bothgrok-4.5andgrok-4.6are now available in the Build pool. Useremint_oauth.pyor the grok2api admin import API to re-mint tokens if xAI revokes them.Image generation: Only
grok-imagine-image-liteis available for free accounts (fixed 832×1248 portrait, basic prompt following).grok-imagine-image-quality-liteis currently returning 502 errors. HD/edit/video models require Super subscription.
The following models are available in the codebase but require a paid account tier:
| Model | Capability | Tier |
|---|---|---|
grok-chat-auto |
Chat (auto mode) | Super |
grok-chat-expert |
Chat (expert mode) | Super |
grok-chat-heavy |
Chat (heavy mode) | Heavy |
grok-imagine-image-quality |
Image generation (HD) | Super |
grok-imagine-image-edit |
Image editing | Super |
grok-imagine-video |
Video generation | Super |
Other Build/Console models available via Device Flow: grok-4.3, grok-4.20-0309-reasoning, grok-4.20-0309-non-reasoning, grok-4.20-multi-agent-0309, grok-build-0.1 (code/composer, 256K output).
The sso_to_cpa.py script implements OAuth 2.0 Device Flow with the corrected scope:
openid profile email offline_access grok-cli:access api:access
This was validated against the upstream OAuth endpoint and successfully mints access/refresh tokens.
This project builds upon and references work from:
MIT
本工具仅用于教育和技术研究目的。使用者须自行承担全部责任。
This project is for educational and research purposes only. Users assume all responsibility.