UNLOCK API
Amazon AWS WAF

Amazon AWS WAF

Как отправить задачу Amazon AWS WAF в UNLOCK API через createTask или in.php: названия типов задач, все параметры, объект solution, поля прокси и примеры кода на 7 языках.
Цена
$0.70 $0.0007 за задачу
Вы отправляете
URL страницы, ключ сайта WAF и значения iv и context со страницы проверки
Вы получаете
Значения для cookie aws-waf-token

Обзор и цена

Названия типов задачи

Используйте первое название, чтобы решать без прокси. Используйте второе название и добавьте поля прокси, чтобы решать через свой прокси. Цена одинаковая.
AmazonTaskProxylessБез прокси
AmazonTaskЧерез ваш прокси

Также принимается: AntiAwsWafTaskProxyless, AntiAwsWafTask

Объект задачи

type
StringОбязательный
Название типа задачи. Регистр букв не важен. AmazonTaskProxyless | AmazonTask
websiteURL
StringОбязательный
Полный адрес страницы, на которой показана капча, начиная с http:// или https://.
websiteKey
StringОбязательный
Ключ сайта виджета капчи, есть в исходном коде страницы (например, data-sitekey).
iv
StringОбязательный
Значение iv со страницы AWS WAF.
context
StringОбязательный
Значение context со страницы AWS WAF.
challengeScript
StringНеобязательный
Адрес скрипта challenge.js.
captchaScript
StringНеобязательный
Адрес скрипта captcha.js.

Поля, которых здесь нет, передаются решателю как есть.

Поля прокси

Только для названия типа с прокси. Отправьте либо отдельные поля, либо одну строку proxy.
proxyType
StringОбязательный
http, https, socks4 или socks5.
proxyAddress
StringОбязательный
IP-адрес или имя хоста прокси.
proxyPort
IntegerОбязательный
Порт прокси.
proxyLogin
StringНеобязательный
Имя пользователя прокси, если оно нужно.
proxyPassword
StringНеобязательный
Пароль прокси, если он нужен.
proxy
String
Все поля прокси одной строкой, например http://user:pass@1.2.3.4:8080.

Работа через прокси

Запрос

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "AmazonTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
    "iv": "CgAFRjIw2vAAABSM",
    "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
  }
}

Объект solution

Возвращается в solution, когда status равен ready.
captcha_voucher
String
captcha voucher AWS WAF.
existing_token
String
Токен AWS WAF. Отправьте его как cookie aws-waf-token.
POST /getTaskResult
{
  "errorId": 0,
  "taskId": 1001,
  "status": "ready",
  "solution": {
    "captcha_voucher": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "existing_token": "f8ab5749-f916-4d29-91ff-a2b8c1e5d2a7:EQoAf0APpGIKAAAA..."
  },
  "cost": "0.0007",
  "createTime": 1791640000,
  "endTime": 1791640014,
  "solveCount": 1
}

Примеры кода

import time, requests

API = "https://unlock-api.com"
KEY = "YOUR_API_KEY"

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "AmazonTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "AQIDAHjcYu/GjX+QlghicBgQ/7bFaQZ+m5FKCMDnO+vTbNg96AH...",
      "iv": "CgAFRjIw2vAAABSM",
      "context": "zPT0jOl1rQlUNaldX6LUpn4D6Tl9bJ8VUQ..."
    }
}).json()
if task["errorId"]:
    raise SystemExit(task["errorCode"])

for _ in range(60):   # 60 x 5 s = the 5 minute task limit
    time.sleep(5)
    r = requests.post(f"{API}/getTaskResult", json={"clientKey": KEY, "taskId": task["taskId"]}).json()
    if r["errorId"]:
        raise SystemExit(f"{r['errorCode']}: {r.get('errorDescription', '')}")   # failed tasks are refunded
    if r["status"] == "ready":
        print(r["solution"])
        break
else:
    raise SystemExit("timed out")

Метод формы in.php

Та же задача через классический запрос с формой. res.php возвращает ответ текстом.
in.php, res.php
curl -s "https://unlock-api.com/in.php" -d "key=YOUR_API_KEY&method=amazon_waf&sitekey=KEY&iv=IV&context=CONTEXT&pageurl=https://example.com/login&json=1"
# {"status":1,"request":"1001"}

curl -s "https://unlock-api.com/res.php?key=YOUR_API_KEY&action=get&id=1001&json=1"
# {"status":0,"request":"CAPCHA_NOT_READY"}  then  {"status":1,"request":"ANSWER"}

API форм: in.php и res.php