Unlock NBA, NFL & MLB on Polymarket from the US
Polymarket geoblocks sports markets for US IP addresses via the CLOB API. Here's exactly what's blocked, why, and how to bypass it in 10 minutes with automatic rotating proxies.
Why Sports Markets Are Blocked
Polymarket operates under regulatory constraints that require them to block US IP addresses from trading sports prediction markets via the API. This affects NBA, NFL, MLB, NHL, and other sports markets when accessed through the CLOB API programmatically.
What IS blocked: Sports markets via CLOB API from US IP addresses (403 error).
What is NOT blocked: Political markets, economic markets, crypto markets, news markets — all work fine from US IPs. The geoblock only applies to sports.
How the Bypass Works
PM-04 routes your API order calls through a rotating pool of non-US SOCKS5 proxies. From Polymarket's perspective, the order comes from a non-US IP and goes through normally.
- 1
Auto-finds working proxies
On startup, the script fetches non-US proxy lists from public APIs, tests each one against the Polymarket CLOB endpoint, and caches the 5 fastest working ones.
- 2
Routes orders through proxy
Every API call for a sports market is automatically routed through one of the cached proxies. You call the same function — the proxy layer is invisible.
- 3
Auto-rotates if one dies
If a proxy returns a 403 or times out, the script automatically tries the next one and refreshes the proxy list every 30 minutes.
- 4
Telegram alert if all fail
If all 5 cached proxies fail simultaneously, you get a Telegram alert. Extremely rare — usually back online within 2 minutes.
Setup in 10 Minutes
PM-04 integrates directly with PM-01 if you have it, or runs standalone.
Option A — With PM-01 (recommended)
PM-04 is already wired into PM-01's proxy_trader.py. Just add one line to your .env:
USE_PROXY_FOR_SPORTS=true
Restart PM-01. Sports markets are now accessible automatically.
Option B — Standalone
Unzip PM-04, run setup:
cd pm-04-geoblock-bypass
python3 setup.py
Then import it in any script:
from src.bypass import place_sports_order
result = place_sports_order(
token_id="your-token-id",
price=0.45,
size=25,
side="BUY",
market_name="Lakers vs Celtics"
)
Test it works
python3 src/test_connection.py
You should see:
✓ Found 5 working non-US proxies
✓ Sports market API reachable via proxy
✓ Telegram connected
Ready to trade sports markets.
PM-01 finds the edge. PM-04 routes the order. Together they cover every market type on Polymarket.