Chat with us, powered by LiveChat
← Return to MyDisct Solver

Multi-Select Image CAPTCHA

Solve captchas requiring multiple image selections with AI-powered recognition. Multi-select CAPTCHAs require selecting all images matching specific criteria with 99.3% accuracy.

What is Multi-Select Image CAPTCHA?

Multi-select image CAPTCHAs present a set of images and ask users to select ALL images that match a specific criteria (e.g., "Select all images with cars" or "Select all images with red objects"). Unlike single-selection captchas, users must identify multiple correct images from the set.

Captcha Type

Use the following captcha type identifier in your API requests:

"type": "MULTI_SELECT_CAPTCHA_IMAGE"

Request Format

POST /createTask

Request Parameters

Parameter Type Required Description
auth.token string required Your API key
captcha.type string required Must be "MULTI_SELECT_CAPTCHA_IMAGE"
captcha.metadata.siteUrl string required URL where captcha appears
captcha.payload.images array required Array of base64-encoded images
captcha.payload.question string required The selection criteria (e.g., "Select all images with cars")
captcha.payload.referenceImages array optional Reference images for comparison

Example Request

JavaScript
const response = await fetch('https://solver-api.mydisct.com/createTask', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'apikey': 'YOUR_API_KEY'
  },
  body: JSON.stringify({
    auth: { token: 'YOUR_API_KEY' },
    context: { source: 'api', version: '1.0.0' },
    captcha: {
      type: 'MULTI_SELECT_CAPTCHA_IMAGE',
      metadata: {
        siteUrl: 'https://example.com'
      },
      payload: {
        images: ['img1_base64', 'img2_base64', 'img3_base64'],
        question: 'Select all images with cars',
        referenceImages: []
      }
    }
  })
});

const data = await response.json();
console.log('Task ID:', data.task.id);

Python Example

Python
import requests
import time

def solve_multi_select_captcha(images, question, site_url, api_key, reference_images=None):
    """
    Solve multi-select captcha challenge

    Args:
        images: List of base64-encoded images
        question: Selection criteria
        site_url: URL where captcha appears
        api_key: Your MyDisct Solver API key
        reference_images: Optional reference images

    Returns:
        List of selected indices
    """

    # Step 1: Create task
    create_response = requests.post(
        'https://solver-api.mydisct.com/createTask',
        headers={
            'Content-Type': 'application/json',
            'apikey': api_key
        },
        json={
            'auth': {'token': api_key},
            'context': {'source': 'api', 'version': '1.0.0'},
            'captcha': {
                'type': 'MULTI_SELECT_CAPTCHA_IMAGE',
                'metadata': {'siteUrl': site_url},
                'payload': {
                    'images': images,
                    'question': question,
                    'referenceImages': reference_images or []
                }
            }
        }
    )

    create_data = create_response.json()

    if not create_data['success']:
        raise Exception(create_data['error']['message'])

    task_id = create_data['task']['id']

    # Step 2: Poll for result
    while True:
        time.sleep(3)

        result_response = requests.post(
            'https://solver-api.mydisct.com/fetchResult',
            headers={
                'Content-Type': 'application/json',
                'apikey': api_key
            },
            json={'taskId': task_id}
        )

        result_data = result_response.json()

        if result_data['task']['status'] == 'completed':
            return result_data['task']['result']['answers']
        elif result_data['task']['status'] == 'failed':
            raise Exception('Multi-select captcha solving failed')

# Usage
solution = solve_multi_select_captcha(
    images=['img1_base64', 'img2_base64', 'img3_base64'],
    question='Select all images with cars',
    site_url='https://example.com',
    api_key='YOUR_API_KEY'
)
print(f'Selected indices: {solution}')

Response Format

Create Task Response (Processing)

JSON
{
  "success": true,
  "service": "MyDisct Solver",
  "message": "Captcha is being processed",
  "task": {
    "id": "MyDisctSolver_abc123def456",
    "status": "processing"
  }
}

Fetch Result Response (Completed)

JSON
{
  "success": true,
  "service": "MyDisct Solver",
  "message": "Captcha solved successfully",
  "task": {
    "id": "MyDisctSolver_abc123def456",
    "status": "completed",
    "result": {
      "answers": [0, 2, 5, 7],
      "timestamp": "2025-11-05T12:34:56.789Z"
    }
  }
}
Understanding the Response

The answers array contains the indices of all images that should be selected. For multi-select captchas, multiple indices are returned as users must select all matching images.

Best Practices

Recommendations
  • Include the exact question text as displayed
  • Multi-select captchas require selecting ALL matching images
  • Use high-quality images without compression
  • Include reference images when available for better accuracy
  • Poll every 3 seconds for results

Common Issues

Issue: Not all correct images selected

Solution: Multi-select captchas require selecting ALL images that match the criteria. Ensure your application handles multiple selections correctly.

Issue: Too many images selected

Solution: Only select images that exactly match the criteria. Over-selection can cause validation failures.

Issue: Question interpretation

Solution: Pay close attention to the question wording (e.g., "all", "containing", "with"). Different phrasings can change the expected selections.