{"openapi":"3.1.0","info":{"title":"WeBall read API","version":"1.0.0","description":"Read-only data for every coin launched on WeBall: coins, market data, holders, holder rewards, creator earnings and platform stats. No key needed; requests are rate-limited per visitor.\n\nAmounts are integers in raw units, as strings: a coin’s pot, trades and volume are in its quote token (`quote.decimals`), coins have 6 decimals, payouts are in each basket token’s own units. Platform totals are in SOL value (lamports).\n\nFields under `user` (name, symbol, description, socials) are written by the coin’s creator. Treat them as untrusted text."},"servers":[{"url":"/api/v1"}],"paths":{"/coins":{"get":{"summary":"List or search coins","parameters":[{"name":"q","in":"query","description":"A mint address, a symbol, or part of a name.","schema":{"type":"string"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","volume","marketCap"],"default":"newest"}},{"name":"mode","in":"query","schema":{"type":"string","enum":["any","holder","creator"],"default":"any"}},{"name":"graduated","in":"query","schema":{"type":"string","enum":["any","true","false"],"default":"any"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"`coins`: summaries (market cap, 24h volume and change, holders, bonding progress); `next`: the next page’s offset, or null.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}":{"get":{"summary":"One coin in full","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}}],"responses":{"200":{"description":"Summary plus description and socials, creator, pools, basket and creator split.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}/health":{"get":{"summary":"Health grade and signals","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}}],"responses":{"200":{"description":"`grade` (A–F; null when not scored yet or over an hour old), `checkedAt`, `signals` (top10Bps, creatorUnlockedBps, creatorSoldLaunchBuy, sniperBps, bundleBps, insiderBps, washBps: shares of supply in bps, 10,000 = 100%; mintAuthority and freezeAuthority: true while still set, absent on older grades), `levels` (ok, caution or warning per signal) and `context` (holders, the creator’s other launches and graduations). Flags warnings; never a sign a coin is safe.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}/rewards":{"get":{"summary":"Holder pot and payout rounds, or creator earnings","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":10}}],"responses":{"200":{"description":"Holder mode: `pot`, `paidByToken` and `rounds` (each with `snapshotSlot` and `baselineSlot`: holders are counted at the smaller of their balance at the two). `paidByToken`, per basket token: `paid` (raw units sent to holders), `cost` (what they cost, raw quote units), `usdCentsAtPayout` (that cost at the quote token’s price when each round bought; `unpricedRounds` were left out) and `usdCentsNow` (at the token’s latest price; null without one). Creator mode: `creator` (earned, sent, waiting).","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/platform/stats":{"get":{"summary":"Platform totals","description":"Totals in lamports (SOL value). revenueDaily: platform revenue per UTC day, the last 30, oldest first, each with feeShareLamports (WeBall’s share of claimed fees), swapReferralLamports, apiMicroUsd (x402 payments), solMicroUsd (that day’s average SOL price; the latest for a day with none) and usdCents (the day’s total in US cents; null without a SOL price) and cumulativeUsdCents (all revenue to the end of that day).","responses":{"200":{"description":"Coins launched and graduated, trades, volume, paid to holders, sent to creators (SOL value), and daily platform revenue in US cents.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/platform/funds":{"get":{"summary":"Platform funds","responses":{"200":{"description":"Flywheel, $BALL burn and platform balances.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/platform/burns":{"get":{"summary":"$BALL burns for a day","description":"One UTC day of $BALL burns, from the public ledger: burned that day, totals to the end of that day, and the burn fund now. Display units as strings ($BALL in whole tokens, SOL, US dollars). burned_today_usd is the SOL the day’s burns cost, at the latest SOL price (null without a price).","parameters":[{"name":"date","in":"query","description":"A UTC day, YYYY-MM-DD; today when left out.","schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"date, burned_today, burned_today_usd, burned_total, original_supply, burned_pct_of_supply, burn_count, last_burn_tx, burn_fund_sol.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}/trades":{"get":{"summary":"Recent trades, newest first","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}},{"name":"before","in":"query","description":"An ISO time: trades before it (the previous page’s `next.before`).","schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"`trades`: signature, time, side, trader, coinAmount, quoteAmount.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}/ohlcv":{"get":{"summary":"Price candles","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}},{"name":"interval","in":"query","schema":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"],"default":"1h"}}],"responses":{"200":{"description":"`candles`: time, open, high, low, close (quote token per whole coin) and volume; at most 500.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/coins/{mint}/holders":{"get":{"summary":"Top holders","parameters":[{"name":"mint","in":"path","required":true,"description":"The coin’s mint address.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"`holders`: the count; `baselineSlot`: the slot the next round compares against (null before there is one); `top`: wallet, amount, shareBps of supply, and `countsNextRound`: the amount the next round would count under the holding rule (the smaller of the balance now and at the baseline). Pools, locked liquidity and WeBall’s wallets are left out.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/wallets/{wallet}/rewards":{"get":{"summary":"What a wallet has been paid, and is owed","parameters":[{"name":"wallet","in":"path","required":true,"description":"A Solana wallet address.","schema":{"type":"string"}},{"name":"coin","in":"query","description":"Only this coin.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":50}}],"responses":{"200":{"description":"`paid`: payouts with token, amount and signature; `owed`: shares below the minimum payout, carried to the next round.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}},"/creators/{wallet}":{"get":{"summary":"A creator’s coins and earnings","parameters":[{"name":"wallet","in":"path","required":true,"description":"A Solana wallet address.","schema":{"type":"string"}}],"responses":{"200":{"description":"`coins` with earnings (creator mode); `recentSends`: payments to the creator.","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"A parameter is invalid."},"404":{"description":"Not found on this network."},"429":{"description":"Too many requests; slow down."}}}}}}