Силуэты

Задачи с кликом по картинкам.

Пример задания

Нажимайте в порядке:

Отправить

1. Создание задачи

POSThttps://api.capsola.cloud/create

Запрос

Ключ передаётся в заголовке X-API-Key, тело — JSON.

json
{
  "type": "SmartCaptcha",
  "click": "CLICK_BASE_64",
  "task": "TASK_BASE_64"
}
typestring обязательный

Тип задачи — SmartCaptcha.

clickbase64 обязательный

Изображение области клика.

taskbase64 обязательный

Изображение с порядком задания.

app_idstring

Идентификатор приложения разработчика — выдаётся в партнёрском разделе.

Изображения надёжнее скачивать с источника и кодировать в Base64 самостоятельно. Пересжатие теряет детали, и задача решается хуже.

Ответ

json
{
  "status": 1,
  "response": "9051d4b4-0000-44d3-a4c2-db0215227862"
}
statusnumber

1 — задача принята, 0 — ошибка.

responsestring

Идентификатор задачи или код ошибки.

2. Получение результата

POSThttps://api.capsola.cloud/result

Запрос

json
{
  "id": "9051d4b4-0000-44d3-a4c2-db0215227862"
}
idstring обязательный

Идентификатор задачи из ответа на /create.

Ответ

json
{
  "status": 1,
  "response": "coordinates:x=34.7,y=108.0;x=234.3,y=72.3;x=149.1,y=107.7"
}
statusnumber

1 — задача решена, 0 — ошибка.

responsestring

Координаты точек в порядке нажатия или код ошибки.

Ответ CAPCHA_NOT_READY означает, что задача ещё в работе. Подождите 2–10 секунд и повторите запрос — и так до успешного результата или другой ошибки.


Примеры использования

import requests
import time
import base64

url_create = 'https://api.capsola.cloud/create'
url_result = 'https://api.capsola.cloud/result'
headers = {
    'Content-type': 'application/json',
    'X-API-Key': 'API_KEY'
}

# Create task

click_url = 'https://capsola.cloud/examples/smart/click.png'
task_url = 'https://capsola.cloud/examples/smart/task.png'

click_response = requests.get(click_url).content
task_response = requests.get(task_url).content

CLICK_BASE_64 = base64.b64encode(click_response).decode('utf-8')
TASK_BASE_64 = base64.b64encode(task_response).decode('utf-8')

data = {
  'type': 'SmartCaptcha',
  'click': CLICK_BASE_64,
  'task': TASK_BASE_64,
}

request = requests.post(url = url_create, json = data, headers=headers)
request = request.json()
print(request)

# Get result
if request['status'] == 1:
    task_id = request['response']
    while True:
        time.sleep(2)
        data = {
            'id': task_id
        }
        request = requests.post(url=url_result, json=data, headers = headers)
        request = request.json()
        print(request)
        if request['status'] == 1:
            break
        if request['status'] == 0 and request['response'] != 'CAPCHA_NOT_READY':
            break