Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zaczero/2captcha
🍬 Simple API wrapper for https://2captcha.com
https://github.com/zaczero/2captcha
2captcha api captcha captcha-image captcha-recaptcha captcha-solver captcha-solving captcha-text clickcaptcha funcaptcha hcaptcha keycaptcha net recaptchav2 recaptchav3 rotatecaptcha solver standard
Last synced: 3 months ago
JSON representation
🍬 Simple API wrapper for https://2captcha.com
- Host: GitHub
- URL: https://github.com/zaczero/2captcha
- Owner: Zaczero
- License: mit
- Created: 2018-12-29T16:49:47.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-23T15:54:14.000Z (over 2 years ago)
- Last Synced: 2024-11-05T15:49:44.132Z (3 months ago)
- Topics: 2captcha, api, captcha, captcha-image, captcha-recaptcha, captcha-solver, captcha-solving, captcha-text, clickcaptcha, funcaptcha, hcaptcha, keycaptcha, net, recaptchav2, recaptchav3, rotatecaptcha, solver, standard
- Language: C#
- Homepage:
- Size: 72.3 KB
- Stars: 32
- Watchers: 8
- Forks: 16
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ![Zaczero/2Captcha logo](https://github.com/Zaczero/2Captcha/blob/master/resources/2captcha.png)
[![Build Status](https://travis-ci.com/Zaczero/2Captcha.svg?branch=master)](https://travis-ci.com/Zaczero/2Captcha)
[![Github Release](https://img.shields.io/github/release/Zaczero/2Captcha.svg)](https://github.com/Zaczero/2Captcha/releases/latest)
[![NuGet Release](https://img.shields.io/nuget/v/2CaptchaAPI.svg)](https://www.nuget.org/packages/2CaptchaAPI/)
[![License](https://img.shields.io/github/license/Zaczero/2Captcha.svg)](https://github.com/Zaczero/2Captcha/blob/master/LICENSE)Simple HTTP API wrapper for [2captcha.com](https://2captcha.com/).
An online captcha solving and image recognition service.*By using this library you will get **10% cashback** on captchas you solve.*
## 🌤️ Installation
### Install with NuGet (recommended)
`Install-Package 2CaptchaAPI`
### Install manually
[Browse latest GitHub release](https://github.com/Zaczero/2Captcha/releases/latest)
## 🏁 Getting started
### Sample code
```cs
/*
* Class initialization
* Optionally you can pass 2nd parameter `httpClient` with custom HttpClient to use while requesting API
*/
var captcha = new _2Captcha("API_KEY");
var captchaCustomHttp = new _2Captcha("API_KEY", new HttpClient());/*
* Set custom API url (optional)
*/
captcha.SetApiUrl("https://CUSTOM_URL");/*
* Get current balance
*/
var balance = await captcha.GetBalance();/*
* Type: Image
*
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_normal_captcha
*/
var image = await captcha.SolveImage(new FileStream("captcha.png", FileMode.Open), FileType.Png);
var image2 = await captcha.SolveImage(File.ReadAllBytes("captcha.png"), FileType.Png);
var image3 = await captcha.SolveImage("BASE64_IMAGE", FileType.Png);var imageCaseSensitive = await captcha.SolveImage(new FileStream("captcha.png", FileMode.Open), FileType.Png, new KeyValuePair("regsense", "1"));
var imageCaseSensitive2 = await captcha.SolveImage(File.ReadAllBytes("captcha.png"), FileType.Png, new KeyValuePair("regsense", "1"));
var imageCaseSensitive3 = await captcha.SolveImage("BASE64_IMAGE", FileType.Png, new KeyValuePair("regsense", "1"));/*
* Type: Text
*
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_text_captcha
*/
var question = await captcha.SolveQuestion("1 + 3 = ?");/*
* Type: ReCaptcha V2
* Optionally you can pass 3rd parameter `isInvisible` to indicate if the reCaptcha is setup as invisible
*
* Homepage: https://www.google.com/recaptcha/
* Documentation (vendor): https://developers.google.com/recaptcha/docs/display
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_recaptchav2_new
*/
var reCaptcha = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL");
var reCaptchaInvisible = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", true);
var reCaptchaWithProxy = await captcha.SolveReCaptchaV2("SITE_KEY", "https://WEBSITE_URL", "username:password@address:port", ProxyType.Http);/*
* Type: ReCaptcha V3
*
* Homepage: https://www.google.com/recaptcha/
* Documentation (vendor): https://developers.google.com/recaptcha/docs/v3
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_recaptchav3
*/
var reCaptchaV3 = await captcha.SolveReCaptchaV3("SITE_KEY", "https://WEBSITE_URL", "ACTION", 0.4);
var reCaptchaV3WithProxy = await captcha.SolveReCaptchaV3("SITE_KEY", "https://WEBSITE_URL", "username:password@address:port", ProxyType.Http, "ACTION", 0.4);/*
* Type: hCaptcha
*
* Homepage: https://www.hcaptcha.com/
* Documentation (vendor): https://docs.hcaptcha.com/
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_hcaptcha
*/
var hCaptcha = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL");
var hCaptchaWithProxy = await captcha.SolveHCaptcha("SITE_KEY", "https://WEBSITE_URL", "username:password@address:port", ProxyType.Http);/*
* Type: GeeTest
*
* Homepage: https://www.geetest.com/en
* Documentation (vendor): https://docs.geetest.com/en
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_geetest
*/
var geeTest = await captcha.SolveGeeTest("SITE_KEY", "https://WEBSITE_URL", "CHALLENGE");/*
* Type: ClickCaptcha
*
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_clickcaptcha
*/
var clickCaptcha = await captcha.SolveClickCaptcha(new FileStream("captcha.png", FileMode.Open), FileType.Png, "TASK");
var clickCaptcha2 = await captcha.SolveClickCaptcha(File.ReadAllBytes("captcha.png"), FileType.Png, "TASK");
var clickCaptcha3 = await captcha.SolveClickCaptcha("BASE64_IMAGE", FileType.Png, "TASK");/*
* Type: RotateCaptcha
*
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_rotatecaptcha
*/
var rotateCaptcha = await captcha.SolveRotateCaptcha(
new Stream[]
{
new FileStream("captcha1.png", FileMode.Open),
new FileStream("captcha2.png", FileMode.Open),
new FileStream("captcha3.png", FileMode.Open),
}, FileType.Png, "40");/*
* Type: FunCaptcha
*
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_funcaptcha_new
*/
var funCaptcha = await captcha.SolveFunCaptcha("PUBLIC_KEY", "https://WEBSITE_URL");
var funCaptchaNoJavaScript = await captcha.SolveFunCaptcha("PUBLIC_KEY", "https://WEBSITE_URL", true);
var funCaptchaWithProxy = await captcha.SolveFunCaptcha("PUBLIC_KEY", "https://WEBSITE_URL", "username:password@address:port", ProxyType.Http);/*
* Type: KeyCaptcha
*
* Homepage: https://www.keycaptcha.com/
* Documentation (2captcha): https://2captcha.com/2captcha-api#solving_keycaptcha
*/
var keyCaptcha = await captcha.SolveKeyCaptcha("USER_ID", "SESSION_ID", "WEB_SIGN_1", "WEB_SIGN_2", "https://WEBSITE_URL");
```### And here is the result structure *(the same for all methods)*
```cs
public struct Result
{
public readonly bool Success;
public readonly JToken ResponseObject;public string ResponseJson;
public string Response;
public double ResponseDouble;
public Coordinates[] ResponseCoordinates;
}
```## Footer
### 📧 Contact
* Email: [[email protected]](mailto:[email protected])
### 📃 License
* [Zaczero/2Captcha](https://github.com/Zaczero/2Captcha/blob/master/LICENSE)
* [JamesNK/Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md)