Complex Examples

api reference29 sections

Top.gg Voter

json57 lines
1{
2            "url": "https://top.gg/bot/1134488991215919146/vote",
3            "cmd": "request.get",
4            "browserActions": [
5                {
6                    "type": "discord_login",
7                    "token": "AUTH_KEY_HERE",
8                    "when": "beforeload"
9                },
10                {
11                    "type": "click",
12                    "cssSelector": "a.chakra-button[href^=\"/login?redir=\"]"
13                },
14                {
15                    "type": "wait",
16                    "wait": "3"
17                },
18                {
19                    "type": "execute_js",
20                    "code": "(async()=>{let e=0,t=0,n=0;for(;n++<100;){const r=document.querySelector(\"[class^=\\\"intObserver__\\\"]\"),o=document.querySelectorAll(\"[class^=\\\"entry__\\\"]\");if(!r){console.log(\"✅ .intObserver__ disappeared\");break}r.scrollIntoView({behavior:\"instant\",block:\"end\"}),await new Promise(s=>setTimeout(s,500));if(o.length===e){t++;if(t>=5){console.log(\"✅ No new entries, done.\");break}}else{e=o.length;t=0}}})();"
21                },
22                {
23                    "type": "execute_js",
24                    "code": "const el=Array.from(document.querySelectorAll(\"span[data-text-variant=\\\"text-md/medium\\\"]\")).find(el=>el.textContent.trim()===\"Authorize\");el?el.click()&&console.log(\"✅ Clicked 'Authorize' span\"):console.warn(\"❌ 'Authorize' span not found\");"
25                },
26                {
27                    "type": "wait",
28                    "wait": "8"
29                },
30                {
31                    "type": "goto",
32                    "url": "https://top.gg/bot/1134488991215919146/vote",
33                },
34                {
35                    "type": "click",
36                    "cssSelector": "a.chakra-button[href^=\"/login?redir=\"]"
37                },
38                {
39                    "type": "wait",
40                    "wait": "10"
41                },
42                {
43                    "type": "execute_js",
44                    "code": "(async()=>{let e=0,t=0,n=0;for(;n++<100;){const r=document.querySelector(\"[class^=\\\"intObserver__\\\"]\"),o=document.querySelectorAll(\"[class^=\\\"entry__\\\"]\");if(!r){console.log(\"✅ .intObserver__ disappeared\");break}r.scrollIntoView({behavior:\"instant\",block:\"end\"}),await new Promise(s=>setTimeout(s,500));if(o.length===e){t++;if(t>=5){console.log(\"✅ No new entries, done.\");break}}else{e=o.length;t=0}}})();"
45                },
46                {
47                    "type": "execute_js",
48                    "code": "const el=Array.from(document.querySelectorAll(\"span[data-text-variant=\\\"text-md/medium\\\"]\")).find(el=>el.textContent.trim()===\"Authorize\");el?el.click()&&console.log(\"✅ Clicked 'Authorize' span\"):console.warn(\"❌ 'Authorize' span not found\");"
49                },
50                {
51                    "type": "click",
52                    "cssSelector": "//button[contains(text(),'Vote')]"
53                }
54            ],
55            "premiumProxy": true,
56            "proxyCountry": "UnitedStates"
57        }

Minecraftservers.org Voter

json30 lines
1{
2    "cmd": "request.get",
3    "url": "https://minecraftservers.org/vote/123456",
4    "alwaysLoad": [
5        "hcaptcha"
6    ],
7    "browserActions": [
8        {
9            "type": "solve_captcha",
10            "captcha": "hcaptcha",
11            "when": "beforeload",
12            "captchaData": {
13                "sitekey": "4c644290-32b8-49b6-8e8d-60af1d3fd0b4"
14            }
15        },
16        {
17            "type": "type",
18            "cssSelector": "input[name='username']",
19            "text": "Jake"
20        },
21        {
22            "type": "execute_js",
23            "code": "document.getElementsByName(\"h-captcha-response\")[0].value = '{javascriptReturn[0]}';"
24        },
25        {
26            "type": "click",
27            "cssSelector": "button[class='button lg green']"
28        }
29    ]
30}

