API Documentation
The Peeped API serves on-chain crypto casino and iGaming market data — deposit and withdrawal volume, market share, benchmarks, and chain coverage across 8 blockchains — as clean JSON. This is the reference for authentication, endpoints, quotas, and errors.
Base URL & format
All requests go to your Peeped API host over HTTPS and return JSON:
https://api.peeped.xyz
Every endpoint under /v1/ requires an API key. Health and the marketing teaser are open.
Authentication
Send your key as a bearer token in the Authorization header. Get a key by starting a free
trial on the pricing page (trial keys begin with pk_).
curl -s "https://api.peeped.xyz/v1/casinos?days=30" \
-H "Authorization: Bearer pk_your_key_here"
A missing or invalid key returns 401. Keep your key secret — it bills to your account and
meters against your plan's quota.
Rolling windows
Most metrics accept a days query parameter — a rolling lookback window applied consistently
across endpoints:
days=7— last 7 days ·days=30— last 30 days ·days=365— last yeardays=0(default) — all-time
Add include_internal=true to include wallet-to-wallet internal transfers (excluded by
default). USD-denominated variants are available on some endpoints via usd=true.
Plans & quotas
The API enforces your plan's entitlements — monthly call quota, how many operators are visible, and how fresh the data is. Plans and prices are on the pricing page.
| Plan | Monthly calls | Operators visible | Data freshness | Endpoints |
|---|---|---|---|---|
| Trial (14 days) | 2,000 | All | Live | All |
| Starter | 10,000 | Top 10 | 24-hour delay | Core |
| Pro | 100,000 | All | 1-hour delay | All |
| Data Feed | 2,000,000 | All | Live | All + export |
| Enterprise | Custom | All | Live | All + export |
"Core" (Starter) covers /v1/casinos, /v1/market-share,
/v1/benchmarks, /v1/coverage, and /v1/usage. The time-series and
per-flow endpoints (net-flow, volume, daily, activity,
depositors, holdings) are on Pro and above. When you exceed your monthly quota
the API returns 429 with X-RateLimit-* and Retry-After headers.
Endpoints
All paths below are relative to the base URL and require the Authorization header.
Ranked operator leaderboard — chains covered, USD deposits/withdrawals/net, deposit & withdraw
counts, and market share. Params: days, include_internal.
{
"days": 30,
"casinos": [
{
"casino": "Stake",
"chains": ["ethereum","bsc","polygon","base","arbitrum","tron","solana"],
"deposits_usd": 95500000, "withdrawals_usd": 90100000, "net_usd": 5400000,
"deposit_count": 128400, "withdraw_count": 96200, "share": 0.21
}
]
}
Deposit/withdraw count and USD value per operator — optionally per
chain. Params: casino, by_chain, days, include_internal.
Share of tracked volume per operator. Params: token, usd, days,
include_internal.
Net deposit minus withdrawal flow, per operator or overall. Params: casino,
usd, days, include_internal.
Volume broken down by operator and token. Params: days, include_internal.
Daily time series for charts. Params: casino, token,
direction (deposit|withdraw), days,
include_internal.
Per-operator 7d / 14d / 30d / 60d / 90d / 365d deposit volume plus wallet holdings (USD) — the leaderboard backbone.
Chain-coverage matrix per operator; missing lists target chains with no data yet.
Current wallet holdings (reserves) per operator. Params: casino.
Unique depositor count for an operator. Params: casino (required), days,
include_internal.
Your key's own metered usage, plan, status, and remaining monthly quota — always available, even at quota.
Public endpoints (no key)
Liveness check — {"status":"ok","service":"peeped"}.
Coarse marketing teaser for the embeddable widget: top 5 operator names and a relative 0–100 index — no USD figures, no addresses.
Create an account and a 14-day trial key. Body: {"email":"you@example.com"} →
{"api_key":"pk_…","tier":"trial"}.
Subscribe an email to The Weekly Peep. Body: {"email":"you@example.com"}.
Errors
Errors are JSON with a detail message and a standard status code:
| Code | Meaning |
|---|---|
400 | Bad request (e.g. a malformed or missing email on signup/subscribe). |
401 | Missing or invalid API key. |
402 | Trial expired, subscription inactive, or billing period ended — renew to continue. |
403 | That endpoint isn't in your plan (upgrade to unlock it). |
429 | Monthly quota reached. See X-RateLimit-Limit / Retry-After. |
A note on wallet addresses
Peeped's curated wallet map — which address belongs to which operator — is the product, and it is never exposed through the customer API on any plan. The API returns aggregated metrics (volumes, counts, shares, holdings), not raw addresses. This keeps the dataset's integrity intact for everyone.
Ready to build?
Start a free 14-day trial and get an API key in seconds — no card required.