Skip to content

reCAPTCHA v2

Google's “I'm not a robot” CAPTCHA that may include checkboxes or image/audio challenges. CaptchaAI returns a valid token for site verification.

Languages
Servers
https://ocr.captchaai.com/

Request

Send method=userrecaptcha with googlekey and pageurl to POST /in.php. Returns a Task ID.

Bodymultipart/form-datarequired
keystringrequired

Your API key (32 characters)

methodstringrequired
Default "userrecaptcha"
Value"userrecaptcha"
googlekeystringrequired

Site key from the page (data-sitekey or iframe k=)

pageurlstring(uri)required

Full URL where reCAPTCHA appears

domainstring
Default "google.com"
Enum"google.com""recaptcha.net"
invisibleinteger

Must be set to 0 or ignore

Default 0
Enum01
data-sstring

Value of data-s (used on Google Search, etc.)

userAgentstring

User-Agent for solver browser

cookiesstring

Cookies from google search. Learn More

proxystring

Proxy in format user:pass@ip:port or ip:port. Learn More.

proxytypestring
Enum"HTTP""HTTPS""SOCKS4""SOCKS5"
jsoninteger
Default 1
Enum01
curl -i -X POST \
  https://ocr.captchaai.com/in.php \
  -H 'Content-Type: multipart/form-data' \
  -F key=string \
  -F method=userrecaptcha \
  -F googlekey=string \
  -F pageurl=http://example.com \
  -F domain=google.com \
  -F invisible=0 \
  -F data-s=string \
  -F userAgent=string \
  -F cookies=string \
  -F proxy=string \
  -F proxytype=HTTP \
  -F json=0

Responses

Submission accepted — returns task ID

Body
statusinteger
Example: 1
requeststring
Example: "0123456789"
Response
{ "status": 1, "request": "0123456789" }

Request

Poll POST /res.php with the Task ID to obtain the reCAPTCHA response token.

Bodymultipart/form-datarequired
keystringrequired

Your API key (32 characters)

actionstringrequired
Default "get"
Value"get"
idstringrequired

Task ID from /in.php

jsoninteger
Default 1
Enum01
curl -i -X POST \
  https://ocr.captchaai.com/res.php \
  -H 'Content-Type: multipart/form-data' \
  -F key=string \
  -F action=get \
  -F id=string \
  -F json=0

Responses

Result, not-ready notice, or error code

Body
One of:
statusinteger
Value1
Example: 1
requeststring
Example: "TOKEN_OR_TEXT"
Response
{ "status": 1, "request": "TOKEN_OR_TEXT" }