API KEY

To get the API key, create an account in MultiBot.

APIKEY: - your key to the MultiBot service

THE ADDRESS OF SENDING THE TASK [ POST, GET ]

http://api.multibot.in/in.php
IMPORTANT: When sending a POST, the content type should be "multipart/form-data"

GETTING A RESPONSE [ GET ]

http://api.multibot.in/res.php?key=APIKEY&id=ID
ID: - captcha id

GET A BALANCE [ GET ]

http://api.multibot.in/res.php?action=userinfo&key=APIKEY
Response in JSON format:
{"email":"my@gmail.com","balance":"15774"}

GET the current userAgent [ GET ]

http://api.multibot.in/res.php?action=useragent&key=APIKEY

Solving hCaptcha using a token.
Insert the received token into the h-captcha-response field or pass it to the callback function window.hcaptchaCallback(token).

Get the callback function: [ JavaScript ]
							
	(() => {
		var _hCap;
		Object.defineProperty(window, "hcaptcha", {
			get: function (){
				return _hCap;
			},
			set: function (e){
				_hCap = e;
				var _Render = e.render;
				_hCap.render = function (a, b){
					window.hcaptchaCallback = b.callback;
					return _Render(a, b);
				};
			},
		});
	})()
							
						

List of parameters for GET/POST requests

Parameter Type Required Value
key String Yes Your API key
method String Yes hcaptcha
sitekey String Yes The value of the "data-sitekey" parameter found in the page code
pageurl String Yes Full URL of the page
domain String No Domain from which hCaptcha is loaded: hcaptcha.com or js.hcaptcha.com
data String No Most often appears as the "rqdata" parameter in network requests. Format: "data": "rqDataValue"
cookies String No We will return cookies in the captcha response, but only when using json=1. Format: KEY:Value, separator - semicolon, e.g., KEY1:Value1;KEY2:Value2;
json Number. Default: 0 No 1 — response in JSON format
proxy String No LOGIN:PASS@IP:PORT
Example of sending a request. [ Python ]
							
import requests

