Kurnool Bazar Results API

A read-only JSON API that gives your website or app the same results Kurnool Bazar shows: today's board for every market, full jodi and panel chart history, market timings, and a change feed. If you register a webhook, every open, close and correction is pushed to your server the moment it is declared.

Base URL: https://kurnoolbazar.com/api/v1
Get a key: message Telegram or email kurnoolbazar.com1@gmail.com and tell us the site or app the key is for.

Authentication

Send your key in the X-API-Key header (preferred) or as ?key=. Requests without a valid key get 401; a disabled key gets 403.

curl -H "X-API-Key: kb_your_key_here" https://kurnoolbazar.com/api/v1/results

Endpoints

EndpointWhat you get
GET /resultsToday's board for every market: open panna, jodi, close panna, status (pending, open, closed), declared times, chart links, plus the golden ank.
GET /results/{slug}One market, e.g. /results/kurnoolmorning.
GET /chart/{slug}?from=YYYY-MM-DD&to=YYYY-MM-DDChart history, one row per day (open panna, jodi, close panna). Default: the last 30 days. At most 366 days per call.
GET /marketsAll markets with their slug, open and close times and chart links.
GET /latest?since={id}Change feed: every open, close and correction as a numbered event. Poll with the last id you saw and you only receive what is new.

Example: /results/kurnoolmorning

{
  "ok": true,
  "result": {
    "id": 1,
    "market": "KURNOOL MORNING",
    "slug": "kurnoolmorning",
    "date": "2026-09-28",
    "open_time": "10:00 AM",
    "close_time": "11:00 AM",
    "open_panna": "237",
    "open_digit": "2",
    "close_digit": "0",
    "close_panna": "578",
    "jodi": "20",
    "result": "237-20-578",
    "status": "closed",
    "open_declared_at": "2026-09-28T10:12:40+05:30",
    "close_declared_at": "2026-09-28T11:09:05+05:30",
    "jodi_chart": "https://kurnoolbazar.com/jchart/kurnoolmorning.php",
    "panel_chart": "https://kurnoolbazar.com/pchart/kurnoolmorning.php"
  },
  "generated_at": "2026-09-28T11:15:03+05:30"
}

While a half is not declared its fields are null and result shows stars, e.g. "237-2*-***". The board resets every morning at 06:15 IST; until then date is still the previous market day, which is how results declared after midnight (Main Bazar, Main Milan) stay on the right day.

Example: /chart/kalyan?from=2026-09-01&to=2026-09-07

{
  "ok": true, "market": "KALYAN", "slug": "kalyan", "from": "2026-09-01", "to": "2026-09-07", "count": 6,
  "rows": [
    { "date": "2026-09-01", "open_panna": "489", "open_digit": "1", "close_digit": "1", "close_panna": "146", "jodi": "11", "result": "489-11-146" },
    ...
  ]
}

Example: /latest?since=1240

{
  "ok": true, "since": 1240, "count": 2, "last_id": 1242,
  "events": [
    { "id": 1241, "event": "open",  "occurred_at": "2026-09-28T10:12:40+05:30", "result": { "market": "KURNOOL MORNING", "result": "237-2*-***", ... } },
    { "id": 1242, "event": "close", "occurred_at": "2026-09-28T11:09:05+05:30", "result": { "market": "KURNOOL MORNING", "result": "237-20-578", ... } }
  ]
}

Event types: open, close and correction (a declared value was changed). Store last_id and pass it as since next time.

Webhooks (instant push)

Give us an HTTPS URL and we POST every event to it as JSON within a second of the result being declared. Answer with any 2xx status within 5 seconds; anything else is retried after 1, 5, 15, 60 and 360 minutes.

POST https://your-site.com/hook
Content-Type: application/json
X-KB-Event: close
X-KB-Delivery: 8812
X-KB-Signature: sha256=3f1c…

{ "id": 8812, "event": "close", "sent_at": "2026-09-28T11:09:05+05:30",
  "data": { "market": "KURNOOL MORNING", "slug": "kurnoolmorning", "result": "237-20-578", ... } }

Every delivery is signed with your key's webhook secret (shown with your key). Verify it before trusting the data:

// PHP
$body = file_get_contents('php://input');
$expected = 'sha256=' . hash_hmac('sha256', $body, $yourSecret);
if (!hash_equals($expected, $_SERVER['HTTP_X_KB_SIGNATURE'] ?? '')) { http_response_code(401); exit; }
$delivery = json_decode($body, true);   // $delivery['data']['result'] etc.

The data object is exactly one item of /results. Use the delivery id to ignore a repeat if a retry ever arrives twice.

Caching, limits and errors

© 2011 - 2026 kurnoolbazar.com
About us | Contact us | Privacy & policy | Terms