Developers
Build your own site or app on Data Live Draw data: live results, history, schedules, statistics and predictions — served from one source, already normalised.
Getting access
API keys are issued by the Data Live Draw team. Each key is limited to a set of markets, to scopes (results, statistics, prediction) and to your domain for browser calls. Rate limit: 120 requests per minute per key.
Base URL : https://datalivedraw.com/api/partner/v1
Auth : X-API-Key: dld_… (or Authorization: Bearer dld_…, or ?key=dld_… for EventSource)Endpoints
| Method | Path | Scope | Returns |
|---|---|---|---|
| GET | /markets | results | Markets your key may read: latest result, 3 recent results, next draw |
| GET | /markets/{slug}?limit=50 | results | One market with history (≤ 500 results) |
| GET | /markets/{slug}/stream?key=… | results | Server-Sent Events: snapshot on connect, update on a new result, ping every 15 s |
| GET | /upcoming | results | Allowed markets ordered by next draw time |
| GET | /statistics/{slug}?sample=200 | statistics | Hot/cold digits, odd/even, high/low, top 2D (≥ 10 draws) |
| GET | /prediction/{slug} | prediction | Prediction numbers per prize slot (6 digits) |
Result object
{
"period": "202609011900", "periodShort": "1900", "drawDate": "2026-09-01T12:00:00.000Z",
"digits": "123456", "prize1": "123456", "prize2": "9156", "prize3": "0370",
"result4d": "3456", "result3d": "456", "result2d": "56", "shio": "Kerbau",
"special": ["6810", "4512", "4026"], "consolation": ["3900", "7936", "3704"]
}A market object carries slug, name, timezone, digitLength, accent, status, drawStatus (LIVE/OPEN/CLOSED), schedule.nextDrawAt, latest and results[].
Server-side (recommended)
const r = await fetch("https://datalivedraw.com/api/partner/v1/markets/djarum-pools?limit=20", {
headers: { "X-API-Key": process.env.DLD_PARTNER_KEY } });
const { market } = await r.json();
market.latest.prize1; // "123456"
market.schedule.nextDrawAt; // ISO time of the next drawRender the numbers on the server (SSR/ISR) so search engines index them; use the stream or polling only for live updates.
Browser (allowed domain only)
const es = new EventSource("https://datalivedraw.com/api/partner/v1/markets/djarum-pools/stream?key=dld_…");
es.addEventListener("snapshot", e => render(JSON.parse(e.data)));
es.addEventListener("update", e => render(JSON.parse(e.data))); // new official resultPrediction & statistics
GET https://datalivedraw.com/api/partner/v1/prediction/djarum-pools
→ { "prediction": { "periodShort": "1900", "groups": [ { "slot": 1, "label": "Prize 1", "numbers": ["485833", …] }, … ] }, "disclaimer": "…" }
GET https://datalivedraw.com/api/partner/v1/statistics/djarum-pools?sample=200
→ { "statistics": { "sample": 200, "hot": ["5","1","6"], "cold": ["4","7","0"], "oddPct": 50, "evenPct": 50, "highPct": 56, "lowPct": 44, "twoD": [{ "pair": "04", "n": 2 }, …] } }Errors
401 missing/invalid key · 403 disabled key, wrong scope, market or origin not allowed · 404 market not found · 429 rate limit · 503 feature not configured. Body: { "ok": false, "error": "…" }.
Good practice for partner sites
- Write your own title, description and intro text — do not copy pages from this site.
- Link back once as the data source; Data Live Draw links to your site as the official site of the market.
- Keep your key server-side where possible; a key used in the browser is visible to visitors and is therefore restricted to your domain.