params = {
	"key": APIKEY, 
	"method": "hcaptcha", 
	"pageurl": "https://multibot.in/captchas/hcaptcha/", 
	"sitekey": "5860d916-b6c4-4274-9bfa-3f32d13cedda",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
							
						

reCaptcha [ Token ]

reCAPTCHA solution using a token.
Insert the received token into the field g-recaptcha-response or pass it to the callback function window.reCaptchaCallback(token).

Get the callback function: [ JavaScript ]
						
	(() => {
		function getRecaptchaInfo(widget){
			for(let k1 in widget){
				for(let k2 in widget[k1]){
					for(let k3 in widget[k1][k2]){
						if(k3 === "callback"){
							if(typeof widget[k1][k2][k3] === "function"){
								window.reCaptchaCallback = widget[k1][k2][k3];
							}
						}
					}
				}
			}
		};
		for(let widgetId in ___grecaptcha_cfg.clients){
			getRecaptchaInfo(___grecaptcha_cfg.clients[widgetId]);
		}
	})()
						
					

List of parameters for GET/POST requests

Parameter Type Required Value
key String yes Your API key
method String yes userrecaptcha
version String.Default: v2 no reCAPTCHA version: v2 or v3
enterprise String.Default: 0 no 1 — indicates that this is a reCAPTCHA Enterpise
googlekey String yes The value of the "sitekey" parameter that you found in the site code
pageurl String yes Address of a webpage
action String no The value of the "action" parameter that you found in the site code
domain String no The domain from which reCAPTCHA is loaded: recaptcha.net or google.com
data-s String no The value of the "data-s" parameter found on the page.
cookies String no In the response to the captcha, we will return cookies, but only when using json=1.Format: KEY:The value is separated by a semicolon, for example: KEY1:Value1;KEY2:Value2;
json Number.By default: 0 no 1 — response in JSON format
proxy String no LOGIN:PASS@IP:PORT
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "userrecaptcha", 
	"pageurl": "https://www.google.com/recaptcha/api2/demo", 
	"googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Solving a regular captcha Turnstile using a token.
Insert the received token into the field name="cf-turnstile-response" or pass it to the callback function.

List of parameters for GET/POST requests

Parameter Type Required Value
key String yes Your API key
method String yes turnstile
sitekey String yes The value of the "sitekey" parameter that you found in the site code
pageurl String yes Address of a webpage
action String no The value of the additional "action" parameter found on the page.
json Number.By default: 0 no 1 — response in JSON format
proxy String no LOGIN:PASS@IP:PORT
An example of sending a request. [ Python ]
							
import requests

params = {
	"key": APIKEY, 
	"method": "turnstile", 
	"pageurl": "https://turnstile.zeroclover.io/", 
	"sitekey": "0x4AAAAAAAEwzhD6pyKkgXC0",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
							
						

AuthKong [ Token ]

An AuthKong solution using a token.
Insert the received token into the field name="captcha-response" or pass it to the callback function.


List of parameters for GET/POST requests

Parameter Type Required Value
key String yes Your API key
method String yes authkong
sitekey String yes The value of the sitekey parameter that you found in the site code
pageurl String yes Address of a webpage
json Number.By default: 0 no 1 — response in JSON format
proxy String no LOGIN:PASS@IP:PORT
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "authkong", 
	"pageurl": "https://authkong.com/demo", 
	"sitekey": "275bdd8ffae8e8f5be51b73180ffb8ac2959e243fb10c34df48f72a0bbb6ee37",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Image [ OCR ]

Recognition of text from an image.


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes universal
body String yes picture in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "universal", 
	"body": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Slider [ Coordinate ]

The answer will have the number of pixels by which you need to move the slider.


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes slider
background String yes main picture in Base64
piece String yes slider image in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "slider", 
	"background": "iVBORw0KG...EFUeF6Ev",
	"piece": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Icons [ Coordinate ]

The response will have an order of coordinates for clicks ( X:Y,X:Y,X:Y ).


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes icons
task String yes The order of images for clicks
body String yes picture in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "icons", 
	"task": "calendar,buy,star",
	"body": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

RsCaptcha [ Coordinate ]

The response will contain the coordinates of the click.


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes rscaptcha
body String yes picture in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "rscaptcha", 
	"body": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Upside-Down [ Coordinate ]

The response will contain the coordinates of the click.


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes upside
body String yes picture in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "upside", 
	"body": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

AntiBot [ Coordinate ]

The response will contain the order of the image IDs for the click.

The image IDs can be found on the page (the "rel" attribute), or assigned an individual value for each image.


List of parameters for POST requests

Parameter Type Required Value
key String yes Your API key
method String yes antibot
main String yes main picture in Base64
* number (identifier) yes a picture to click in Base64
json Number.By default: 0 no 1 — response in JSON format
An example of sending a request. [ Python ]
						
import requests

params = {
	"key": APIKEY, 
	"method": "antibot", 
	"main": "iVBORw0KG...EFUeF6Ev",
	"1652": "iVBORw0KG...EFUeF6Ev",
	"5606": "iVBORw0KG...EFUeF6Ev",
	"8655": "iVBORw0KG...EFUeF6Ev",
	"2707": "iVBORw0KG...EFUeF6Ev",
	"json": "1"
}
for key in params:
	params[key] = (None, params[key])
	
requests.post('http://api.multibot.in/in.php', files=params)
						
					

Mouse Movement [ Path ]

The "Mouse Movement" method calculates the trajectory of mouse cursor movement between specified points, including both regular movement and drag-and-drop (movement with pressed button).

The method accepts a nested list of route point coordinates in [start, end] format:
[[x1, y1], [x2, y2], ..., [xn, yn]]
where each [x, y] pair represents point coordinates.

Upon successful execution, you will receive the mouse movement path between points:
[[x, y, sleep], [x, y, sleep], ...]
where x, y - cursor coordinates at each step, sleep - delay (in milliseconds) before the next step.

Parameters Description

clientKey: your service API key.
type: humanMove


Task Creation Method

POST http://api.multibot.in/createTask

Request

						
// combined (movement and drag)
{
  "clientKey": "APIKEY",
  "type":"humanMove",
  "task": [
	{"type": "move", "patch":[[0,0], [100,100]]},
	{"type": "drag", "patch":[[100,100], [190,190]]},
	{"type": "move", "patch":[[190,190], [320,320]]}
  ]
}

// movement only
{
  "clientKey": "APIKEY",
  "type":"humanMove",
  "task": [
	{"type": "move", "patch":[[0,0], [190,190], [210,210], [320,320]]}
  ]
}
						
					
						
# example
import requests

requests.post(
  'http://api.multibot.in/createTask', 
  headers={'content-type': 'application/json'}, 
  json=payload,
  timeout=10
).json()
						
					

Response

						
{
  "errorId":0,
  "taskId":407533072
}
						
					

Task Result Retrieval Method

POST http://api.multibot.in/getTaskResult

Request

						
{
  "clientKey":"API_KEY",
  "taskId": 407533072
}
						
					
						
# example
import requests

requests.post(
  'http://api.multibot.in/getTaskResult', 
  headers={'content-type': 'application/json'}, 
  json=payload,
  timeout=10
).json()
						
					

Response

						
// combined (movement and drag)
{
  "errorId": 0,
  "status": "ready",
  "cost": 1,
  "answers": [
	{
	  "type": "move",
	  "path": [[1,-1,8], [8,0,7], ...],
	  "start": [0,0],
	  "end": [100,100]
	},
	{
	  "type": "drag",
	  "path": [[104,106,8], [108,112,7], ...],
	  "start": [100,100],
	  "end": [190,190]
	},
	{
	  "type": "move",
	  "path": [[193,193,6], [198,202,9], ...],
	  "start": [190,190],
	  "end": [320,320]
	}
  ],
  "spentTime": 1
}

// movement only
{
  "errorId": 0,
  "status": "ready",
  "cost": 1,
  "answers": [
	{
	  "type": "move",
	  "path": [[0,1,15], [0,2,7], ...],
	  "start": [0,0],
	  "end": [190,190]
	},
	{
	  "type": "move",
	  "path": [[194,194,7], [198,198,9], ...],
	  "start": [190,190],
	  "end": [210,210]
	},
	{
	  "type": "move",
	  "path": [[212,210,8], [214,213,7], ...],
	  "start": [210,210],
	  "end": [320,320]
	}
  ],
  "spentTime": 2
}
						
					
						
errorId:    Error identifier.
  0 - no errors, task created successfully, task identifier is in the taskId parameter
  1 - error occurred, information is in the errorCode property.
taskId: 
  Task identifier for subsequent use in getTaskResult method.
status: 
  processing - task is being executed
  ready - task completed, solution is in the answers property
  error - task failed to execute.
answers:   Dictionary with data
  type - movement or drag
  path - path as nested list (x,y,sleep)
  start - movement start point
  end - movement end point
spentTime: 
  Time spent on task execution in seconds.
cost: 
  Task cost, deducted from your balance.
						
					

Error description

Make sure that the type of captcha you need to solve is supported by the service.

Error Text Description
ERROR_METHOD_DOES_NOT_EXIST The captcha type is incorrectly specified (the value of the "method" parameter).
WRONG_METHOD The captcha type is not specified (the value of the "method" parameter).
ERROR_BAD_DATA One (or more) parameters for the captcha were not passed.
ERROR_WRONG_USER_KEY The API key does not exist in the system or has an incorrect format.
ERROR_ZERO_BALANCE Top up your account balance to continue recognition.
WRONG_COUNT_IMG Less than three images were sent for the "antibot" method.3 or more are needed.
CAPCHA_NOT_READY The solution to this captcha is not ready yet.
WRONG_CAPTCHA_ID A captcha with this ID was not found.
WRONG_REQUESTS_LINK
WRONG_LOAD_PAGEURL
Check the format of the "pageurl" parameter.
ERROR_SITEKEY
SITEKEY_IS_INCORRECT
Invalid sitekey.
WRONG_RESULT The service could not solve the captcha.
HCAPTCHA_NOT_FOUND
TURNSTILE_NOT_FOUND
This type of captcha is missing on the page passed in the "pageurl" parameter.

Browser extension.

Chrome:

Web Store.

Archive.

Firefox:

Web Store.

Archive.

Loading the extension (zip) with settings:

1. Unzip the zip file

2. Remove the following lines in the manifest.json file:

							
"options_ui": {
	"open_in_tab": true,
	"page": "options/options.html"
},
							
						

3. Enter the apiKey in the "\common\config.js" file and select the types of captchas (true - enable, false - disable):

							
default: {
	isPluginEnabled: true,
	apiKey: null,               // your service key, e.g.: "Dghhh....545Fg"
	email: null,
	autoSubmitForms: false,     // submit forms upon successful captcha solving
	submitFormsDelay: 3,        // delay (sec) before submit
	hcaptchabase64Attempts: 30, // attempts to solve hCaptcha via clicks
	hcaptchaType: "token",     // hCaptcha solving method ("token" or "click")
	afterDecisionAntibot: true, // If there's AntiBot on the page, solve it first
	refreshPage: true,         // Refresh the page if captcha solving fails
	deleteCoockie: false,      // Delete session cookies when refreshing the page
	oneCaptchaPerPage: true,   // Sequential captcha solving
	interceptorRecaptcha: false, // Script injection for reCaptcha
	solveNormal: false,       // Normal captcha (text on image)
	solveRecaptchaV2: false,  // RecaptchaV2
	solveRecaptchaV3: false,  // RecaptchaV3
	solveHCaptcha: false,     // HCaptcha
	solveAntiBot: false,      // AntiBot
	solveFaucetPay: false,    // FaucetPay
	solveUpside: false,       // Upside-Down
	solveTurnstile: false,    // Turnstile
	solveIconCaptcha: false,  // IconCaptcha
	normalSources: [],
	autoSubmitRules: [],
	hostsForClick: ["store.steampowered.com"],
	defaultTimeoutToken: 300,
	defaultTimeout: 30
},