Search code examples
javascriptnode.jsgetpostmanfetch-api

API GET request not reflecting changes in database, delayed by 5min


I am trying to make an web-app that notifies when new vaccine slots arrive on government portal using provided public APIs.

What I need is to call the API every minute and check if the slots have been added to the database. But the response I am getting is stale as the new sessions detected by my app (also in Chrome) were about 5 minutes old, I know this because some telegram channels are showing update earlier than my app.

Also, when I try to hit the same API with Postman, the response I am getting is fresh.

Issue is - Chorme/myApp response is not reflecting the updated database... but postman is showing the updated one... chrome is getting the updated response 5 mins after its showing in Postman.

Public API: https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict?district_id=141&date=06-07-2021

let response = await fetch(`https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/calendarByDistrict?district_id=${id}&date=${today}`, {
            method: 'GET',
            headers: {
                'Content-Type': 'application/json',
                'Connection': 'keep-alive',
            },
        })

Do I need to change some headers or anything else in my get requests?... or anything else?

Help, me fix it...


Solution

  • So couple of things.
    First, use Find by district API instead of Calendar by district API. Thats more accurate.
    https://cdn-api.co-vin.in/api/v2/appointment/sessions/public/findByDistrict?district_id=512&date=31-03-2021
    Second, pass the user agent. This is in PHP, but you can always update to other language.

        $header     = array(
                        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                        "Pragma: no-cache",
                        "Cache-Control: no-cache",
                        "Accept-Language: en-us",
                        "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15",
                        "Upgrade-Insecure-Requests: 1"
                        );