{"id":21238637,"url":"https://github.com/zaczero/2captcha","last_synced_at":"2025-10-07T13:19:42.679Z","repository":{"id":34045309,"uuid":"163526332","full_name":"Zaczero/2Captcha","owner":"Zaczero","description":"🍬 Simple API wrapper for https://2captcha.com","archived":false,"fork":false,"pushed_at":"2022-06-23T15:54:14.000Z","size":74,"stargazers_count":32,"open_issues_count":3,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-08-01T02:25:37.427Z","etag":null,"topics":["2captcha","api","captcha","captcha-image","captcha-recaptcha","captcha-solver","captcha-solving","captcha-text","clickcaptcha","funcaptcha","hcaptcha","keycaptcha","net","recaptchav2","recaptchav3","rotatecaptcha","solver","standard"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zaczero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-29T16:49:47.000Z","updated_at":"2023-04-20T01:00:32.000Z","dependencies_parsed_at":"2022-09-15T10:01:48.863Z","dependency_job_id":null,"html_url":"https://github.com/Zaczero/2Captcha","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/Zaczero/2Captcha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaczero%2F2Captcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaczero%2F2Captcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaczero%2F2Captcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaczero%2F2Captcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zaczero","download_url":"https://codeload.github.com/Zaczero/2Captcha/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaczero%2F2Captcha/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278780528,"owners_count":26044569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["2captcha","api","captcha","captcha-image","captcha-recaptcha","captcha-solver","captcha-solving","captcha-text","clickcaptcha","funcaptcha","hcaptcha","keycaptcha","net","recaptchav2","recaptchav3","rotatecaptcha","solver","standard"],"created_at":"2024-11-21T00:36:56.082Z","updated_at":"2025-10-07T13:19:42.625Z","avatar_url":"https://github.com/Zaczero.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Zaczero/2Captcha logo](https://github.com/Zaczero/2Captcha/blob/master/resources/2captcha.png)\n\n[![Build Status](https://travis-ci.com/Zaczero/2Captcha.svg?branch=master)](https://travis-ci.com/Zaczero/2Captcha)\n[![Github Release](https://img.shields.io/github/release/Zaczero/2Captcha.svg)](https://github.com/Zaczero/2Captcha/releases/latest)\n[![NuGet Release](https://img.shields.io/nuget/v/2CaptchaAPI.svg)](https://www.nuget.org/packages/2CaptchaAPI/)\n[![License](https://img.shields.io/github/license/Zaczero/2Captcha.svg)](https://github.com/Zaczero/2Captcha/blob/master/LICENSE)\n\nSimple HTTP API wrapper for [2captcha.com](https://2captcha.com/).\nAn online captcha solving and image recognition service.\n\n*By using this library you will get **10% cashback** on captchas you solve.*\n\n## 🌤️ Installation\n\n### Install with NuGet (recommended)\n\n`Install-Package 2CaptchaAPI`\n\n### Install manually\n\n[Browse latest GitHub release](https://github.com/Zaczero/2Captcha/releases/latest)\n\n## 🏁 Getting started\n\n### Sample code\n\n```cs\n/*\n * Class initialization\n * Optionally you can pass 2nd parameter `httpClient` with custom HttpClient to use while requesting API\n */\nvar captcha = new _2Captcha(\"API_KEY\");\nvar captchaCustomHttp = new _2Captcha(\"API_KEY\", new HttpClient());\n\n/*\n * Set custom API url (optional)\n */\ncaptcha.SetApiUrl(\"https://CUSTOM_URL\");\n\n/*\n * Get current balance\n */\nvar balance = await captcha.GetBalance();\n\n/*\n * Type: Image\n *\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_normal_captcha\n */\nvar image = await captcha.SolveImage(new FileStream(\"captcha.png\", FileMode.Open), FileType.Png);\nvar image2 = await captcha.SolveImage(File.ReadAllBytes(\"captcha.png\"), FileType.Png);\nvar image3 = await captcha.SolveImage(\"BASE64_IMAGE\", FileType.Png);\n\nvar imageCaseSensitive = await captcha.SolveImage(new FileStream(\"captcha.png\", FileMode.Open), FileType.Png, new KeyValuePair\u003cstring, string\u003e(\"regsense\", \"1\"));\nvar imageCaseSensitive2 = await captcha.SolveImage(File.ReadAllBytes(\"captcha.png\"), FileType.Png, new KeyValuePair\u003cstring, string\u003e(\"regsense\", \"1\"));\nvar imageCaseSensitive3 = await captcha.SolveImage(\"BASE64_IMAGE\", FileType.Png, new KeyValuePair\u003cstring, string\u003e(\"regsense\", \"1\"));\n\n/*\n * Type: Text\n *\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_text_captcha\n */\nvar question = await captcha.SolveQuestion(\"1 + 3 = ?\");\n\n/*\n * Type: ReCaptcha V2\n * Optionally you can pass 3rd parameter `isInvisible` to indicate if the reCaptcha is setup as invisible\n *\n * Homepage: https://www.google.com/recaptcha/\n * Documentation (vendor): https://developers.google.com/recaptcha/docs/display\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_recaptchav2_new\n */\nvar reCaptcha = await captcha.SolveReCaptchaV2(\"SITE_KEY\", \"https://WEBSITE_URL\");\nvar reCaptchaInvisible = await captcha.SolveReCaptchaV2(\"SITE_KEY\", \"https://WEBSITE_URL\", true);\nvar reCaptchaWithProxy = await captcha.SolveReCaptchaV2(\"SITE_KEY\", \"https://WEBSITE_URL\", \"username:password@address:port\", ProxyType.Http);\n\n/*\n * Type: ReCaptcha V3\n *\n * Homepage: https://www.google.com/recaptcha/\n * Documentation (vendor): https://developers.google.com/recaptcha/docs/v3\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_recaptchav3\n */\nvar reCaptchaV3 = await captcha.SolveReCaptchaV3(\"SITE_KEY\", \"https://WEBSITE_URL\", \"ACTION\", 0.4);\nvar reCaptchaV3WithProxy = await captcha.SolveReCaptchaV3(\"SITE_KEY\", \"https://WEBSITE_URL\", \"username:password@address:port\", ProxyType.Http, \"ACTION\", 0.4);\n\n/*\n * Type: hCaptcha\n *\n * Homepage: https://www.hcaptcha.com/\n * Documentation (vendor): https://docs.hcaptcha.com/\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_hcaptcha\n */\nvar hCaptcha = await captcha.SolveHCaptcha(\"SITE_KEY\", \"https://WEBSITE_URL\");\nvar hCaptchaWithProxy = await captcha.SolveHCaptcha(\"SITE_KEY\", \"https://WEBSITE_URL\", \"username:password@address:port\", ProxyType.Http);\n\n/*\n * Type: GeeTest\n *\n * Homepage: https://www.geetest.com/en\n * Documentation (vendor): https://docs.geetest.com/en\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_geetest\n */\nvar geeTest = await captcha.SolveGeeTest(\"SITE_KEY\", \"https://WEBSITE_URL\", \"CHALLENGE\");\n\n/*\n * Type: ClickCaptcha\n *\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_clickcaptcha\n */\nvar clickCaptcha = await captcha.SolveClickCaptcha(new FileStream(\"captcha.png\", FileMode.Open), FileType.Png, \"TASK\");\nvar clickCaptcha2 = await captcha.SolveClickCaptcha(File.ReadAllBytes(\"captcha.png\"), FileType.Png, \"TASK\");\nvar clickCaptcha3 = await captcha.SolveClickCaptcha(\"BASE64_IMAGE\", FileType.Png, \"TASK\");\n\n/*\n * Type: RotateCaptcha\n *\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_rotatecaptcha\n */\nvar rotateCaptcha = await captcha.SolveRotateCaptcha(\n    new Stream[]\n    {\n        new FileStream(\"captcha1.png\", FileMode.Open),\n        new FileStream(\"captcha2.png\", FileMode.Open),\n        new FileStream(\"captcha3.png\", FileMode.Open),\n    }, FileType.Png, \"40\");\n\n/*\n * Type: FunCaptcha\n *\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_funcaptcha_new\n */\nvar funCaptcha = await captcha.SolveFunCaptcha(\"PUBLIC_KEY\", \"https://WEBSITE_URL\");\nvar funCaptchaNoJavaScript = await captcha.SolveFunCaptcha(\"PUBLIC_KEY\", \"https://WEBSITE_URL\", true);\nvar funCaptchaWithProxy = await captcha.SolveFunCaptcha(\"PUBLIC_KEY\", \"https://WEBSITE_URL\", \"username:password@address:port\", ProxyType.Http);\n\n/*\n * Type: KeyCaptcha\n *\n * Homepage: https://www.keycaptcha.com/\n * Documentation (2captcha): https://2captcha.com/2captcha-api#solving_keycaptcha\n */\nvar keyCaptcha = await captcha.SolveKeyCaptcha(\"USER_ID\", \"SESSION_ID\", \"WEB_SIGN_1\", \"WEB_SIGN_2\", \"https://WEBSITE_URL\");\n```\n\n### And here is the result structure *(the same for all methods)*\n\n```cs\npublic struct Result\n{\n    public readonly bool Success;\n    public readonly JToken ResponseObject;\n\n    public string ResponseJson;\n    public string Response;\n    public double ResponseDouble;\n    public Coordinates[] ResponseCoordinates;\n}\n```\n\n## Footer\n\n### 📧 Contact\n\n* Email: [kamil@monicz.pl](mailto:kamil@monicz.pl)\n\n### 📃 License\n\n* [Zaczero/2Captcha](https://github.com/Zaczero/2Captcha/blob/master/LICENSE)\n* [JamesNK/Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaczero%2F2captcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaczero%2F2captcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaczero%2F2captcha/lists"}