Open data
Take the whole dataset
Every ballot, lottery, draw and public sale we track, as one JSON file or one CSV. 117 records across 16 sports, each with its application window, eligibility, entry cost and a link to the organizer's own entry page. Free to use, including commercially, under CC BY 4.0. No signup, no API key, no rate limit.
JSON
One document, self-describing: the records plus a dictionary explaining every field.
392 KB · /data/ballots.json
CSV
The same records flattened for spreadsheets. One header row, one row per record.
310 KB · /data/ballots.csv
Both files are rebuilt hourly and served with open CORS headers, so you can fetch them straight from a browser or a script. Hotlinking is welcome and is the better option: you get every correction automatically instead of shipping a snapshot that quietly goes stale.
The licence
Use it, and credit it
The dataset is published under the Creative Commons Attribution 4.0 International licence (CC BY 4.0). You may copy it, redistribute it, build on it and use it commercially. Two conditions, both from the licence itself: credit the source with a link, and say if you changed the data.
The credit line we ask for
Data from The Ticket Lottery (https://theticketlottery.com), licensed under CC BY 4.0.The same thing as HTML
Data from <a href="https://theticketlottery.com">The Ticket Lottery</a>, licensed under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.A visible, working link is the part that matters. Put it wherever the data shows up: a page footer, a chart caption, a README, a data source note. If you are publishing a modified version, keep the credit and add a line saying what you changed, so nobody attributes your edits to us.
Coverage
What is actually in it
- 117
- records
- 70
- run a draw
- 35
- run none
- 12
- unconfirmed
The 35 records marked ballot_exists: "no" are the ones worth having. They are events people widely believe run a public draw, which do not, each carrying the access route that actually exists instead. That is the fact that stops someone paying a reseller for a ticket they were told could not be had any other way, and it is the part most listings leave out.
Entering direct with the organizer is almost always free, and every record links to that entry page. Keep those links pointing at the organizer if you republish the data: the free route being easy to find is the whole reason this exists.
Reference
Every field, explained
28 fields, identical in both files and on every row. The JSON ships this same dictionary inside the document, so it travels with the data. Missing values are null in JSON and empty in CSV, never a placeholder string.
- slug
- Stable identifier for the record, and the last path segment of its page on this site.
- url
- The record's page here, carrying the full detail and the cited sources.
- event
- Event name as the organizer states it.
- sport
- Sport, as a display label.
- sport_key
- Sport as a lowercase machine key (tennis, golf, american-football, and so on).
- organizer
- The body that runs the ballot or the sale.
- location
- Where the event is held.
- event_dates
- When the event itself takes place, in prose as the organizer states it.
- event_start_iso
- Machine-readable restatement of the event start. Partial ISO 8601 is expected and meaningful: "2029" or "2026-10" means the organizer has only stated that much.
- ballot_exists
- yes, no or unknown. "no" records are the myth-busters: events people widely believe run a public draw, which do not.
- access_kind
- draw (you apply and winners are picked) or sale (first come, first served). A sale is not a ballot, and treating the two as one is the most common mistake in this space.
- ballot_type
- How the draw or sale is run, in the organizer's own terms.
- opens_at
- Application or sale opening date. ISO 8601 where a date is known, sometimes with trailing prose.
- closes_at
- Application or sale closing date, same format as opens_at.
- results_at
- When applicants are told the outcome, same format as opens_at.
- dates_estimated
- true when the dates are projected from a previous cycle rather than confirmed by the organizer. Carry this flag through if you republish the dates: it is the difference between a fact and a projection.
- eligibility
- Who may enter: residency, membership, age or account requirements.
- entry_cost
- What it costs to apply, as distinct from what a ticket costs. Usually nothing.
- ticket_price_range
- Face value range if you are successful.
- how_to_apply
- The entry route in prose, including the steps that have to happen before the window opens.
- odds_notes
- What is publicly known about the chance of success, where the organizer or press has published anything.
- status_now
- Where the cycle stood as of last_verified. Prose, and the field that ages fastest.
- official_url
- The organizer's own ticketing page for the event.
- sources
- The sources the record was verified against. A JSON array; in the CSV the entries are separated by " | ".
- confidence
- high, medium or low: how firmly the record is sourced.
- umbrella_slug
- Set on records that are one leg of a larger series, naming the slug of the record that covers the whole series. Empty on standalone records and on the series record itself.
- last_verified
- When this record was last checked against its sources.
- notes
- Context that does not fit the other fields: caveats, prior-cycle behaviour, and what to watch for.
Honesty
What this data is not
- It is not an organizer feed. We are an independent project, not affiliated with, endorsed by or connected to any event, organizer, governing body or trademark holder. Every record is compiled by hand from published sources, which are listed per record in the
sourcesfield. - Some dates are projections. When an organizer has not announced a window yet, we project it from the previous cycle and set
dates_estimated: true. Carry that flag through if you republish the dates. Presenting a projection as a confirmed date is the one thing that would make this data harmful. - It ages. Organizers move dates without notice. Every record carries its own
last_verifieddate; the collection was last verified 26 Jul 2026. Anyone acting on a date should confirm it at the source link before making plans. - Facts are facts, but the compilation took work. Dates and rules are not ours to own. Assembling, verifying and structuring them is, and that is what the licence covers.
Corrections
Found something wrong?
Tell us and we will fix it, usually the same day, and the fix reaches every consumer of these files within the hour. Email hello@theticketlottery.com. Accuracy is the whole product, so a correction is a favour, not a complaint.
Questions people ask
▸Is it really free, and does it stay free?
Yes to both. There is no signup, no API key, no rate limit and no paid tier holding back the interesting columns. The dataset is the same data the site runs on, not a trimmed sample of it. Attribution is the only thing we ask for.
▸Can I use it commercially?
Yes. CC BY 4.0 permits commercial use, redistribution and modification. Credit the source and say if you changed anything, and you are within the licence.
▸How often does it change?
The files are rebuilt hourly, so a correction we make reaches you within the hour. The underlying research is re-verified on a rolling schedule and every record carries its own last_verified date, so you can see the age of any single row rather than trusting one date for the whole file.
▸Why include events that run no public draw at all?
Because the absence of a draw is the single most useful fact for someone about to overpay a reseller for a ticket they believe is otherwise unobtainable. Those records are flagged ballot_exists = no and carry the real access route instead. Most listings drop them; they are half of why this dataset is worth having.
▸Can I hotlink the files instead of hosting a copy?
Please do. Both files are served with permissive CORS headers so you can fetch them straight from a browser, and hotlinking means you get corrections automatically instead of shipping a stale snapshot.