Developer API

Lottery data, as JSON.

REST/JSON access to Lottizen’s Canada, US and Europe lottery data: winning numbers, 40+ years of draw history, hot/cold/overdue number statistics — and the only scratch-ticket remaining-prize tracker covering all 5 Canadian provinces. Rebuilt daily.

Overview

The Lottizen Data API covers 19 live draw-lottery games across Canada, the US and Europe — Lotto Max, Lotto 6/49, Powerball, Mega Millions, EuroMillions, EuroJackpot, UK Lotto and more — plus 429 scratch tickets across all 5 Canadian provinces (Ontario, British Columbia, Western Canada, Atlantic Canada, Quebec), ranked by remaining prize value. Canada is our deepest market: every major national and regional draw game, draw history back to 1982, and remaining-prize tracking on scratch tickets that no other lottery API offers, in even one province, let alone five. All data refreshes daily from official sources.

Base URL for every endpoint below:

https://lottizen.com/api/v1

Coverage today: Canada (national + OLG/BCLC/WCLC/ALC/Loto-Québec), the US (multi-state + New York), and Europe (EuroMillions, EuroJackpot, UK Lotto). Japan is next — coming soon.

Authentication

The API is distributed exclusively through RapidAPI. Subscribe to a plan, and RapidAPI attaches your X-RapidAPI-Key to every request automatically — there’s no separate signup or key management here. Rate limiting and billing are handled entirely by RapidAPI; see Rate limits & pricing below.

Response format

Every endpoint returns JSON with a consistent envelope. Successful responses carry the payload in data and any pagination/context info in meta:

{ "data": ..., "meta": { ... } | null }

Errors use the same shape, with an HTTP status code that matches the problem:

{ "error": { "code": "GAME_NOT_FOUND", "message": "No live game found for slug 'foo'." } }

Responses are cached at the edge for one hour (Cache-Control: public, s-maxage=3600) — data changes at most once a day, so a fresh request within that window returns the same result.

Endpoints

MethodPathDescription
GET/gamesList all games
GET/games/{slug}Get a single game
GET/games/{slug}/latestLatest draw
GET/games/{slug}/drawsDraw history
GET/games/{slug}/statisticsNumber statistics
GET/scratch/ontarioExclusiveOntario scratch tickets — ranked
GET/scratch/ontario/{slug}ExclusiveOntario scratch ticket detail
GET/scratch/{province}ExclusiveScratch tickets by province — ranked
GET/scratch/{province}/{slug}ExclusiveScratch ticket detail, by province

GET /games

Every live, data-backed draw-lottery game across Canada, the US and Europe — country, agency, number-pool rules, ticket price, and draw days.

Request

curl "https://lottizen.com/api/v1/games"

Response 200 OK

{
  "data": [
    {
      "slug": "lotto-max",
      "name": "Lotto Max",
      "country": "CA",
      "countryName": "Canada",
      "agency": "National",
      "operator": "the Interprovincial Lottery Corporation",
      "region": "Canada-wide",
      "format": "lotto",
      "pick": 7,
      "max": 52,
      "hasBonus": true,
      "bonusLabel": "Bonus",
      "bonusMax": 52,
      "bonusCount": 1,
      "drawDays": ["Tuesday", "Friday"],
      "price": 6,
      "currency": "CAD",
      "blurb": "Canada's biggest jackpot game — pick 7 of 52, with jackpots to $90M plus Max Millions.",
      "progressive": true,
      "drawCount": 753,
      "dataSince": "2019-05-14"
    }
    // ... 18 more games (Lotto 6/49, Powerball, EuroMillions, UK Lotto, ...)
  ],
  "meta": { "total": 19 }
}

GET /games/{slug}

Full details for one game, by slug (e.g. lotto-max, powerball, euromillions).

  • slugGame slug, as returned by GET /games.

Request

curl "https://lottizen.com/api/v1/games/lotto-max"

Response 200 OK

{
  "data": {
    "slug": "lotto-max",
    "name": "Lotto Max",
    "country": "CA",
    "countryName": "Canada",
    "agency": "National",
    "operator": "the Interprovincial Lottery Corporation",
    "region": "Canada-wide",
    "format": "lotto",
    "pick": 7,
    "max": 52,
    "hasBonus": true,
    "bonusLabel": "Bonus",
    "bonusMax": 52,
    "bonusCount": 1,
    "drawDays": ["Tuesday", "Friday"],
    "price": 6,
    "currency": "CAD",
    "blurb": "Canada's biggest jackpot game — pick 7 of 52, with jackpots to $90M plus Max Millions.",
    "progressive": true,
    "drawCount": 753,
    "dataSince": "2019-05-14"
  },
  "meta": null
}

