ReCaptchaMobileToken
Mint reCAPTCHA Enterprise tokens for Android apps through your own proxy.
reCAPTCHA Mobile is the reCAPTCHA Enterprise check built into Android apps through Google's com.google.android.recaptcha SDK. The app talks to Google over its own API rather than the browser widget, so a token minted for a web site key fails a mobile check and the reverse. For websites, use ReCaptchaV3EnterpriseToken.
Finding the parameters
The site key, package name and action all come from the app, not from a web page. Take them from the app's own call to the reCAPTCHA SDK, or from its traffic to Google.
- Site key: the key the app was built with. A web site key from the same company will not work.
- Package name: the app's Android package, such as
com.example.app. Google ties a mobile key to its package, so a wrong package scores badly even when a token comes back. - Action: the action the app passes to the SDK, such as
login. It must match exactly.
Proxy or proxyless
Use this variant when the token has to come from a particular country or carrier. Otherwise start with ReCaptchaMobileTokenProxyLess.
Submitting the token
Send the token to the app's backend the way the app would, under the User-Agent returned in solution.userAgent. A different User-Agent gets the token refused.
Supported Providers
| Provider | Price per 1,000 | Routing |
|---|---|---|
| $1.00 |
Request Schema
| Field | Type | Required | Description |
|---|---|---|---|
clientKey* | string | Yes | Your API key. Create one in the AnySolver dashboard. Example: |
task* | object | Yes | The task body. Required fields depend on the task type. See Tasks for per-task schemas. View task properties |
settings | object | No | Per-request settings for routing, auto retry, auto fallback, and proxy behavior. See Routing Strategies. View settings reference |
Task Object Properties
The task field accepts an object with the following properties:
| Field | Type | Required | Description |
|---|---|---|---|
type* | Yes | ||
websiteKey* | string | Yes | reCAPTCHA Enterprise site key the Android app was built with. Mobile keys are separate from web keys: a web token fails a mobile check and the reverse. Example: |
proxy* | string | object | Yes | |
appPackageName | string | No | Android package name of the app, such as com.example.app. Google ties a mobile key to its package, so a wrong package scores badly even when a token comes back. Example: |
pageAction | string | No | Action the app passes to the reCAPTCHA SDK, such as login. It must match exactly or verification fails. Example: |
deviceOptions | object | No | Device profile the token is minted from. Not every provider supports every option; unsupported ones are ignored. |
Optional fields are not guaranteed across providers
Response Schema
| Field | Type | Required | Description |
|---|---|---|---|
status* | Yes | Task status: "processing", "ready", or "failed". Example: | |
errorId* | Yes | 0 = success, 1 = external error, 2 = internal error. Example: | |
taskId | string | No | Unique identifier returned when the task was created. Example: |
errorCode | No | Machine-readable error code. Example: | |
errorDescription | string | No | Human-readable error message with resolution hints. Example: |
cost | number | No | Actual cost charged for this task in USD. Example: |
taskType | No | The type of CAPTCHA task to solve. Example: | |
provider | No | Provider that handled this task. While processing, the provider currently solving it. Example: | |
solution | object | No |
Solution Object Properties
The solution field contains an object with the following properties:
| Field | Type | Required | Description |
|---|---|---|---|
token* | string | Yes | The solved CAPTCHA token to submit with your form. Example: |
raw* | Record<string, unknown> | Yes | Raw provider response data for advanced use cases. |
userAgent | string | No | Dalvik User-Agent the token was minted as. Send the token under this exact User-Agent. Example: |