UNLOCK API
createTask

createTask

タスクを作成し、そのIDを返します。タスクが受け付けられた時点でその種類の料金が残高から差し引かれ、タスクが失敗した場合は返金されます。
POSThttps://unlock-api.com/createTask
Content-Type: application/jsonでPOSTしてください。taskのフィールドはタスクの種類によって異なります。「タスクの種類」を参照してください。

リクエストパラメータ

clientKey
String必須
アカウントページにある32文字のAPIキーです。
task
Object必須
taskオブジェクトです。そのtypeフィールドによって、ほかに必要なフィールドが決まります。 タスクの種類
callbackUrl
String任意
公開されたhttp(s)アドレスです。タスクが完了または失敗すると、結果がJSONでこのアドレスにPOSTされます。
softId
Integer任意
アプリケーションIDで、タスクと一緒に保存されます。appIdも同じフィールドとして受け付けます。

リクエスト

POST /createTask
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "TurnstileTaskProxyless",
    "websiteURL": "https://example.com/login",
    "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
  }
}

レスポンス

{
  "errorId": 0,
  "taskId": 1001
}

レスポンスフィールド

errorId
Integer
リクエストが成功した場合は0、失敗した場合は1です。
taskId
Integer
タスクIDです。
errorCode
String
errorIdが1のときのエラー名です。
errorDescription
String
エラーの短い説明(英語)です。

コードサンプル

import time, requests

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

task = requests.post(f"{API}/createTask", json={
    "clientKey": KEY,
    "task": {
      "type": "TurnstileTaskProxyless",
      "websiteURL": "https://example.com/login",
      "websiteKey": "0x4AAAAAAAC3DHQFLr1GavRN"
    }
}).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"]["token"])
        break
else:
    raise SystemExit("timed out")

このメソッドが返すエラー

  • キーが間違っています。アカウントページからもう一度コピーしてください。(in.phpとres.php: ERROR_WRONG_USER_KEY)

  • アカウントの許可リストにないIPからのリクエストです。アカウントページでIPを追加してください。

  • このアカウントはブロックされています。アカウントページからサポートにお問い合わせください。

  • リクエストが多すぎます。結果確認の間隔を5秒ごとにしてください。

  • 残高がタスクの料金に足りません。入金してください。課金はされていません。

  • 現在リクエストが多すぎるため、タスクを受け付けられませんでした。数秒後にもう一度お試しください。課金はされていません。

  • タスクの種類が不明か、無効になっています。種類名を確認してください。

  • 必須フィールドがないか、形式が正しくありません。

  • websiteURLまたはpageurlがないか、完全なhttp(s)アドレスではありません。

  • プロキシタスクにはproxyAddressとproxyPortが必要です。

  • 画像がないか、小さすぎます。

  • 画像が100 KBを超えています。

  • 画像が有効なbase64ではありません。