GET /games/{slug}/latest

The most recent draw for a game, plus the next scheduled draw date and jackpot estimate where available.

  • slugGame slug.

Request

curl "https://lottizen.com/api/v1/games/lotto-max/latest"

Response 200 OK

{
  "data": {
    "slug": "lotto-max",
    "latestDate": "2026-08-04",
    "numbers": [1, 13, 24, 34, 46, 50, 51],
    "bonus": 36,
    "bonus2": null,
    "nextDraw": "2026-08-07",
    "nextJackpot": 25000000,
    "drawCount": 1255,
    "dataSince": "2009-09-25"
  },
  "meta": null
}

GET /games/{slug}/draws

Historical draws, newest first. Some games go back over 40 years — Lotto 6/49 draw history starts 1982-06-12.

  • slugGame slug.
  • ?fromInclusive start date, YYYY-MM-DD.
  • ?toInclusive end date, YYYY-MM-DD.
  • ?limitResults per page. Default 50, max 500.
  • ?offsetPagination offset. Default 0.

Request

curl "https://lottizen.com/api/v1/games/lotto-max/draws?limit=2"

Response 200 OK

{
  "data": [
    { "date": "2026-08-04", "numbers": [1, 13, 24, 34, 46, 50, 51], "bonus": 36, "jackpot": null },
    { "date": "2026-07-31", "numbers": [3, 28, 32, 37, 40, 44, 47], "bonus": 23, "jackpot": null }
  ],
  "meta": {
    "game": "lotto-max",
    "from": null,
    "to": null,
    "limit": 2,
    "offset": 0,
    "total": 1255,
    "hasMore": true
  }
}

GET /games/{slug}/statistics

Frequency, hot/cold classification, current & max gap (overdue tracking), common partner pairs, and aggregate breakdowns (odd/even, high/low, sum distribution) for a game's full number pool.

  • slugGame slug.

Request

curl "https://lottizen.com/api/v1/games/lotto-max/statistics"

Response 200 OK

{
  "data": {
    "game": "lotto-max",
    "dataSince": "2019-05-14",
    "drawCount": 753,
    "allTimeDrawCount": 1255,
    "pick": 7,
    "max": 52,
    "numbers": [
      {
        "n": 1,
        "count": 99,
        "frequency": 0.1315,
        "lastDate": "2026-08-04",
        "drawsAgo": 0,
        "currentGap": 0,
        "maxGap": 46,
        "hot": false,
        "cold": false,
        "partners": [{ "n": 45, "count": 20 }, { "n": 39, "count": 18 }, "..."]
      }
      // ... 51 more numbers
    ],
    "aggregate": {
      "hot": [6, 34, 3, 36, 32, 37],
      "cold": [20, 29, 26, 2, 45, 11],
      "topPairs": [{ "a": 22, "b": 46, "count": 29 }, "..."]
      // ... oddEven, highLow, sum, consecutive, frequencyChart, windowChart
    }
  },
  "meta": null
}

GET /scratch/ontario

Every current OLG scratch ticket ranked by Value Score, with the full prize-tier breakdown and how many of each prize are still unclaimed. Lottizen is the only lottery API tracking remaining scratch-ticket prizes in Canada.

Request

curl "https://lottizen.com/api/v1/scratch/ontario"

Response 200 OK

{
  "data": [
    {
      "slug": "poker-night",
      "name": "Poker Night",
      "gameNumber": "2535",
      "price": 10,
      "prizeTiers": [
        { "amount": 250000, "label": "$250,000.00", "total": 3, "remaining": 1, "isTop": true },
        { "amount": 10000, "label": "$10,000.00", "total": 1, "remaining": 0, "isTop": false }
        // ... 4 more tiers
      ],
      "topPrizeLabel": "$250,000.00",
      "topPrizesTotal": 3,
      "topPrizesRemaining": 1,
      "remainingPrizePool": 282150,
      "printedPrizePool": 952950,
      "valueRetention": 1.771,
      "valueScore": 109.8,
      "rank": 1
    }
    // ... 49 more games
  ],
  "meta": {
    "generatedAt": "2026-08-05T16:05:08+00:00",
    "source": "olg-live",
    "currency": "CAD",
    "province": "ON",
    "gameCount": 50
  }
}

GET /scratch/ontario/{slug}

Full prize-tier breakdown for a single OLG scratch ticket, by slug.

  • slugScratch ticket slug, as returned by GET /scratch/ontario.

Request

curl "https://lottizen.com/api/v1/scratch/ontario/bingo-multip"

Response 200 OK

