Free results API
Plenty of Facebook pages retype these numbers by hand every night. This endpoint saves them the trouble. It is free; please credit LottoAaj with a link.
Latest results
GET /api/v1/latest
Returns the most recent draws across all games, newest first, with the status of each. Cached for thirty seconds. CORS is open.
Try itOne draw
GET /api/v1/results?date=YYYY-MM-DD&game=&session=
Every prize tier of a draw, endings included. The date is required; the game and the session narrow it, and without them the answer is every draw of that day. A Kerala game needs no session; a Dear game has three.
Try itCheck a ticket
GET /api/v1/check?game=&date=&session=&ticket=
Answers whether one ticket won and what it won, applying the family’s consolation rule and the 31.2% deducted at source. Never cached, by anybody: the response carries no-store so a ticket number cannot be handed to the next caller. Our own checker does not use this - it works the answer out in the browser instead - so nothing forces a ticket number to leave a phone.
Live draw
GET /live/{date}/{session}.json
The document our own live board polls. Numbers appear as they are read from the broadcast, tier by tier. Cached for two seconds. /live/2026-09-08/8pm.json
Rate limits, and a key if you need more
Every answer carries the rate-limit headers, and a refusal carries retry-after in seconds. Without a key you get 60 requests a minute, which is far more than a page or an app needs and is there so one runaway loop cannot crowd the readers off a small shared machine.
If you need more, ask and you get a key: send it as an Authorization bearer token or an X-API-Key header, and the limit becomes 600 a minute. It is still free. The key exists so the higher limit belongs to you rather than to the address you happen to be calling from, and so there is a name attached if something goes wrong.
Reading the status field
verified— independent sources agree. Safe to publish.live/live_complete— read from the broadcast, not yet confirmed. Label it as provisional if you republish it.conflict— sources disagree and we are checking. Do not publish.scheduled— the draw has not happened or has not been reported.postponed— the Directorate has moved the draw. The new date, when one has been announced, is in postponedTo.