A collection of skills for the CapSolver, unleashing your RPA potential.
- Supported captcha types
- Directory Structure
- Installation
- Environment Configuration
- Usage Examples
- Resources
Task(Recognition)
- ImageToText
- reCAPTCHA v2
- AWS WAF
- VisionEngine
Task(Token)
- Geetest V3
- Geetest V4
- reCAPTCHA v2
- reCAPTCHA v3
- Cloudflare Turnstile
- Cloudflare Challenge
- DataDome
- AWS WAF
- MTCaptcha
capsolver/
├── scripts/ # The capsolver script for this skill
├── SKILL.md # Skill metadata
├── README.md # README.md
├── requirements.txt # Python dependencies
└── .env.example # Example environment file
- Clone the repository:
git clone https://github.com/capsolver/capsolver-skills.git
cd capsolver-skills- Install python dependencies:
pip install -r requirements.txt- Create a
.envfile in the root directory based on the.env.examplefile:
cp .env.example .env- Add your CapSolver API key to the
.envfile:
API_KEY=CAP-XXXXX-your-api-key-here
You can get an API key from the CapSolver Dashboard.
Solve text-based captcha.
Command:
python3 solver.py ImageToTextTask --body "base64_image_data"
python3 solver.py ImageToTextTask --body "base64_image_data" --module "module_001"Optional:
--websiteURL: Page source url to improve accuracy.--body: Base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,).--module: Specify the module. All supported module references: https://docs.capsolver.com/en/guide/recognition/ImageToTextTask/#independent-module-support.--images: Only fornumbermodule, Support up to 9 base64 encoded images each time.--max-retries: Maximum number of retries (default: 60).
Classify reCAPTCHA v2 images.
Command:
python3 solver.py ReCaptchaV2Classification --question "question" --image "base64_image_data"Optional:
--websiteURL: Page source url to improve accuracy.--websiteKey: Website key to improve accuracy.--question: Please refer to: https://docs.capsolver.com/guide/recognition/ReCaptchaClassification/.--image: Base64 image string.--max-retries: Maximum number of retries (default: 60).
Classify AWS WAF images.
Command:
python3 solver.py AwsWafClassification --question "question" --images "base64_image_data1" "base64_image_data2" "base64_image_data3"Too many images may exceed the command line length limit. You can try writing the base64 values of the images line by line to a file (such as aws_images.txt) and then using the xargs command to pass them to the --images parameter:
cat aws_images.txt | xargs python3 solver.py AwsWafClassification --question "question" --imagesOptional:
--websiteURL: Page source url to improve accuracy.--question: Please refer to: https://docs.capsolver.com/guide/recognition/AwsWafClassification/.--images: Base64 image string,aws:gridsupports 9 images each time, other types support 1 image each time.--max-retries: Maximum number of retries (default: 60).
Advanced AI vision-based captcha solving.
Command:
python3 solver.py VisionEngine --module "module" --image "base64_image_data" --imageBackground "base64_image_background_data"Optional:
--websiteURL: Page source url to improve accuracy.--module: Please refer to: https://docs.capsolver.com/guide/recognition/VisionEngine/.--question: Only thesheinmodel requires, please refer to: https://docs.capsolver.com/en/guide/recognition/VisionEngine/.--image: Base64 encoded content of the image (no newlines, no data:image/***;charset=utf-8;base64,).--imageBackground: Base64 encoded content of the background image (no newlines, no data:image/***;charset=utf-8;base64,).--max-retries: Maximum number of retries (default: 60).
Solve GeeTest captcha (v3/v4).
Command:
python3 solver.py GeeTestTaskProxyLess --websiteURL "https://example.com/" --captchaId "captcha_id"Optional:
--websiteURL: Web address of the website using geetest (Ex: https://geetest.com).--gt: Only Geetest V3 is required.--challenge: Only Geetest V3 is required.--captchaId: Only Geetest V4 is required.--geetestApiServerSubdomain: Special api subdomain, example: api.geetest.com.--max-retries: Maximum number of retries (default: 60).
Solve Google reCAPTCHA v2 (checkbox/invisible).
Command:
python3 solver.py ReCaptchaV2TaskProxyLess --websiteURL "https://example.com" --websiteKey "site_key"
python3 solver.py ReCaptchaV2Task --websiteURL "https://example.com" --websiteKey "site_key" --proxy "host:port:username:password"Optional:
--websiteURL: The URL of the target webpage that loads the captcha, It’s best to submit the full URL instead of just the host.--websiteKey: Recaptcha website key.--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--pageAction: For ReCaptcha v2, if there is an sa parameter in the payload of the /anchor endpoint, please submit its value.--enterprisePayload: For ReCaptchaV2 enterprise version, if there is an s parameter in the payload of the /anchor endpoint, please submit its value.--isInvisible: Pass true if there is no “I’m not a robot” checkbox but the challenge will still appear, usually required in v2 invisible mode.--isSession: Session mode, when enabled, will return a recaptcha-ca-t value, which is used as a cookie. It usually appears in v3. Note: Some websites require a recaptcha-ca-e value, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.--max-retries: Maximum number of retries (default: 60).
Solve Google reCAPTCHA v3.
Command:
python3 solver.py ReCaptchaV3TaskProxyLess --websiteURL "https://example.com" --websiteKey "site_key"
python3 solver.py ReCaptchaV3Task --websiteURL "https://example.com" --websiteKey "site_key" --proxy "host:port:username:password"Optional:
--websiteURL: The URL of the target webpage that loads the captcha, It’s best to submit the full URL instead of just the host.--websiteKey: Recaptcha website key.--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--pageAction: For ReCaptcha v3, You can find the value of the action parameter by searching for grecaptcha.execute.--enterprisePayload: For the enterprise version, search for grecaptcha.enterprise.render and pass the s parameter.--isSession: Session mode, when enabled, will return arecaptcha-ca-tvalue, which is used as a cookie. It usually appears in v3. Note: Some websites require arecaptcha-ca-evalue, which usually appears in v2. If this value is present, it will be automatically returned without any additional parameter settings.--max-retries: Maximum number of retries (default: 60).
Solve MTCaptcha.
Command:
python3 solver.py MtCaptchaTaskProxyLess --websiteURL "https://example.com" --websiteKey "site_key"
python3 solver.py MtCaptchaTask --websiteURL "https://example.com" --websiteKey "site_key" --proxy "host:port:username:password"Optional:
--websiteURL: Web address of the website using generally it’s fixed value. (Ex: https://google.com).--websiteKey: The domain public key, rarely updated. (Ex: sk=MTPublic-xxx public key).--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--max-retries: Maximum number of retries (default: 60).
Solve DataDome.
Command:
python3 solver.py DatadomeSliderTask --captchaUrl "https://geo.captcha-delivery.com/xxxxxxxxx" --userAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36" --proxy "host:port:username:password"Optional:
--captchaUrl: If the url contains t=bv that means that your ip must be banned, t should be t=fe.--userAgent: It needs to be the same as the userAgent you use to request the website. Currently we only support the following userAgent.--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--max-retries: Maximum number of retries (default: 60).
Solve AWS WAF.
Command:
python3 solver.py AntiAwsWafTask --websiteURL "https://example.com" --awsChallengeJS "https://path/to/challenge.js" --proxy "host:port:username:password"
python3 solver.py AntiAwsWafTaskProxyLess --websiteURL "https://example.com" --awsChallengeJS "https://path/to/challenge.js"
python3 solver.py AntiAwsWafTaskProxyLess --websiteURL "https://example.com"Optional:
--websiteURL: If the url contains t=bv that means that your ip must be banned, t should be t=fe.--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--awsKey: The key value returned by the captcha page.--awsIv: The iv value returned by the captcha page.--awsContext: The context value returned by the captcha page.--awsChallengeJS: The challenge.js link returned by the captcha page.--awsApiJs: The jsapi.js link returned by the captcha page.--awsProblemUrl: The problem endpoint url containing keywords like problem, num_solutions_required, etc..--awsApiKey: The api_key value of the problem endpoint.--awsExistingToken: The aws-waf-token used for the last verification.--max-retries: Maximum number of retries (default: 60).
Solve Cloudflare Turnstile.
Command:
python3 solver.py AntiTurnstileTaskProxyLess --websiteURL "https://example.com" --websiteKey "site_key"Optional:
--websiteURL: The address of the target page.--websiteKey: Turnstile website key.--action: The value of the data-action attribute of the Turnstile element if it exists.--cdata: The value of the data-cdata attribute of the Turnstile element if it exists.--max-retries: Maximum number of retries (default: 60).
Solve Cloudflare Challenge (5-second shield).
Command:
python3 solver.py AntiCloudflareTask --websiteURL "https://example.com" --proxy "host:port:username:password"Optional:
--websiteURL: The address of the target page.--proxy: Learn Using proxies: https://docs.capsolver.com/guide/api-how-to-use-proxy/.--userAgent: The user-agent you used to request the target website. Only Chrome’s userAgent is supported.--html: The response of requesting the target website, it usually contains "Just a moment…" and status code is 403. we need this html for some websites, please be sure to use your sticky proxy to dynamically scrape the HTML every time.--max-retries: Maximum number of retries (default: 60).
- CapSolver Docs - The official capsolver documentation allows you to find answers to any questions you are unsure of here