{
  "data": {
    "slug": "bingo-multip",
    "name": "Bingo Multip",
    "gameNumber": "3088",
    "price": 10,
    "prizeTiers": [
      { "amount": 250000, "label": "$250,000.00", "total": 5, "remaining": 4, "isTop": true },
      { "amount": 100000, "label": "$100,000.00", "total": 1, "remaining": 1, "isTop": false },
      { "amount": 50000, "label": "$50,000.00", "total": 1, "remaining": 1, "isTop": false }
      // ... 17 more tiers
    ],
    "topPrizeLabel": "$250,000.00",
    "topPrizesTotal": 5,
    "topPrizesRemaining": 4,
    "prizeTierCount": 20,
    "remainingPrizePool": 1598725,
    "printedPrizePool": 2002165,
    "valueRetention": 1.115,
    "valueScore": 69.1,
    "rank": 13
  },
  "meta": null
}

GET /scratch/{province}

Every current scratch ticket for one of 5 Canadian provinces (ontario, british-columbia, western, atlantic, quebec), ranked by that province's Value Score. Lottizen is the only lottery API tracking remaining scratch-ticket prizes across all 5 Canadian scratch-ticket agencies. Not every province publishes the same underlying data — see scoringMethod and dataCompleteness in the response, and /methodology for what each means.

  • provinceOne of: ontario, british-columbia, western, atlantic, quebec.

Request

curl "https://lottizen.com/api/v1/scratch/british-columbia"

Response 200 OK

{
  "data": [
    {
      "slug": "5-set-for-life-xii",
      "name": "$5 Set for Life XII",
      "gameNumber": "37116004",
      "agency": "BCLC",
      "province": "british-columbia",
      "price": 5,
      "prizeTiers": [
        { "amount": 675000, "label": "$675,000", "total": 1, "remaining": 1, "isTop": true }
        // ... more tiers
      ],
      "topPrizeLabel": "$675,000",
      "topPrizesTotal": 1,
      "topPrizesRemaining": 1,
      "remainingPrizePool": 812400,
      "printedPrizePool": 1105500,
      "valueRetention": 1.62,
      "valueScore": 100.4,
      "scoringMethod": "retention",
      "rank": 1
    }
    // ... more games
  ],
  "meta": {
    "generatedAt": "2026-08-24T23:17:28+00:00",
    "source": "bclc-live",
    "currency": "CAD",
    "agency": "BCLC",
    "province": "british-columbia",
    "provinceLabel": "British Columbia",
    "scoringMethod": "retention",
    "dataCompleteness": "full",
    "gameCount": 173
  }
}

GET /scratch/{province}/{slug}

Full prize-tier breakdown for a single scratch ticket, by province + slug.

  • provinceOne of: ontario, british-columbia, western, atlantic, quebec.
  • slugScratch ticket slug, as returned by GET /scratch/{province}.

Request

curl "https://lottizen.com/api/v1/scratch/atlantic/elite"

Response 200 OK

{
  "data": {
    "slug": "elite",
    "name": "ELITE",
    "gameNumber": "4120",
    "agency": "ALC",
    "province": "atlantic",
    "price": 100,
    "prizeTiers": [
      { "amount": 10000000, "label": "$10,000,000", "total": 5, "remaining": 5, "isTop": true },
      { "amount": 1000000, "label": "$1,000,000", "total": 5, "remaining": 5, "isTop": false }
    ],
    "topPrizeLabel": "$10,000,000",
    "topPrizesTotal": 10,
    "topPrizesRemaining": 10,
    "remainingPrizePool": 55000000,
    "valueRetention": null,
    "valueScore": 100,
    "scoringMethod": "top_prize_fraction",
    "rank": 1
  },
  "meta": null
}

Errors

StatusCodeMeaning
400INVALID_PARAMA query parameter is malformed (e.g. a non-date from/to).
401UNAUTHORIZEDMissing or invalid RapidAPI credentials.
404GAME_NOT_FOUNDNo live game or scratch ticket matches the given slug.
404DRAW_NOT_FOUND / STATS_NOT_FOUNDThe game exists but has no draw or statistics data.
429RATE_LIMIT_EXCEEDEDPlan quota exceeded — enforced by RapidAPI, see below.

Rate limits & pricing

Plans and quotas are managed on RapidAPI:

  • Basic — free, 25 requests/day.
  • Pro — $15/month, 5,000 requests/day.
  • Ultra — $49/month, 50,000 requests/day.

See current pricing and subscribe on RapidAPI →

IndependentLottizen is an independent data provider — not a lottery operator, and not affiliated with OLG, BCLC, WCLC, ALC, Loto-Québec, MUSL, the NY Lottery, EuroMillions, EuroJackpot, or Allwyn/The National Lottery. Data is collected from public official sources; see methodology.