Satta MatkaAPILive Result API
HomeLive ResultsPricingDocsFAQBlogContact
›
Satta MatkaAPILive Result API

Live matka results, market history, and charts via a fast JSON API. Built for developers who need real-time data delivery.

WhatsApp +91 7295908450·+91 7295908450

System status

Product

  • Live Results
  • Pricing
  • Matka API
  • Auto Result API
  • API Services

Resources

  • Documentation
  • FAQ
  • Blog
  • What is Satta Matka API
  • Status

Company

  • About
  • Contact
  • Privacy
  • Terms

© 2026 Satta Matka API. All rights reserved. Built with care for developers.

    ›
    ›
    Home›Blog›API Rate Limits Explained: How to Maximize Your Plan
    API Update

    API Rate Limits Explained: How to Maximize Your Plan

    Every plan has two limits: requests per month and requests per minute. This guide explains how they interact, what counts toward your quota, how to estimate usage, and how to cache aggressively to multiply your effective capacity.

    Satta Matka API Team14 Dec 20256 min read57 views

    Every Satta Matka API plan has two independent limits: requests per month (your monthly quota) and requests per minute (your concurrency cap). Hitting either one returns a 429 Too Many Requests response. This guide explains how the limits work, how to estimate your usage before you upgrade, and how to multiply your effective capacity 5–10x with caching.

    The two limits

    | Plan | Requests / month | Requests / minute | |---|---|---| | Free Trial (2 days) | 1,000 | 10 | | Basic (₹99/mo) | 30,000 | 60 | | Pro (₹479 / 6 mo) | 200,000 | 200 | | Enterprise | Custom | Custom |

    The monthly quota is a hard counter — every successful API request (200 response) decrements it by 1. The per-minute cap is a sliding window — if you exceed it, the API returns 429 and the request does NOT count against your monthly quota.

    What counts as a request

    • A successful 200 response → 1 request
    • A 401 (unauthorized) or 403 (forbidden) → 1 request
    • A 404 (not found, e.g. wrong market slug) → 1 request
    • A 429 (rate limited) → 0 requests (does not count)
    • A 5xx (server error) → 0 requests (does not count)

    So you are billed for "your fault" errors (bad request, wrong auth, wrong slug) but not for "our fault" errors. Be careful with 404s — a typo in a market slug on a busy page can burn through your quota fast.

    How to estimate your usage

    A typical matka results site makes:

    • 1 call per page load to /api/results/live (the board).
    • 1 call per 30s if the user stays on the page (polling).

    If you have 1000 visitors/day, each staying 3 minutes on average and polling every 30s:

    1000 visitors × (1 + 3 min × 2 polls/min) = 1000 × 7 = 7,000 requests/day
    

    That is 210,000 requests/month — Pro plan territory. Without caching.

    The multiplier: caching

    You can cut that number by 80%+ with two layers of caching:

    Layer 1 — Browser cache

    The live board response is identical for every visitor for ~30 seconds. Set a Cache-Control: max-age=30, s-maxage=30 header on your server-side proxy and the user's browser will reuse the same response for 30 seconds, skipping the API call entirely.

    Layer 2 — CDN cache (s-maxage)

    If your site is behind a CDN (Cloudflare, Vercel Edge, Fastly), set s-maxage=30 (or higher) on the response. The CDN will serve the cached response to thousands of users from a single API call. This is the single biggest lever for matka result sites — a 30-second CDN cache turns 33 req/s into 0.03 req/s at your origin.

    Layer 3 — Server-side deduplication

    If you proxy the API through your own server (recommended, so you don't expose your key), add a tiny in-memory cache that serves the last-fetched response for 10 seconds. This dedupes concurrent requests — if 50 users hit your origin in the same second, only one of them triggers an API call; the other 49 get the cached response.

    let cache = null
    let cacheAt = 0
    
    async function getLiveBoard() {
      if (cache && Date.now() - cacheAt < 10000) return cache
      cache = await fetch('https://sattamatkaapi.live/api/results/live', {
        headers: { Authorization: 'Bearer ' + API_KEY }
      }).then(r => r.json())
      cacheAt = Date.now()
      return cache
    }
    

    Don't poll when nobody is looking

    If your page is in a background tab, you do not need to poll. Use the visibilitychange event:

    let pollInterval
    
    document.addEventListener('visibilitychange', () => {
      if (document.hidden) {
        clearInterval(pollInterval)
      } else {
        refresh() // immediate refresh on tab focus
        pollInterval = setInterval(refresh, 30000)
      }
    })
    

    This typically cuts polling traffic by 30–50% on sites where users open a results tab and leave it in the background.

    Use webhooks instead of polling for the heavy lift

    If you have a backend, switch from polling to webhooks (see Setting Up Webhooks for Auto Result Updates). Your server gets one POST per declared result — roughly 550 events per day across all 276 markets. That is 16,500 requests/month, regardless of how many users you have. Compare that to 210,000 requests/month for 1000 polling visitors, and you can see why webhooks are dramatically cheaper at scale.

    Use bulk endpoints for history

    If you need to backfill a market's history (e.g. on first integration), do not call /api/results/{slug} 30 times for the last 30 days. Use the bulk history endpoint:

    curl -H "Authorization: Bearer $MATKA_API_KEY" \
         "https://sattamatkaapi.live/api/results/history/kalyan?days=30"
    

    One request returns 30 days of data. That is 30x cheaper than per-day calls.

    Handling 429s gracefully

    When you do hit the rate limit, your client should:

    1. Read the Retry-After header (seconds to wait before retrying).
    2. Back off exponentially (1s, 2s, 4s, 8s, max 30s).
    3. Optionally fall back to a stale cached response while waiting.
    async function safeFetch(url, opts) {
      const res = await fetch(url, opts)
      if (res.status === 429) {
        const wait = parseInt(res.headers.get('Retry-After') || '5', 10)
        await new Promise(r => setTimeout(r, wait * 1000))
        return safeFetch(url, opts)
      }
      return res
    }
    

    Summary

    • Two limits: monthly quota and per-minute cap. Different things, both can 429 you.
    • Browser cache + CDN cache + server-side dedupe = 80–95% reduction in API calls.
    • Stop polling when the tab is hidden.
    • Use webhooks for server-side updates instead of polling.
    • Use bulk endpoints for history backfill.
    • Handle 429s with exponential backoff and Retry-After.

    A typical Pro plan (200k requests/month) can comfortably serve 5000+ daily visitors with proper caching. Without caching, you would need Enterprise.

    Tags#rate-limits#pricing#caching#quota
    Ready to build?

    Start your free API trial

    Get 2 days of full access to every endpoint — live results, history, charts, webhooks. No credit card required.

    View pricing & start trial

    Related api updates

    API Update7 min

    API Security Best Practices: Domain Binding & Key Rotation

    Your API key is the front door to your account. This guide covers domain binding (so your key only works from your domains), IP allowlisting for server-to-server calls, key rotation when keys leak, and other security best practices.

    16 Aug 2026