Data API

Every figure this site calculates with, as plain JSON. Free to use, no key and no signup.

9
Endpoints
None
Auth required
CORS
Enabled for all origins

Quick start

curl https://actualwinnings.com/data/jackpots.json

Every response carries its own provenance — a generatedAt timestamp, the tax year where one applies, and the sources the figures came from — so you can tell what a number means without inferring it from context. A machine-readable index of all endpoints lives at /data/index.json.

Tax data

State tax rates

When rates change, typically once a year

Lottery tax rate for all 50 states and DC, with the reason any state departs from its headline rate.

/data/state-tax-rates.jsonOpen

The rate a winner actually pays, which is not the state top marginal rate wherever a state exempts lottery winnings or withholds at a lottery-specific rate. Each entry carries a note explaining the difference where one exists.

lotteryTaxRate
Decimal rate applied to winnings (0.05 = 5%)
hasIncomeTax
Whether the state levies an individual income tax at all
additionalLocalTax
Extra local or county rate where one applies
notes
Why this rate departs from the headline top marginal rate

Federal tax brackets

Once a year

Federal marginal brackets for all four filing statuses, plus the mandatory withholding rate.

/data/federal-tax-brackets.jsonOpen

Lottery winnings are taxed as ordinary income, so these are the brackets that apply to a jackpot. The withholding rate is a prepayment, not the final liability — a large prize almost always owes more at filing.

Tax rate history

A new year is added each tax year

State and federal lottery tax rates archived per tax year.

/data/tax-rate-history.jsonOpen

General tax tables track top marginal rates; this tracks what a lottery winner actually paid, year by year. It exists so a calculation made in a past year stays checkable after the current-year tables move on.

Jackpots

Current jackpots

Three times daily

Advertised jackpot, cash value, next drawing time and latest winning numbers for every game tracked.

/data/jackpots.jsonOpen

The live snapshot behind the calculator, covering 14 games. Cash values for most games are estimated from the advertised jackpot rather than published by the lottery — see the note on cash values below.

Jackpot history

Three times daily

Advertised jackpot and cash value per drawing, with the cash-to-annuity ratio and estimated plays sold.

/data/jackpot-history.jsonOpen

Powerball reaches back to February 2010 from official results; other games accumulate forward from the point we began archiving. The cash ratio moves with prevailing interest rates, which is the reason to keep the series at all.

cashRatio
cashValue ÷ jackpot. Null unless the cash value was actually published
cashValueBasis
"published" if the lottery reported the cash value, "estimated" if it was derived from the jackpot
estimatedPlays
Plays inferred from special-ball winner counts. An estimate of plays, not tickets or revenue
openingJackpot
First advertised amount seen for the drawing, where we watched the cycle open
basis
"official" from the game's published result, "observed" from the advertised amount beforehand

Jackpot winners

Three times daily

Every drawing whose jackpot was won, with the amount and the cash value published at the time.

/data/jackpot-winners.jsonOpen

Mega Millions reaches back to 2002 with the game’s own account of each win; Powerball wins are derived from its payout tables. Who won and where is left as prose rather than split into fields, because it is written for people and shredding it loses more than it gains.

winningTickets
Tickets sharing the jackpot, where counted
state
Best-effort two-letter code read from the description; may be null
description
The game’s own account of the win, unmodified

Annuity schedules

Three times daily

Each of the 30 annuity payments as a share of the advertised jackpot, applied to the current jackpots.

/data/annuity-schedules.jsonOpen

Published as factors because the schedule is identical for any jackpot: payment n is always the same fraction of the total. Multiply by your own prize to get a schedule. Scoped to Powerball and Mega Millions, whose 30-year 5%-escalation structure is documented; state games run their own terms.

paymentFactors
Year 1–30, each as a share of the advertised jackpot. Sums to 1
annualIncreaseRate
Escalation between payments (0.05 = 5% a year)

Draw results

Number statistics

Three times daily

Per-number draw frequency over each game’s recorded history.

/data/number-statistics.jsonOpen

Counts only. Past frequency does not affect future draws and every combination remains equally likely — games with too few recorded drawings for counts to mean anything are listed with the frequencies omitted rather than published as if meaningful.

sufficientForAnalysis
False when too few drawings are recorded; frequencies are then omitted
daysSinceDrawn
Days between the number’s last appearance and generation time

Draw payouts

Three times daily

Winners and prize amount at every tier, for each drawing, as published by the game.

/data/draw-payouts/{game}/{year}.jsonOpen

Pattern endpoint — for example /data/draw-payouts/powerball/2026.json

One file per game per year, split out because the tier detail across sixteen years runs to megabytes. Available for powerball (2010 onward) and megamillions. These are what the estimated play counts are derived from.

tiers[].winners
Base winners at that tier; multiplier winners are a subset, not additional
tiers[].oneIn
Odds of that tier under the matrix in force on the drawing date
matrix
Ball pool in force for that drawing; both games have changed theirs more than once

Reading the data

Most cash values are estimates, and they are labelled

Lotteries advertise an annuity jackpot; only some publish the cash option alongside it. Where one is not published we derive it from the advertised amount, so the row carries cashValueBasis: "estimated" and cashRatio is left null. A ratio computed from an estimate would only restate the multiplier that produced it, which is worse than no number at all.

Estimated plays are inferred, not reported

No lottery publishes ticket sales per drawing. We infer them from the winners who matched the special ball — the Powerball or the Mega Ball — because that draw is independent of the white balls, so exactly 1 in N plays match it no matter how players pick their numbers. Tiers that depend on white balls run hot when a drawing favours the low numbers people choose, which is why they are not used. Treat the result as an estimate of plays, not of tickets or revenue.

Odds follow the drawing date

Both national games have changed their ball pools more than once. Odds and play estimates are computed from the matrix in force on the day of the drawing, not today's game, and each drawing carries the matrix it was scored under.

Frequencies are descriptive

Draw frequency records what has happened. It has no predictive value — past results do not affect future draws, and every combination remains equally likely. Games with too few recorded drawings are published with their counts omitted rather than presented as if meaningful.

Using it

Free to use with attribution to https://actualwinnings.com

  • No key required. Files are served from a CDN and change at most a few times a day, so please cache rather than poll — a request per drawing cycle is plenty. Reasonable use is not metered today, but traffic heavy enough to affect the service may be throttled.
  • Figures are estimates for planning, not tax advice. Actual liability depends on other income, deductions and residency at the time of claim.
  • Draw results and payout tables originate with the lotteries themselves. Where a figure is ours rather than theirs, the response says so.
  • Something wrong, or an endpoint you need that is not here? Tell us.

Building an AI assistant or crawler? Start at /llms.txt for a plain-text summary of the site and these endpoints.