Satta Matka Result API, built for builders
A clean REST Satta Matka Result API for live Satta Matka results, market history, and jodi/panel charts. Authenticate with a Bearer key, fetch real-time data from 195+ markets, and ship in minutes.
150ms
Avg Response
99.95%
Uptime SLA
600 RPM
Rate Limit
195+
Markets
PHP + cron
cURL or Laravel HTTP. Bearer header — never ?key= for new sm_ keys.
Webhooks
POST JSON on result.new so your board updates without scraping.
Postman collection
Import the public collection and hit /api/results/board with a Bearer key.
Quickstart
Get your API key
Sign up and start a free trial — an API key (sm_pro_… or sm_free_…) is generated instantly. Find it in your dashboard.
Make your first request
Pass your key in the Authorization header as a Bearer token. Do not put the key in the URL. All responses are JSON.
Handle statuses
Every result has a status: pending, open (close awaited), or closed (final).
# Get today's live board for all markets
curl https://sattamatkaapi.live/api/results/board \
-H "Authorization: Bearer sm_pro_your_32_char_hex" \
-H "Accept: application/json"Authentication
Satta Matka Result API uses Bearer-token API keys for all authenticated endpoints. New keys look like sm_pro_ + 32 hex characters (or sm_free_, sm_basic_, sm_enterprise_). Keep the key secret — never put it in a URL, GitHub, or frontend JavaScript. Use the public board endpoint (/api/results/board) for embeds without auth.
Header format
Authorization: Bearer sm_pro_your_32_char_hexAlso accepted: X-API-Key: sm_pro_your_32_char_hex. Query-string keys (?key=) only work for older migrated keys.
const res = await fetch('https://sattamatkaapi.live/api/results/board', {
headers: {
Authorization: 'Bearer sm_pro_your_32_char_hex',
Accept: 'application/json',
},
})
if (!res.ok) {
throw new Error('HTTP ' + res.status + ': ' + res.statusText)
}
const board = await res.json()
console.log(board.data) // [{ market, openPana, jodi, closePana, status }]Security best practices
- Store keys in environment variables, never in code
- Use server-side proxies for frontend apps
- Rotate keys quarterly or after team changes
- Revoke immediately if compromised
- Use allowed-markets to scope keys per app
- Verify your website (one key = one domain) — domain verification guide
Endpoint Reference
/api/results/boardLive Results Board
Full board of all markets for today. Includes status (pending/open/closed) and pana/jodi for every active market. Without an API key, returns market name + status only (public embed mode).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Authorization | header | Optional | Bearer sm_pro_… (omit for public preview mode) |
| date | string | Optional | Override date (YYYY-MM-DD IST). Defaults to today. |
Response Example
{
"data": [
{
"market": "Kalyan",
"slug": "kalyan",
"session": "day",
"openTime": "03:45 PM",
"closeTime": "05:45 PM",
"resultDate": "2026-08-14",
"openPana": "456",
"openAnk": "5",
"closePana": "123",
"closeAnk": "6",
"jodi": "56",
"resultString": "456-56-123",
"isComplete": true,
"status": "closed",
"source": "aggregator-a",
"verified": true,
"publishedAt": "2026-08-14T12:15:30.000Z"
}
],
"total": 24,
"pending": 8,
"open": 2,
"closed": 14,
"date": "2026-08-14",
"publicMode": false,
"cachedAt": "2026-08-14T12:30:00.000Z"
}Plan Tiers
| Plan | Rate Limit | History Depth | Charts | Bulk |
|---|---|---|---|---|
| Free | 10 RPM | 7 days | × | × |
| Basic | 30 RPM | 30 days | × | |
| Pro | 120 RPM | 365 days | ||
| Enterprise | 600 RPM | Unlimited |
Try It Live
Request
Sent as Authorization: Bearer. Optional for /board and /markets. New keys cannot go in the URL.
Authorization: Bearer sm_pro_your_32_char_hexHits the live API on this site. Board and markets work without a key. Today / live / history / chart need a real key in the Authorization header.
Response
Send a request to see the response here.
Rate Limiting
Rate limits depend on your plan. Headers are included in every response so you can adjust dynamically.
X-RateLimit-LimitMaximum requests per minuteX-RateLimit-RemainingRequests remaining in current windowX-RateLimit-ResetUnix timestamp when the window resetsError Handling
Errors return standard HTTP status codes with a JSON body.
200Success401Unauthorized — invalid or missing API key403Forbidden — key lacks permission (plan gate or origin lock)404Market not found or inactive429Rate limit / quota exceeded500Server error — retry with exponential backoffGame & Admin Panel Auto-Result Guide
Are you running a Matka betting app, game website, or custom admin panel? Here is how to automatically declare game results and settle winning bets in your system without manual data entry.
Market Mapping
Fetch all supported markets via /api/markets. Map each permanent slug (e.g. kalyan, milan-day) to your game table.
30s Auto Cron Job
Schedule a lightweight script to query /api/results/board every 30 seconds. One single call fetches all 251+ markets in sub-second time.
Instant Win Settlement
When isComplete: true arrives, update your database and auto-credit winnings to user wallets with zero human delay.
Production-Ready PHP Auto-Result Cron Script
cron_matka_auto_result.php<?php
// cron_matka_auto_result.php - Run every 30s in Linux crontab: * * * * * php /path/to/cron_matka_auto_result.php
$apiKey = "YOUR_API_KEY"; // e.g. sm_pro_...
$ch = curl_init("https://sattamatkaapi.live/api/results/board");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . $apiKey],
]);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
if (!empty($response['data'])) {
foreach ($response['data'] as $market) {
$slug = $market['slug']; // e.g. 'kalyan', 'milan-day', 'karnataka-day'
$openPana = $market['openPana']; // e.g. '470'
$openAnk = $market['openAnk']; // e.g. '1'
$closePana = $market['closePana']; // e.g. '120'
$closeAnk = $market['closeAnk']; // e.g. '3'
$jodi = $market['jodi']; // e.g. '13'
$isComplete = $market['isComplete']; // true when closed
if ($isComplete) {
// Full Result: Declare result and credit user bet wins
// UPDATE games SET open_p='$openPana', jodi='$jodi', close_p='$closePana', status='closed' WHERE market_slug='$slug' AND status != 'closed';
// calculateAndCreditWinnings($slug, $openPana, $jodi, $closePana);
} elseif (!empty($openPana)) {
// Open Result: Declare Open Pana in your panel
// UPDATE games SET open_p='$openPana', open_ank='$openAnk', status='open' WHERE market_slug='$slug' AND status='pending';
}
}
}
echo "All 251 markets checked and updated successfully.\n";
?>