Stuck on Codex Phone Verification? I Used a Thai Number and Passed in 3 Minutes (With Fixes for 4 Common Errors)
Codex has recently started forcing phone number verification popups. +86 doesn't work — OpenAI does not support mainland Chinese phone numbers. Below are three working bypass methods, with real test data and error troubleshooting.
Quick Overview of the Three Methods
| Method | Cost | Stability | Best For |
|---|---|---|---|
| A. SMS Platform | A few bucks per use | Limited — one-time use, shared numbers | Those who just want to quickly get an API Key |
| B. auth.json Credential Migration | Free | Limited — expires with the session | Those who already have a browser logged into ChatGPT |
| C. Overseas Physical Number / eSIM | Tens to hundreds of dollars | Stable long-term | Heavy users who don't want to deal with this repeatedly |
Method A: SMS Platform (Fastest, One-Time Solution)
If you just need to generate your first API Key or unlock Codex, an SMS platform is the fastest way. I used Hero-SMS; here's the step-by-step.
Why Choose a Thai Number
OpenAI's SMS gateway (Twilio) has different routing coverage for different country codes. Based on real tests:
| Country | Platform | Price | Received Code | Time | Notes |
|---|---|---|---|---|---|
| Thailand | Hero-SMS | ~$0.3 | Yes | ~25s | Stable, recommended |
| Indonesia | Hero-SMS | ~$0.1 | No | - | Low-price number pool already contaminated |
| Chile | Hero-SMS | ~$0.4 | Yes | ~40s | Works, but slower |
| UK | NexSMS | ~$0.5 | Yes | ~15s | Fast but expensive |
| Philippines | Hero-SMS | ~$0.2 | Sometimes | ~60s | Unstable, not recommended |
Data based on real tests in July 2026. SMS platform number pools change dynamically. If a country fails twice in a row, switch to a different country and retry.
Step-by-Step Instructions
Open hero-sms.com/cn, register and top up a small amount (Alipay supported; a few bucks is enough).
Type
OpenAIin the platform's search box to find the corresponding service.
Select Thailand, country code +66. Pick a provider with a reasonable price and high success rate, click to buy and get the number.

Enter the number on the Codex / OpenAI verification page and click send verification code. Go back to Hero-SMS and wait to receive it (usually 15-60 seconds).


Enter the 6-digit code back on the OpenAI page. Verification complete.

SMS Platform Anti-Pitfall Tips
- Don't go for the cheapest. Ultra-cheap numbers priced at a few cents have typically been heavily used and are already flagged by OpenAI — they can't receive verification codes.
- Cancel if no code in 3 minutes. Legitimate platforms don't charge if no code is received. Switch numbers decisively — don't wait.
- Don't spam the resend button. Repeatedly resending triggers OpenAI's firewall and temporarily blacklists your IP.
- Don't buy pre-made black-market accounts. "Ready-made accounts with API Keys" on the market have unclear origins, with a high risk of being reclaimed or banned through association.
Method B: auth.json Credential Migration (Free, No Phone Number Needed)
If your browser is already logged into ChatGPT (regardless of how you logged in), you can directly copy your login credentials to Codex and skip the phone verification.
How It Works
ChatGPT's web login state is stored in the browser's auth.json file, which contains a session token. When Codex CLI starts, it checks the ~/.codex/ directory for this file — if it exists and the token is valid, it won't prompt for phone verification.
This explains why some people's Codex works right away: their browser is already logged into ChatGPT, and Codex automatically read the credentials during installation.
Steps
Open chatgpt.com and confirm you're logged in.
Press F12 to open Developer Tools → Application → Cookies → find
__Secure-next-auth.session-token.Write this token to
~/.codex/auth.jsonin the following format:json{ "session_token": "your-token-value" }Restart Codex.
Risks
- Session tokens have an expiration time. After expiry, you'll need to re-export.
- Do not send this file to anyone — having it means having full access to your ChatGPT account.
This method is adapted from Landian News and the V2EX community. If the token expires frequently, consider falling back to Method A or C.
Method C: Overseas Physical Number / eSIM (One-Time Setup, Lasting Peace of Mind)
If you use Codex every day and don't want to suddenly be asked for re-verification one day when the SMS platform number has already been recycled — get your own overseas number.
| Option | Cost | Notes |
|---|---|---|
| UK GiffGaff | Zero monthly fee | Free SMS reception, available on Taobao; send one text every 6 months to keep the number active |
| US Ultra Mobile PayGo | $3/month | Supports Wi-Fi Calling, usable within China |
| eSIM (e.g. Germany O2) | ~€10/month | Requires passport KYC; phone must support eSIM |
With your own overseas number, you no longer need to rely on SMS platforms. After binding it to your OpenAI account, you can also use it for account recovery and enabling two-factor authentication.
Common Errors and Solutions
1. Not Receiving the Verification Code
Cause: The number range doesn't support OpenAI, the SMS channel is congested, or your current proxy IP is flagged as high-risk.
Solution: Cancel the order and switch to another country (e.g. Thailand → Chile → UK). Switch to a cleaner proxy node and wait 5 minutes before retrying.
2. "Phone Number Already Used" Error
Cause: OpenAI limits a single phone number to 2-3 accounts at most. In a shared number pool, the number you received has already reached the limit.
Solution: Cancel the order (no charge if no code received) and buy a new number.
3. "Unsupported Country" Error
Cause: Your proxy's exit IP is in a region blocked by OpenAI (direct connections from within China, Hong Kong nodes, certain data center IP ranges).
Solution: Switch your proxy to the US, Japan, Singapore, or another OpenAI-supported region. Open a browser incognito window, clear cookies, and retry.
4. Verification Passed, but Codex Shows 403 / "No Active Subscription"
Cause: Phone verification only lifts the security risk control — it does not mean you have Codex API calling quota.
Solution: Bind a credit card and subscribe to ChatGPT Plus/Pro, or top up your API balance on the OpenAI Platform. Free accounts, even after passing verification, have extremely limited calling quota.
Summary
- One-time use only → Method A, SMS platform, done in 3 minutes.
- Already logged into ChatGPT → Method B, auth.json, free bypass.
- Long-term use, don't want the hassle → Method C, get an overseas physical SIM.
Phone verification is just OpenAI's security threshold, not a paywall. Passing verification ≠ unlimited quota. If you're a heavy user, just pay for a subscription honestly — the cost of dealing with workarounds will eventually exceed the subscription fee.
