import time, requests
class UnlockAPI:
def __init__(self, key, base="https://unlock-api.com"):
self.key, self.base = key, base
def _post(self, method, **body):
r = requests.post(f"{self.base}/{method}", json={"clientKey": self.key, **body}, timeout=30).json()
if r.get("errorId"):
raise RuntimeError(r.get("errorCode")) # failed tasks are refunded
return r
def balance(self):
return self._post("getBalance")["balance"]
def solve(self, task, timeout=300):
task_id = self._post("createTask", task=task)["taskId"]
end = time.time() + timeout
while time.time() < end:
time.sleep(5)
r = self._post("getTaskResult", taskId=task_id)
if r["status"] == "ready":
return r["solution"]
raise TimeoutError(task_id)Uso
api = UnlockAPI("YOUR_API_KEY")
sol = api.solve({"type": "TurnstileTaskProxyless", "websiteURL": "https://example.com", "websiteKey": "0x4AAAA..."})
print(sol["token"])Usando uma biblioteca que você já tem
A maioria das bibliotecas de resolução permite mudar o endereço do servidor. Defina como unlock-api.com (ou https://unlock-api.com/in.php para a API de formulário) e use sua chave da UNLOCK API. Os nomes das tarefas e as respostas são os mesmos.