// Login to https://fancy.parivahan.gov.in/fancy/faces/public/login.xhtml and navigate to Number Selection tab, select RTO and run these on console // Update START, END, RTO, STATE_CODE, COOKIE & SERVER_TOKEN // get the Cookie & ViewState from Network request(or with Postman Interceptor) // Find open status from here // https://fancy.parivahan.gov.in/fancy/faces/public/seriesOpenStatus.xhtml (async () => { const START = 6198; const END = 7196; const RTO = 03; const STATE_CODE = "KL"; const COOKIE = "SERVERID_fancy_24=vahan_xxxxxxx"; const SERVER_TOKEN = "xxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/x/xxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxx+xxx/xxxx+xxxxxxxxx+x/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+/xxxx/xxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx+xxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxx+xxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx/xxxxxxx/xxxxxxxx/xxxxxxxxx+xx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxxxxxxxxx+x+xxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxx+xxx/xxxx+xx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxx/x/xxxxx/xxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxx/xxxxxxxxxxxxx+xxxxxx/x+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxx/+xxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxx/xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; const myHeaders = new Headers(); myHeaders.append("sec-ch-ua-platform", "\"macOS\""); myHeaders.append("sec-ch-ua", "\"Not A(Brand\";v=\"8\", \"Chromium\";v=\"132\", \"Google Chrome\";v=\"132\""); myHeaders.append("sec-ch-ua-mobile", "?0"); myHeaders.append("Faces-Request", "partial/ajax"); myHeaders.append("X-Requested-With", "XMLHttpRequest"); myHeaders.append("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36"); myHeaders.append("Accept", "application/xml, text/xml, */*; q=0.01"); myHeaders.append("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); myHeaders.append("Sec-Fetch-Site", "same-origin"); myHeaders.append("Sec-Fetch-Mode", "cors"); myHeaders.append("Sec-Fetch-Dest", "empty"); myHeaders.append("host", "fancy.parivahan.gov.in"); myHeaders.append("Cookie", COOKIE); function getNumber(result, number) { const [availableNumber] = result.match(new RegExp(`${STATE_CODE}${RTO}[A-Z]{0,2}${number}`, "g")) || [] return availableNumber; } window.availableNumbers = []; const reservedOrBooked = [...document.querySelectorAll("[id*=':regigtrationNumber']")]; reservedOrBooked.forEach((reserved) => { const extractedNumber = getNumber(reserved.textContent, "[0-9]{4}"); if (extractedNumber) { window.availableNumbers.push(extractedNumber) } }) for (let number = START; number <= END; number += 1) { await new Promise((resolve) => { setTimeout(resolve, 1000) }); console.log({ msg: `checking ${number}` }) const urlencoded = new URLSearchParams(); urlencoded.append("appname1", ""); urlencoded.append("btnCheckChoiceNumber1", "btnCheckChoiceNumber1"); urlencoded.append("dtAvailChoiceNumber_scrollState", "0,0"); urlencoded.append("ib_Veh_Seri_focus", ""); urlencoded.append("ib_Veh_Seri_input", "-1"); urlencoded.append("ib_home_rto_focus", ""); urlencoded.append("ib_home_rto_input", "-1"); urlencoded.append("ib_scrossflag_focus", ""); urlencoded.append("ib_scrossflag_input", "-1"); urlencoded.append("ib_statea1_focus", ""); urlencoded.append("ib_statea1_input", "-1"); urlencoded.append("ib_statea_focus", ""); urlencoded.append("ib_statea_input", `${RTO}`); urlencoded.append("ib_stateb_focus", ""); urlencoded.append("ib_stateb_input", "-1"); urlencoded.append("ib_veh_catg_focus", ""); urlencoded.append("ib_veh_catg_input", "-1"); urlencoded.append("j_idt68", ""); urlencoded.append("javax.faces.ViewState", SERVER_TOKEN); urlencoded.append("javax.faces.partial.ajax", "true"); urlencoded.append("javax.faces.partial.execute", "@all"); urlencoded.append("javax.faces.partial.render", "tblAvailChoiceNumber popup txtChoiceNumber txtChoiceNumber1"); urlencoded.append("javax.faces.source", "btnCheckChoiceNumber1"); urlencoded.append("master_Layout_form_Login", "master_Layout_form_Login"); urlencoded.append("selCubicCapacity_focus", ""); urlencoded.append("selCubicCapacity_input", "-1"); urlencoded.append("sel_fuel_type_focus", ""); urlencoded.append("sel_fuel_type_input", "-1"); urlencoded.append("tblAvailFancyNumber:2:selected_number", "on"); urlencoded.append("tblAvailFancyNumber:j_idt116:filter", ""); urlencoded.append("tblAvailFancyNumber_scrollState", "0,67.5"); urlencoded.append("txtChoiceNumber", ""); urlencoded.append("txtChoiceNumber1", `${number}`); const requestOptions = { method: "POST", headers: myHeaders, body: urlencoded, redirect: "follow" }; await fetch("https://fancy.parivahan.gov.in/fancy/faces/app/applicanthome.xhtml", requestOptions) .then((response) => response.text()) .then((result) => { const extractedNumber = getNumber(result, number); if (extractedNumber && result.includes("dtAvailChoiceNumber:0:regigtrationNumber")) { console.log({ msg: "found", number }) window.availableNumbers.push(extractedNumber) } }) .catch((error) => console.error(error)); } window.availableNumbers.sort() console.log({ availableNumbers: window.availableNumbers }) })()