Files
autoreg-skills-max/skills/bulk-account-registration/references/clerk-oauth-only-detection.md

2.6 KiB

Clerk Auth: Detecting OAuth-Only Sign-Up

Problem

When a platform uses Clerk for auth, email sign-up may silently fail with captcha_missing_token or email_address is not a valid parameter — even with a valid Turnstile token. The root cause is NOT the CAPTCHA: the Clerk dashboard has email sign-up DISABLED.

Detection

Before attempting email registration, check the Clerk environment:

curl -s https://clerk.PLATFORM.COM/v1/environment?__clerk_api_version=2025-11-10 | \
  python3 -c "import sys,json; d=json.load(sys.stdin); print(d['auth_config']['identification_requirements'])"

Key field: auth_config.identification_requirements — a list of lists. Each sublist is a set of strategies where at least ONE must be used.

// OAuth-ONLY (tuskcentral.ai):
"identification_requirements": [["oauth_apple","oauth_facebook","oauth_google","oauth_token_apple"],[]]

// Email + OAuth:
"identification_requirements": [["email_address","oauth_google"],[]]

// Email only:
"identification_requirements": [[]]

If email_address is NOT in any sublist, email sign-up is impossible. The API will return:

  • captcha_missing_token (code misleading — CAPTCHA was fine, but email isn't allowed)
  • email_address is not a valid parameter for this request

Turnstile Token Still Needed

Even for OAuth sign-up, the Turnstile token may be required. The solver service at solver/service.py (port 8191) provides Turnstile tokens. Extract the sitekey from display_config.captcha_public_key (visible) or display_config.captcha_public_key_invisible.

Example: tuskcentral.ai

Clerk API:     https://clerk.tuskcentral.ai/v1/
Publishable:   pk_live_Y2xlcmsudHVza2NlbnRyYWwuYWkk
Sitekey:       0x4AAAAAAAWXJGBD7bONzLBd (visible)
Invisible:     0x4AAAAAAAFV93qQdS0ycilX
Sign-up:       OAuth only (Google, Apple, Facebook)
Sign-in:       Email + OTP (email_code) OR OAuth
Identification: [["oauth_apple","oauth_facebook","oauth_google","oauth_token_apple"],[]]
Block disposable: true
Cloudflare:    Yes — direct API calls return 403 error 1010; browser-based Clerk JS SDK works

Workflow

  1. GET /v1/environment → check identification_requirements
  2. If OAuth-only → switch to Google OAuth (or abandon email approach)
  3. If email allowed → get Turnstile token from solver, then POST /v1/client/sign_ups
  4. Never waste CAPTCHA solver credits on OAuth-only platforms

Solver Service Dependency

The Turnstile solver at solver/service.py (port 8191) must be running:

cd "<project>/solver" && python service.py

Check: curl -s http://127.0.0.1:8191/health