Cralist.org Voter

json32 lines
1{
2    "cmd": "request.get",
3    "url": "https://craftlist.org/text",
4    "legacy": true,
5    "browser": [
6        {
7            "name": "chrome"
8        }
9    ],
10    "alwaysLoad": [
11        "recaptcha"
12    ],
13    "browserActions": [
14        {
15            "type": "click",
16            "cssSelector": "a[data-bs-toggle='modal'][data-bs-target='#voteModal'].btn.btn-vote"
17        },
18        {
19            "type": "solve_captcha",
20            "captcha": "recaptcha"
21        },
22        {
23            "type": "type",
24            "cssSelector": "input[type='text'][name='nickName'][id='test123']",
25            "text": "nathan"
26        },
27        {
28            "type": "click",
29            "cssSelector": "button[type='submit'][name='_submit'].ajax.btn.btn-primary"
30        }
31    ]
32}

Arena-top100.com Voter

json81 lines
1{
2    "url": "https://www.arena-top100.com/index.php?a=in&u=corrado",
3    "cmd": "request.get",
4    "abortOnDetection": [
5        "recaptcha",
6        "hcaptcha"
7    ],
8    "browserActions": [
9        {
10            "type": "solve_captcha",
11            "captcha": "turnstile",
12            "captchaData": {
13                "cssSelector": "#turnstile-widget"
14            }
15        },
16        {
17            "type": "if",
18            "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('window.hCaptcha_callback')).innerText.includes('window.hCaptcha_callback')",
19            "then": [
20                {
21                    "type": "solve_captcha",
22                    "captcha": "hcaptcha",
23                    "captchaData": {
24                        "sitekey": "29275050-dbfb-41be-98c5-5f8b24fc1edd"
25                    }
26                },
27                {
28                    "type": "execute_js",
29                    "code": "(function(){const t='{javascriptReturn[0]}',f=document.getElementById('vote-form'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);a('h-captcha-response',t);})()"
30                }
31            ]
32        },
33        {
34            "type": "if",
35            "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('window.ReCaptcha_callback')).innerText.includes('window.ReCaptcha_callback')",
36            "then": [
37                {
38                    "type": "solve_captcha",
39                    "captcha": "recaptchav2",
40                    "captchaData": {
41                        "sitekey": "6LeCVRkUAAAAAPyn3k14gN3Wo82MIvNRmwU9lKkG",
42                        "fast": true
43                    }
44                },
45                {
46                    "type": "execute_js",
47                    "code": "(function(){const t='{javascriptReturn[0]}',f=document.getElementById('vote-form'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);})()"
48                }
49            ]
50        },
51        {
52            "type": "if",
53            "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('window.Turnstile_callback')).innerText.includes('window.Turnstile_callback')",
54            "then": [
55                {
56                    "type": "wait",
57                    "wait": 5
58                },
59                {
60                    "type": "solve_captcha",
61                    "captcha": "turnstile",
62                    "captchaData": {
63                        "cssSelector": "div[data-callback='Turnstile_callback']"
64                    }
65                }
66            ]
67        },
68        {
69            "type": "execute_js",
70            "code": "(() => { const vote_button = document.getElementById('vote-btn'); vote_button.disabled = false; vote_button.querySelector('.spinner-border').classList.add('d-none'); vote_button.querySelector('svg').classList.remove('d-none'); document.getElementById('vote-text').textContent = 'Vote Now'; })();"
71        },
72        {
73            "type": "click",
74            "cssSelector": "#vote-text"
75        },
76        {
77            "type": "wait",
78            "wait": 3
79        }
80    ]
81}

Top100arena.com Voter (basic setup, make it functional yourself)

