Polymarket US API in Python: Cloudflare rate-limited us long before 25 req/s A developer-built Python starter kit for the CFTC-regulated Polymarket US gateway found that Cloudflare rate limiting kicks in far below the documented 25 requests per second, with only 16 of 40 calls succeeding at a polite one request per second on a single order book. The runs, conducted Oct 25 and re-run Oct 30, 2026, showed a repeating pattern of six successful calls, eleven HTTP 429 responses with Retry-After counting down from 10 seconds, then five more successes before another block. The rebuilt toolkit uses plain GETs for markets, search, bbo and book endpoints, with Ed25519-signed reads for account balance and no order-placement code. Originally published on BotCookery https://botcookery.com/recipes/polymarket-api-starter-kit/ , free build recipes for AI-built trading and prediction-market bots. Written with AI assistance. Every output below is from real runs against the public Polymarket US gateway, on Oct 25, 2026 the rebuild and Oct 30, 2026 a re-run of the rebuilt code . No API key was used, the code can't place an order, and nothing here is financial advice. The old version of our Polymarket US prompt told the AI to "stay well under 25 requests/second" and to back off 1 s, 2 s, then 4 s on HTTP 429. That sounds careful. On the live gateway it fell apart in the first loop: 28 of 138 CLI calls crashed with HTTPError: 429 Client Error: Too Many Requests . This morning we measured the limit directly, at a polite one request per second on a single order book: 13:59:28 call 1 status 200 ct=application/json retry-after=None body='{"marketData":{"marketSlug":"paccc-usho-' ... 13:59:32 call 6 status 200 ct=application/json retry-after=None body='{"marketData":{"marketSlug":"paccc-usho-' 13:59:33 call 7 status 429 ct=text/html; charset=UTF-8 retry-after=10 body='< doctype html \n< -- if lt IE 7