Authentication
Bearer keys for the preflop ranges API; a Studio session for the postflop API.
Preflop ranges API
Authenticate with an API key sent as a Bearer header. Keys start with pdk_ and are created at pokerdata.io/api once your $100/month subscription is active.
curl "https://pokerdata.io/api/v1/ranges/nl/v2/range?stack=100&spot=UTG_60%25_HJ_Call" \
-H "Authorization: Bearer pdk_YOUR_KEY"
{
"error": "This endpoint requires an API key from an active subscription. Subscribe ($100/mo) and manage keys at https://pokerdata.io/api.",
"docs": "https://docs.pokerdata.io"
}
A request without a valid key from an active subscription gets a JSON 401 with a WWW-Authenticate: Bearer header.
Key behavior worth knowing:
- Discovery endpoints are free.
/nl,/nl/v2,/plo, and/plo9need no key at all — use them to explore coverage before subscribing. - Keys survive a lapse. If your subscription lapses, keys stop working but are not deleted; they resume when the subscription does.
- All of your keys share one rate-limit budget. Minting more keys does not buy more throughput — see rate limits.
- Keys are shown once at creation and stored hashed. Treat them like passwords; rotate from the same page.
Postflop API
The replay-pack endpoints are part of Poker Study AI and use its normal sign-in rather than pdk_ keys: requests are authenticated by your Clerk session cookie on www.pokerstudy.ai, and require an active Studio subscription.
- Not signed in →
401 {"error": "sign in required"}(the download route redirects to sign-in instead). - Signed in without Studio →
403 {"error": "studio required"}.
This makes the postflop API a same-site/browser-session API today — it is served to the in-app viewer at pokerstudy.ai/replays, and the same JSON is yours to script against from an authenticated session.