json42 lines
1{
2    "url": "https://www.top100arena.com/listing/99151/vote",
3    "cmd": "request.get",
4    "abortOnDetection": [
5        "recaptcha",
6        "hcaptcha"
7    ],
8    "browserActions": [
9        {
10            "type": "solve_captcha",
11            "captcha": "recaptchav2",
12            "captchaData": {
13                "sitekey": "6LdXNRYTAAAAAAlZ-9tmNoSzUHDYerMMd0ps5bab",
14                "fast": true
15            }
16        },
17        {
18            "type": "execute_js",
19            "code": "(function(){const t='{javascriptReturn[0]}',f=document.querySelector('form[novalidate*=\"novalidate\"]'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);})();"
20        },
21        {
22            "type": "click",
23            "cssSelector": "button.nk-btn.nk-btn-x4.nk-btn-block.nk-btn-rounded.nk-btn-color-main-1"
24        },
25        {
26            "type": "execute_js",
27            "code": "document.querySelector('div[style=\"display: grid;\"]')?.setAttribute('style','width: fit-content; margin: 0 auto;');"
28        },
29        {
30            "type": "wait",
31            "wait": 3
32        },
33        {
34            "type": "solve_captcha",
35            "captcha": "turnstile"
36        },
37        {
38            "type": "wait",
39            "wait": 3
40        }
41    ]
42}

Gamingtop100.net Voter

json25 lines
1{
2    "url": "https://www.gamingtop100.net/in-31999",
3    "cmd": "request.get",
4    "abortOnDetection": [
5        "recaptcha"
6    ],
7    "browserActions": [
8        {
9            "type": "solve_captcha",
10            "captcha": "recaptchav2",
11            "captchaData": {
12                "sitekey": "6LdB4L4SAAAAAAzCLhFN4mGpNoj-RO6Z9Sncqs_C",
13                "fast": true
14            }
15        },
16        {
17            "type": "execute_js",
18            "code": "(function(){const t='{javascriptReturn[0]}',f=document.getElementById('vote-form'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);})()"
19        },
20        {
21            "type": "click",
22            "cssSelector": "input[name='submit']"
23        }
24    ]
25}

Discordful.com Voter

json25 lines
1{
2    "cmd": "request.get",
3    "url": "https://api.discordful.com/v1/oauth/authorize",
4    "browserActions": [
5        {
6            "type": "discord_login",
7            "token": "YOUR_DISCORD_AUTH_TOKEN", 
8            "when": "beforeload"
9        },
10        {
11            "type": "click",
12            "cssSelector": "//body/div[@id='app-mount']/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/div[2]/button[2]",
13            "wait": 5
14        },
15        {
16            "type": "goto",
17            "url": "URL_OF_DISCORDFUL, example https://discordful.com/server/126666666965/vote"
18        },
19        {
20            "type": "click",
21            "cssSelector": "button[class='transition ease-in-out duration-300 rounded-md focus:outline-none border px-4 py-2 text-md border-transparent bg-primary-400 hover:bg-primary-500 text-white focus:ring-1 ring-primary-800 flex items-center justify-center w-full mt-5 capitalize md:mt-0 md:w-auto']",
22            "wait": 15
23        }
24    ]
25}

Linkedin Captcha Solver

json17 lines
1{
2    "cmd": "request.get",
3    "url": "https://www.linkedin.com/in/ynse-stapert-3158b89/",
4    "whitelistedDomains": ["funcaptcha", "arkoselabs", "licdn"],
5    "browserActions": [
6        {
7            "type": "if",
8            "condition": "document.querySelectorAll(\"code[id='funcaptchaChallengeSource']\").length > 0",
9            "then": [
10                {
11                    "type": "solve_captcha",
12                    "captcha": "funcaptcha"
13                }
14            ]
15        }
16    ]
17}

Autoparse Example Request

