The solution of the captcha is carried out at the expense of the resource workers –
To solve the captcha, you need to register on the resource and top up your balance.
Documentation –


dart pub add dart_anticaptcha


  dart_anticaptcha: ^1.1.4



The easiest way to use this library is to use the memoryImageToBase64() function. This function is intended for converting an image to base64 and further uploading it to the resource to solve the captcha.
Also, to get base64 images from the site, you need to use the networkImageToBase64() function.

import 'package:dart_anticaptcha/dart_anticaptcha.dart';

void main() async {
  String key = 'YOUR_TOKEN';
  String memoryImage = 'captcha.jpeg';
  String networkImage = '';

  AntiCaptcha anticaptcha = AntiCaptcha(key);

  String? imgbase64 = await anticaptcha
      .networkImageToBase64(networkImage); //memoryImage or networkImage

  Map headers = {
    "clientKey": key,
    "task": {"type": "ImageToTextTask", "body": imgbase64}
  dynamic result = await anticaptcha.imageToText(headers);


recaptchaV2Demo – Landing page address. It can be located anywhere on the site, including in a section closed to subscribers. Our employees do not visit the site, but instead emulate a visit to the page.

websiteKey – Recaptcha key. More details –

import 'package:dart_anticaptcha/dart_anticaptcha.dart';

void main() async {
  String recaptchaV2Demo = '';
  String websiteKey = 'YOUR_WEBSITE_KEY';
  String key = 'YOUR_TOKEN';

  AntiCaptcha antiCaptcha = AntiCaptcha(key);
  Map header = {
    "clientKey": key,
    "task": {
      "type": "RecaptchaV2TaskProxyless",
      "websiteURL": recaptchaV2Demo,
      "websiteKey": websiteKey
  Map response = await antiCaptcha.recaptchaV2TaskProxyless(header);


View Github