{"id":23275837,"url":"https://github.com/javapuppteernodejs/recaptcha-python","last_synced_at":"2026-02-07T14:32:40.787Z","repository":{"id":236729844,"uuid":"793043080","full_name":"javapuppteernodejs/recaptcha-python","owner":"javapuppteernodejs","description":null,"archived":false,"fork":false,"pushed_at":"2024-04-28T09:17:47.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-24T13:43:13.448Z","etag":null,"topics":["recaptcha-api","recaptcha-api-client","recaptcha-bypass-script","recaptcha-python","recaptcha-solver","recaptcha-solver-go","recaptcha-solver-php","recaptcha-solver-python","recaptcha-v2","recaptcha-v2-captcha-solver","recaptcha-v2-captcha-solving","recaptcha-v2-solver","recaptcha-v3","recaptcha-v3-enterprise-solver","recaptcha-v3-solver","recaptcha-v3-solver-enterprise","recaptcha-v3-solver-high-score","recaptcha-verification","recaptchav2","solving-recaptcha-service"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javapuppteernodejs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-28T09:09:08.000Z","updated_at":"2024-04-28T09:20:34.000Z","dependencies_parsed_at":"2024-04-28T10:24:43.952Z","dependency_job_id":null,"html_url":"https://github.com/javapuppteernodejs/recaptcha-python","commit_stats":null,"previous_names":["javapuppteernodejs/recaptcha-python"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/javapuppteernodejs/recaptcha-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Frecaptcha-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Frecaptcha-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Frecaptcha-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Frecaptcha-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javapuppteernodejs","download_url":"https://codeload.github.com/javapuppteernodejs/recaptcha-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javapuppteernodejs%2Frecaptcha-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29197022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T12:38:28.597Z","status":"ssl_error","status_checked_at":"2026-02-07T12:38:23.888Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["recaptcha-api","recaptcha-api-client","recaptcha-bypass-script","recaptcha-python","recaptcha-solver","recaptcha-solver-go","recaptcha-solver-php","recaptcha-solver-python","recaptcha-v2","recaptcha-v2-captcha-solver","recaptcha-v2-captcha-solving","recaptcha-v2-solver","recaptcha-v3","recaptcha-v3-enterprise-solver","recaptcha-v3-solver","recaptcha-v3-solver-enterprise","recaptcha-v3-solver-high-score","recaptcha-verification","recaptchav2","solving-recaptcha-service"],"created_at":"2024-12-19T21:16:45.872Z","updated_at":"2026-02-07T14:32:40.772Z","avatar_url":"https://github.com/javapuppteernodejs.png","language":null,"readme":"# How to Solve reCAPTCHA by Using Python and GO\n![](https://assets.capsolver.com/prod/images/post/2024-04-26/b88d53aa-367f-478d-93e8-4da580191d22.png)\n\n\nreCAPTCHA, developed by Google, is a widely used security measure implemented by websites to protect against automated bots. It presents users with challenges to verify their human identity. In this article, we will explore how to solve reCAPTCHA challenges programmatically using Python and Go. We will cover both reCAPTCHA v2 and v3, providing you with the knowledge and tools to overcome these security measures in your web scraping projects.\n\n\n\n## What is reCAPTCHA?\nreCAPTCHA offers robust protection for websites, effectively preventing fraudulent activities and abuse while maintaining user convenience. Powered by an intelligent risk assessment engine and adaptive challenges, it effectively deters malicious software and ensures smooth access for legitimate users. With a track record of over a decade, reCAPTCHA actively defends data integrity for countless websites. Its seamless approach effortlessly identifies and blocks bots and automated attacks, while still allowing genuine users to navigate without disruption. Leveraging continuous machine learning, reCAPTCHA's adaptive algorithms analyze user interactions and bot behaviors, surpassing the limitations of traditional challenge-based bot detection methods.\n\n\n**There are several versions of reCAPTCHA:**\n\nreCAPTCHA, developed by Google, comes in several versions, each designed to differentiate between humans and bots in varying ways:\n\n- **reCAPTCHA v1**: The initial version required users to decipher distorted text and input it into a text box.\n- **reCAPTCHA v2**: This version introduces a checkbox for users to confirm their human identity. Sometimes, it may also prompt users to select specific images from a grid.\n- **reCAPTCHA v3**: Unlike its predecessors, this version operates in the background, analyzing user behavior to assign a score indicating the likelihood of human or bot activity. It offers a seamless experience, requiring no direct interaction from the user.\n\nIn this article, our focus will be on solving reCAPTCHA V2 and V3. Those version typically displays a checkbox with the prompt 'I am not a robot' or may appear as an invisible badge, aiming to distinguish genuine users from bots. Here's how it looks in action:\n\n![](https://assets.capsolver.com/prod/images/post/2023-05-12/1786afea-e28f-4f1a-92e2-7fab7b2a81c8.gif)\"\n\n\n## The Best reCAPTCHA Solver: Capsolver\n\n[Capsolver](https://www.capsolver.com/) stands out as one of the top reCAPTCHA solvers available in the market. Offering a combination of affordability, speed, and reliability, Capsolver utilizes AI-powered Captcha Solving Algorithms, resulting in faster solving speeds and reduced costs. This exceptional solution ensures an excellent developer experience when dealing with reCAPTCHA challenges.\n\n### Why Choose Capsolver?\n\n**Affordable and Fast:**\nCapsolver offers competitive pricing, making it one of the most cost-effective options for solving reCAPTCHAs. With its AI-powered algorithms, it achieves faster solving speeds, saving valuable time.\n\n**High Reliability:**\nCapsolver boasts the fastest update speed among similar providers, ensuring that you have access to the most up-to-date and accurate captcha solving technology. This reliability ensures a smooth and uninterrupted solving experience.\n\n**Risk-Free Solution:**\nWith Capsolver, you only pay for successfully solved captchas. Their strict cooperation review process ensures that any illegal activities are swiftly identified and banned, providing a secure and trustworthy platform for solving reCAPTCHAs.\n\n**AI-Powered Automation:**\nCapsolver leverages the power of artificial intelligence to provide fully automated captcha solving. This eliminates the need for manual intervention, streamlining the solving process and enhancing efficiency.\n\n**Compatibility with Popular Services:**\nCapsolver seamlessly works with APIs of popular manual captcha recognition services, ensuring compatibility with various platforms and systems. This flexibility allows for easy integration into your existing workflows.\n\n**Diverse Solutions:**\nIn addition to its API service, Capsolver also offers a Chrome extension, expanding its capabilities and providing more options for solving reCAPTCHAs. This versatility caters to different user preferences and requirements.\n\n**Trusted by a Wide Range of Platforms:**\nWith over 1000+ platforms integrating Capsolver's API, it has gained the trust and confidence of numerous businesses and developers. This extensive adoption attests to the reliability and effectiveness of the Capsolver solution.\n\n\n## How To Solve reCAPTCHA v3-API Guide\n\n### ReCaptchaV3Task\n\nReCaptchaV3Task is a task type that requires your own proxies to work. It's ideal for those who have a pool of reliable proxies at their disposal. The usage of personal proxies allows for greater control and customization over the solving process.\n\n```python\n# pip install --upgrade capsolver\n# export CAPSOLVER_API_KEY='...'\n\nimport capsolver\n# capsolver.api_key = \"...\"\nsolution = capsolver.solve({\n    \"type\": \"ReCaptchaV3Task\",\n    \"websiteURL\": \"https://www.google.com/recaptcha/api2/demo\",\n    \"websiteKey\": \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-\",\n    \"proxy\":\"ip:port:user:pass\", ...\n})\n```\n\n### ReCaptchaV3TaskProxyLess\nIf you don't have access to proxies or prefer not to use them, ReCaptchaV3TaskProxyLess is a perfect choice. It leverages the server's built-in proxy, making the process more streamlined and user-friendly.\n```python\n# pip install --upgrade capsolver\n# export CAPSOLVER_API_KEY='...'\n\nimport capsolver\n\n# capsolver.api_key = \"...\"\nsolution = capsolver.solve({\n    \"type\": \"ReCaptchaV3TaskProxyLess\",\n    \"websiteURL\": \"https://www.google.com/recaptcha/api2/demo\",\n    \"websiteKey\": \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-\", ...\n})\n```\n\n\n### Step 1 : Creating a Task\n\nTo start the process, you need to create a recognition task using the `createTask` method.\n\nHere's an example request:\n\n```json\nPOST https://api.capsolver.com/createTask\n\n{\n  \"clientKey\":\"yourapiKey\",\n  \"task\": {\n    \"type\":\"ReCaptchaV3Task\",\n    \"websiteURL\":\"https://antcpt.com/score_detector\",\n    \"websiteKey\":\"6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf\",\n    \"pageAction\": \"homepage\",\n    \"proxy\":\"yourproxy\"\n  }\n}\n```\nOnce the task is successfully submitted, you'll receive a Task ID in the response:\n\n```json\n{\n  \"errorId\": 0,\n  \"errorCode\": \"\",\n  \"errorDescription\": \"\",\n  \"taskId\": \"61138bb6-19fb-11ec-a9c8-0242ac110006\"\n}\n```\n### Step 2 : Getting Results\n\nOnce you have the Task ID, you can use it to retrieve the solution. Submit the Task ID with the getTaskResult method. The results should be ready within an interval of 1s to 10s.\n\nHere's an example request:\n```json\nPOST https://api.capsolver.com/getTaskResult\nHost: api.capsolver.com\nContent-Type: application/json\n\n{\n  \"clientKey\":\"YOUR_API_KEY\",\n  \"taskId\": \"TASKID OF CREATETASK\" //ID created by the createTask method\n}\n```\nThe response will include the solution token:\n```json\n{\n  \"errorId\": 0,\n  \"errorCode\": null,\n  \"errorDescription\": null,\n  \"solution\": {\n    \"userAgent\": \"xxx\",\n    \"expireTime\": 1671615324290,\n    \"gRecaptchaResponse\": \"3AHJ.....\"\n  },\n  \"status\": \"ready\"\n}\n```\nIn the response, 'solution' contains the 'userAgent', the expiration time of the token 'expireTime', and the solution token 'gRecaptchaResponse'. After the captcha has been solved, you can check the captcha token by sending the token to the site, example:\n\n```json\nvar request = require('request');\n\nvar options = {\n  method: 'POST',\n  url: 'https://antcpt.com/score_detector/verify.php',\n  headers: {\n    'Content-Type': 'application/json',\n  },\n  body: JSON.stringify({ 'g-recaptcha-response': 'here the token of capsolver' }),\n};\n\nrequest(options, function (error, response) {\n  if (error) throw new Error(error);\n  console.log(response.body);\n});\n```\n\n\u003e More about How To **Solve reCAPTCHA v2**, you can refer to this [Documenatation](https://docs.capsolver.com/guide/captcha/ReCaptchaV2.html)\n\n## How to Solve reCAPTCHA by Using Python and GO\n### Sample Code for reCAPTCHA v2\n```python\n# pip install requests\nimport requests\nimport time\n\n# TODO: set your config\napi_key = \"YOUR_API_KEY\"  # your api key of capsolver\nsite_key = \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-\"  # site key of your target site\nsite_url = \"https://www.google.com/recaptcha/api2/demo\"  # page url of your target site\n\n\ndef capsolver():\n    payload = {\n        \"clientKey\": api_key,\n        \"task\": {\n            \"type\": 'ReCaptchaV2TaskProxyLess',\n            \"websiteKey\": site_key,\n            \"websiteURL\": site_url\n        }\n    }\n    res = requests.post(\"https://api.capsolver.com/createTask\", json=payload)\n    resp = res.json()\n    task_id = resp.get(\"taskId\")\n    if not task_id:\n        print(\"Failed to create task:\", res.text)\n        return\n    print(f\"Got taskId: {task_id} / Getting result...\")\n\n    while True:\n        time.sleep(3)  # delay\n        payload = {\"clientKey\": api_key, \"taskId\": task_id}\n        res = requests.post(\"https://api.capsolver.com/getTaskResult\", json=payload)\n        resp = res.json()\n        status = resp.get(\"status\")\n        if status == \"ready\":\n            return resp.get(\"solution\", {}).get('gRecaptchaResponse')\n        if status == \"failed\" or resp.get(\"errorId\"):\n            print(\"Solve failed! response:\", res.text)\n            return\n\n\ntoken = capsolver()\nprint(token)\n```\n```go\npackage main\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n)\n\ntype capSolverResponse struct {\n\tErrorId          int32          `json:\"errorId\"`\n\tErrorCode        string         `json:\"errorCode\"`\n\tErrorDescription string         `json:\"errorDescription\"`\n\tTaskId           string         `json:\"taskId\"`\n\tStatus           string         `json:\"status\"`\n\tSolution         map[string]any `json:\"solution\"`\n}\n\nfunc capSolver(ctx context.Context, apiKey string, taskData map[string]any) (*capSolverResponse, error) {\n\turi := \"https://api.capsolver.com/createTask\"\n\tres, err := request(ctx, uri, map[string]any{\n\t\t\"clientKey\": apiKey,\n\t\t\"task\":      taskData,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif res.ErrorId == 1 {\n\t\treturn nil, errors.New(res.ErrorDescription)\n\t}\n\n\turi = \"https://api.capsolver.com/getTaskResult\"\n\tfor {\n\t\tselect {\n\t\tcase \u003c-ctx.Done():\n\t\t\treturn res, errors.New(\"solve timeout\")\n\t\tcase \u003c-time.After(time.Second):\n\t\t\tbreak\n\t\t}\n\t\tres, err = request(ctx, uri, map[string]any{\n\t\t\t\"clientKey\": apiKey,\n\t\t\t\"taskId\":    res.TaskId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif res.ErrorId == 1 {\n\t\t\treturn nil, errors.New(res.ErrorDescription)\n\t\t}\n\t\tif res.Status == \"ready\" {\n\t\t\treturn res, err\n\t\t}\n\t}\n}\n\nfunc request(ctx context.Context, uri string, payload interface{}) (*capSolverResponse, error) {\n\tpayloadBytes, err := json.Marshal(payload)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq, err := http.NewRequestWithContext(ctx, \"POST\", uri, bytes.NewReader(payloadBytes))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\tclient := \u0026http.Client{}\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\tresponseData, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcapResponse := \u0026capSolverResponse{}\n\terr = json.Unmarshal(responseData, capResponse)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn capResponse, nil\n}\n\nfunc main() {\n\tapikey := \"YOUR_API_KEY\"\n\tctx, cancel := context.WithTimeout(context.Background(), time.Second*120)\n\tdefer cancel()\n\n\tres, err := capSolver(ctx, apikey, map[string]any{\n\t\t\"type\":       \"ReCaptchaV2TaskProxyLess\",\n\t\t\"websiteURL\": \"https://www.google.com/recaptcha/api2/demo\",\n\t\t\"websiteKey\": \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-\",\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(res.Solution[\"gRecaptchaResponse\"])\n}\n```\n\n### Sample Code for reCAPTCHA v3\n```python\n# pip install requests\nimport requests\nimport time\n\n# TODO: set your config\napi_key = \"YOUR_API_KEY\"  # your api key of capsolver\nsite_key = \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-\"  # site key of your target site\nsite_url = \"https://www.google.com\"  # page url of your target site\n\n\ndef capsolver():\n    payload = {\n        \"clientKey\": api_key,\n        \"task\": {\n            \"type\": 'ReCaptchaV3TaskProxyLess',\n            \"websiteKey\": site_key,\n            \"websiteURL\": site_url\n        }\n    }\n    res = requests.post(\"https://api.capsolver.com/createTask\", json=payload)\n    resp = res.json()\n    task_id = resp.get(\"taskId\")\n    if not task_id:\n        print(\"Failed to create task:\", res.text)\n        return\n    print(f\"Got taskId: {task_id} / Getting result...\")\n\n    while True:\n        time.sleep(1)  # delay\n        payload = {\"clientKey\": api_key, \"taskId\": task_id}\n        res = requests.post(\"https://api.capsolver.com/getTaskResult\", json=payload)\n        resp = res.json()\n        status = resp.get(\"status\")\n        if status == \"ready\":\n            return resp.get(\"solution\", {}).get('gRecaptchaResponse')\n        if status == \"failed\" or resp.get(\"errorId\"):\n            print(\"Solve failed! response:\", res.text)\n            return\n\n\ntoken = capsolver()\nprint(token)\n```\n```go\npackage main\n\nimport (\n\t\"bytes\"\n\t\"context\"\n\t\"encoding/json\"\n\t\"errors\"\n\t\"fmt\"\n\t\"io\"\n\t\"net/http\"\n\t\"time\"\n)\n\ntype capSolverResponse struct {\n\tErrorId          int32          `json:\"errorId\"`\n\tErrorCode        string         `json:\"errorCode\"`\n\tErrorDescription string         `json:\"errorDescription\"`\n\tTaskId           string         `json:\"taskId\"`\n\tStatus           string         `json:\"status\"`\n\tSolution         map[string]any `json:\"solution\"`\n}\n\nfunc capSolver(ctx context.Context, apiKey string, taskData map[string]any) (*capSolverResponse, error) {\n\turi := \"https://api.capsolver.com/createTask\"\n\tres, err := request(ctx, uri, map[string]any{\n\t\t\"clientKey\": apiKey,\n\t\t\"task\":      taskData,\n\t})\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tif res.ErrorId == 1 {\n\t\treturn nil, errors.New(res.ErrorDescription)\n\t}\n\n\turi = \"https://api.capsolver.com/getTaskResult\"\n\tfor {\n\t\tselect {\n\t\tcase \u003c-ctx.Done():\n\t\t\treturn res, errors.New(\"solve timeout\")\n\t\tcase \u003c-time.After(time.Second):\n\t\t\tbreak\n\t\t}\n\t\tres, err = request(ctx, uri, map[string]any{\n\t\t\t\"clientKey\": apiKey,\n\t\t\t\"taskId\":    res.TaskId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\t\tif res.ErrorId == 1 {\n\t\t\treturn nil, errors.New(res.ErrorDescription)\n\t\t}\n\t\tif res.Status == \"ready\" {\n\t\t\treturn res, err\n\t\t}\n\t}\n}\n\nfunc request(ctx context.Context, uri string, payload interface{}) (*capSolverResponse, error) {\n\tpayloadBytes, err := json.Marshal(payload)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq, err := http.NewRequestWithContext(ctx, \"POST\", uri, bytes.NewReader(payloadBytes))\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treq.Header.Set(\"Content-Type\", \"application/json\")\n\tclient := \u0026http.Client{}\n\tresp, err := client.Do(req)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tdefer resp.Body.Close()\n\tresponseData, err := io.ReadAll(resp.Body)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcapResponse := \u0026capSolverResponse{}\n\terr = json.Unmarshal(responseData, capResponse)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn capResponse, nil\n}\n\nfunc main() {\n\tapikey := \"YOUR_API_KEY\"\n\tctx, cancel := context.WithTimeout(context.Background(), time.Second*120)\n\tdefer cancel()\n\n\tres, err := capSolver(ctx, apikey, map[string]any{\n\t\t\"type\":       \"ReCaptchaV3TaskProxyLess\",\n\t\t\"websiteURL\": \"https://www.google.com\",\n\t\t\"websiteKey\": \"6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-\",\n\t})\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\tfmt.Println(res.Solution[\"gRecaptchaResponse\"])\n}\n```\n  \n## Wrapping up\nSolving reCAPTCHA challenges programmatically using Python and Go, coupled with the powerful Capsolver solution, offers an effective approach for web scraping and automation tasks. By understanding the intricacies of reCAPTCHA v2 and v3 and leveraging the capabilities of Capsolver, developers can overcome these security measures efficiently and reliably. Following the comprehensive guides and code examples provided, you can successfully integrate Capsolver into your Python and Go applications to solve reCAPTCHA challenges seamlessly.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavapuppteernodejs%2Frecaptcha-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavapuppteernodejs%2Frecaptcha-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavapuppteernodejs%2Frecaptcha-python/lists"}