json46 lines
1{
2    "cmd": "request.get",
3    "url": "https://www.amazon.com/REORIA-Elegant-Wedding-Bodycon-Dresses/dp/B0C46KJY63",
4    "filter": [
5        "autoparse",
6        "statusCode"
7    ],
8    "autoparse": true,
9    "structure": {
10        "product_info": {
11            "name": "str",
12            "brand": "str",
13            "manufacturer_age_recommendation": "str",
14            "material": "str",
15            "color": "str",
16            "number_of_pieces": "int",
17            "theme": "str",
18            "special_feature": "str",
19            "model_name": "str",
20            "product_dimensions": "str",
21            "item_weight": "str",
22            "release_date": "str",
23            "asin": "str",
24            "product_safety": "str"
25        },
26        "ratings": {
27            "average_rating": "float",
28            "number_of_ratings": "int",
29            "reviews": [
30                {
31                    "review_text": "str",
32                    "reviewer_name": "str",
33                    "review_date": "str",
34                    "review_title": "str",
35                    "rating": "int"
36                }
37            ]
38        },
39        "product_details": {
40            "dimensions": "str",
41            "weight": "str",
42            "release_date": "str",
43            "asin": "str"
44        }
45    }
46}

Autoparse Example Response

json43 lines
1{
2    "solution": {
3        "verified": true,
4        "type": "browser",
5        "autoparse": {
6            "product_info": {
7                "name": "REORIA Women's Basic Summer Casual Lounge Long Dress Elegant Short Sleeve Crew Neck Bodycon Maxi Dresses",
8                "brand": "REORIA",
9                "manufacturer_age_recommendation": "Not specified",
10                "material": "93% Modal/7% Spandex",
11                "color": "Black",
12                "number_of_pieces": 0,
13                "theme": "Casual Lounge",
14                "special_feature": "Ribbed material, flattering mermaid look, hourglass body shape, cozy to wear",
15                "model_name": "REORIA Women's Basic Summer Casual Lounge Long Dress",
16                "product_dimensions": "Not specified",
17                "item_weight": "10.86 ounces",
18                "release_date": "March 8, 2024",
19                "asin": "B0CXJ7R9KT",
20                "product_safety": "Not specified"
21            },
22            "ratings": {
23                "average_rating": 4.4,
24                "number_of_ratings": 912,
25                "reviews": [
26                    {
27                        "review_text": "Ribbed material is very soft and flattering. The dress gives a mermaid look and hourglass body shape. It's cozy to wear all day.",
28                        "reviewer_name": "Customer",
29                        "review_date": "Not specified",
30                        "review_title": "Flattering and Comfortable",
31                        "rating": 5
32                    },
33            "availability": {
34                "in_stock": false,
35                "delivery_info": "Currently unavailable. We don't know when or if this item will be back in stock."
36            }
37        },
38        "statusCode": 200
39    },
40    "timeElapsed": 18159,
41    "data": "success",
42    "session": "663d7551-0787-4a5d-ab51-89d2f221d304"
43}

Seatgeek Example

typescript45 lines
1const axios = require('axios');
2
3const url = 'https://publisher.scrappey.com/api/v1?key=API_KEY';
4
5const code = `
6fetch('https://seatgeek.com/api/event_listings_v2?_include_seats=1&_include_tracked_listings=1&aid=225&client_id=MTY2MnwxMzgzMzIwMTU4&event_page_view_id=1822ff04-629e-47b7-8d62-9786c28449d2&id=17227052&sixpack_client_id=1c732cf4-ab8c-4ba7-b446-e744558a7a8c', {
7    headers: {
8        'accept': '*/*',
9        'accept-encoding': 'gzip, deflate, br, zstd',
10        'accept-language': 'en-US,en;q=0.9',
11        'referer': 'https://seatgeek.com/the-book-of-mormon-tickets/broadway/2025-03-11-7-pm/17227052',
12        'sec-fetch-dest': 'empty',
13        'sec-fetch-mode': 'no-cors',
14        'sec-fetch-site': 'same-origin',
15        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0'
16    }
17})
18.then(response => response.text())
19.then(data => {
20    document.body.textContent = data;
21})
22.catch(error => {
23    console.error('Error:', error);
24});
25`
26
27axios.post(url, {
28    cmd: 'request.get',
29    url: 'https://seatgeek.com/the-book-of-mormon-tickets/broadway/2025-03-11-7-pm/17227052',
30    premiumProxy: true,
31    proxyCountry: "UnitedStates",
32    retries: 1,
33    browserActions: [
34        {
35            "type": "execute_js",
36            "code": code
37        }
38    ]
39})
40.then(response => {
41    console.log(response.data);
42})
43.catch(error => {
44    console.error('Error:', error);
45});

Example Poketwo

json42 lines
1{
2    "cmd": "request.get",
3    "url": "https://verify.poketwo.net/captcha/%7Buid%7D",
4    "alwaysLoad": [
5        "recaptcha"
6    ],
7    "whitelistedDomains": [
8        "discord.com",
9        "verify.poketwo.net"
10    ],
11    "browserActions": [
12        {
13            "type": "solve_captcha",
14            "captcha": "recaptchav2",
15            "when": "beforeload",
16            "captchaData": {
17                "sitekey": "6LfgtMoaAAAAAPB_6kwTMPj9HG_XxRLL7n92jYkD"
18            }
19        },
20        {
21            "type": "execute_js",
22            "code": "document.getElementById(\"g-recaptcha-response\").value = '{javascriptReturn[0]}'"
23        },
24        {
25            "type": "execute_js",
26            "code": "document.querySelector(\"button[class='px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 disabled:opacity-50']\").disabled = false"
27        },
28        {
29            "type": "click",
30            "cssSelector": "button[class='px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 disabled:opacity-50']"
31        },
32        {
33            "type": "discord_login",
34            "token": "",
35            "direct": true
36        },
37        {
38            "type": "click",
39            "cssSelector": "button[class='button__201d5 lookFilled__201d5 colorBrand__201d5 sizeMedium__201d5 grow__201d5']"
40        }
41    ]
42}

Example Minecraft-mp

json30 lines
1{
2    "cmd": "request.get",
3    "url": "https://minecraft-mp.com/server/ID_HERE/vote/",
4    "browserActions": [
5        {
6            "type": "click",
7            "cssSelector": "input[type='checkbox'][name='accept'][id='accept'][value='1']"
8        },
9        {
10            "type": "type",
11            "cssSelector": "input[type='text'][class='form-control'][id='nickname'][name='nickname'][value='']",
12            "text": "USERNAME_HERE"
13        },
14        {
15            "type": "execute_js",
16            "code": "document.querySelector(\"div[id='captcha-block']\")?.setAttribute(\"style\", \"width: fit-content; margin: 0 auto;\");"
17        },
18        {
19            "type": "solve_captcha",
20            "captcha": "turnstile",
21            "captchaData": {
22                "cssSelector": "div[id='captcha-block']"
23            }
24        },
25        {
26            "type": "click",
27            "cssSelector": "button[type='submit'][class='btn btn-primary'][form='vote_form']"
28        }
29    ]
30}

Xtremetop100 Voter

🧬 Example Xtremetop100 (Full JSON Structure)

🧠 Advanced Captcha Handling with Conditional Logic

This example demonstrates how to use Scrappey's browserActions to handle multiple types of captchas on a single page using dynamic detection and conditional logic. The script supports Turnstile, hCaptcha, reCAPTCHA v2, and custom captchas such as Securimage, and it reacts based on a JavaScript condition that checks which captcha is active on the page.

Key Features:

  • Dynamic Detection: Uses inline JavaScript conditions to detect which captcha (out of 4 possible types) is required on the page.
  • Conditional Execution: Executes a specific sequence of actions (wait_for_selector, solve_captcha, execute_js) based on the detected captcha type.
  • Captcha Token Injection: Automatically injects the solved captcha token(s) into the appropriate hidden fields using JavaScript, mimicking real user interaction.
  • Support for Multiple Captchas: Supports Turnstile, hCaptcha, reCAPTCHA v2, and a fallback custom captcha used by platforms like XTremeTop100.
  • Resilient Navigation Flow: Ensures any necessary DOM interaction is completed before triggering a final click and styling update.

When to Use:

This setup is ideal for complex websites where:

  • Captcha types vary dynamically based on user location or behavior.
  • Anti-bot protections include JavaScript detection of bots.
  • You need to simulate natural form submissions after solving captchas.

Additional Notes:

  • You can further customize the execute_js blocks to support other backend integrations.
  • The abortOnDetection and alwaysLoad fields are used to halt execution if critical captchas are detected or force-load certain images or scripts.

Use this template as a robust base for scraping or automation flows where advanced bot protections are in place.

json109 lines
1{
2  "cmd": "request.get",
3  "url": "https://example.com",
4  "abortOnDetection": [
5    "recaptcha",
6    "hcaptcha"
7  ],
8  "alwaysLoad": [
9    "securimage_show.php"
10  ],
11  "browserActions": [
12    {
13      "type": "solve_captcha",
14      "captcha": "turnstile",
15      "captchaData": {
16        "cssSelector": "#turnstile-widget"
17      }
18    },
19    {
20      "type": "if",
21      "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('var captchaChoice =')).innerText.includes('var captchaChoice = 1')",
22      "then": [
23        {
24          "type": "wait_for_selector",
25          "cssSelector": "[name='ticki']"
26        },
27        {
28          "type": "solve_captcha",
29          "captcha": "hcaptcha",
30          "captchaData": {
31            "sitekey": "dcd2efd8-43d4-41bc-8e54-50682e8a8faa"
32          }
33        },
34        {
35          "type": "execute_js",
36          "code": "(function(){const t='{javascriptReturn[0]}',f=document.getElementById('vote-form-in'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);a('h-captcha-response',t);})()"
37        }
38      ]
39    },
40    {
41      "type": "if",
42      "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('var captchaChoice =')).innerText.includes('var captchaChoice = 2')",
43      "then": [
44        {
45          "type": "wait_for_selector",
46          "cssSelector": "[name='ticki']"
47        },
48        {
49          "type": "solve_captcha",
50          "captcha": "recaptchav2",
51          "captchaData": {
52            "sitekey": "6Le7mwwbAAAAAKIGqjAy7l6mjqyvMQydDF2WI8-2",
53            "fast": true
54          }
55        },
56        {
57          "type": "execute_js",
58          "code": "(function(){const t='{javascriptReturn[0]}',f=document.getElementById('vote-form-in'),a=(n,v)=>{let e=document.getElementsByName(n)[0];if(!e){e=document.createElement('textarea');e.name=n;f.appendChild(e);}e.value=v;};a('g-recaptcha-response',t);})()"
59        }
60      ]
61    },
62    {
63      "type": "if",
64      "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('var captchaChoice =')).innerText.includes('var captchaChoice = 3')",
65      "then": [
66        {
67          "type": "wait_for_selector",
68          "cssSelector": "[name='ticki']"
69        },
70        {
71          "type": "solve_captcha",
72          "captcha": "custom",
73          "cssSelector": "#captcha",
74          "inputSelector": "input[name='captcha_code']",
75          "coreName": "XTremeTop100"
76        }
77      ]
78    },
79    {
80      "type": "if",
81      "condition": "[...document.querySelectorAll('script')].find(s => s.textContent.includes('var captchaChoice =')).innerText.includes('var captchaChoice = 4')",
82      "then": [
83        {
84          "type": "wait",
85          "wait": 5
86        },
87        {
88          "type": "solve_captcha",
89          "captcha": "turnstile",
90          "captchaData": {
91            "cssSelector": "#turnstile-container > .cf-turnstile"
92          }
93        }
94      ]
95    },
96    {
97      "type": "click",
98      "cssSelector": "[name='ticki']"
99    },
100    {
101      "type": "execute_js",
102      "code": "document.querySelector(\"div[style*='display: grid;']\")?.setAttribute(\"style\", \"width: fit-content; margin: 0 auto;\");"
103    },
104    {
105      "type": "solve_captcha",
106      "captcha": "turnstile"
107    }
108  ]
109}
Was this page helpful?
Last updated: September 18, 2025
📚 AI Guide