Skip to content
API
ReCAPTCHA
Image

ReCAPTCHA Image (Phone)

Overview

Solve Recaptcha with ultra-fast speed, top 1 accuracy in the market. We provide services to solve all types of ReCaptcha Image on phones.

📱

This service allows you to send captcha images and receive indices of cells to click to solve the captcha.

ReCAPTCHA Mobile

1. Create Task

Request

POST https://api.achicaptcha.com/createTask

Parameters

Parameter NameData TypeRequired?Description
clientKeystringyesApi key
task.typestringyesReCaptchaPhoneTask
task.subTypestringyesValue equals 0
task.imagestringyesCaptcha image in base64 format, capture the captcha image display area (no border, only small square cells)
task.otherstringyesQuestion|Grid count
• Question: "cars" (only take text from bold part)
• Grid count: 3 (or 4, 5)
→ other: "cars|4"

Request Example

POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaPhoneTask",
    "subType": "0",
    "image": "iVBORw0KGgoAAAANSUhEUgAA...(base64 encoded image)",
    "other": "cars|4"
  }
}

Response

When successful, server returns errorId = 0 and taskId

{
  "errorId": 0,
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

2. Get Result

Request

POST https://api.achicaptcha.com/getTaskResult

Parameters

Parameter NameData TypeRequired?Description
clientKeystringyesApi key
taskIdstringyesTaskId obtained from (1)

Request Example

POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
 
{
  "clientKey": "YOUR_API_KEY",
  "taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}

Response

{
  "errorId": 0,
  "status": "ready",
  "solution": "0,5,9"
}

Note: For type "grid", solution is a list of image indices to click, starting from 0

Status Explanation

  • errorId = 0 and status = ready: Successfully solved, read result in solution
  • errorId = 0 and status = processing: Solving captcha, wait 2-3 seconds and try again
  • errorId > 0: System error, returns error code and description

Integration Examples

import requests
import time
 
def solve_recaptcha_phone(image_base64, question, grid_count, api_key='YOUR_API_KEY'):
    # Step 1: Create task
    create_task_url = 'https://api.achicaptcha.com/createTask'
    create_task_payload = {
        'clientKey': api_key,
        'task': {
            'type': 'ReCaptchaPhoneTask',
            'subType': '0',
            'image': image_base64,
            'other': f'{question}|{grid_count}'
        }
    }
    
    response = requests.post(create_task_url, json=create_task_payload)
    result = response.json()
    
    if result['errorId'] != 0:
        raise Exception(result['errorDescription'])
    
    task_id = result['taskId']
    
    # Step 2: Get result
    get_result_url = 'https://api.achicaptcha.com/getTaskResult'
    
    while True:
        time.sleep(2)  # Wait 2-3 seconds
        
        get_result_payload = {
            'clientKey': api_key,
            'taskId': task_id
        }
        
        response = requests.post(get_result_url, json=get_result_payload)
        result = response.json()
        
        if result['errorId'] > 0:
            raise Exception(result['errorDescription'])
        
        if result['status'] == 'ready':
            return result['solution']  # Returns "0,5,9" - indices to click
        
        # If status == 'processing', continue loop
 
# Usage
image_base64 = 'iVBORw0KGgoAAAANSUhEUgAA...'  # Base64 encoded captcha image
question = 'cars'  # Text from bold part
grid_count = 4  # Grid count (3, 4, or 5)
solution = solve_recaptcha_phone(image_base64, question, grid_count, 'YOUR_API_KEY')
print('Grid indices to click:', solution)  # Example: "0,5,9"
 
# Use solution to click corresponding cells
indices = [int(i) for i in solution.split(',')]
for index in indices:
    # Click cell with corresponding index
    print(f'Click cell index: {index}')

Common Error Codes

Error CodeDescriptionNotes
0successSuccess
1processingProcessing
2missing required fieldsMissing required fields, check parameters again
3task not supportedTask type not supported
4task creation failedTask creation failed
5client key does not existAPI key does not exist, check API key again
6insufficient account balanceInsufficient account balance, add more credits
7task failed, please create a new taskTask failed, please create a new task
8task ID does not existTask ID does not exist

Best Practices

For best results when using Achicaptcha API, follow these principles:

1. Prepare Captcha Image

  • Capture the captcha image display area clearly, without borders or other UI elements
  • Only include small square cells (grid) of the captcha
  • Image in base64 format
  • Ensure image has sufficient resolution for recognition

2. Determine Accurate Information

  • Get question from bold text part of captcha (example: "cars", "traffic lights")
  • Determine correct grid count (3x3, 4x4, or 5x5)
  • Format other correctly: "question|grid_count" (example: "cars|4")

3. Polling Interval

  • Wait at least 2-3 seconds between result checks
  • Don't spam API with too many consecutive requests
  • Set timeout to avoid infinite loops (recommended 120 seconds)

4. Process Results

  • Solution returned is a string of indices to click, separated by commas (example: "0,5,9")
  • Index starts from 0, counting from left to right, top to bottom
  • Parse string and click corresponding cells

5. Retry Logic

  • Implement retry for temporary errors like ERROR_NO_SLOT_AVAILABLE
  • Use exponential backoff when retrying
  • Limit maximum retry attempts

6. API Key Security

  • Don't hardcode API key in code
  • Use environment variables
  • Don't expose API key on client-side

Useful links: