CAPTCHA解決API
EverySolveは、カタログに52種類のチャレンジタイプを収録しているCAPTCHA解決APIです。チャレンジタイプと必須の入力を指定して、POST /api/v1/captchaにリクエストを送信します。結果の形式はタイプによって異なり、解決結果が正常に返された場合にのみ課金されます。
52 types1,000回の解決成功あたり$0.14–$4.589 解決結果の形式
チャレンジタイプの見分け方
まず、ページ上で最も確実な手がかりを確認します。ほとんどの場合、リクエストを送信する前に、読み込まれたスクリプトとコンテナの属性からチャレンジタイプを特定できます。
- 01ページで読み込まれているスクリプトを確認します。通常は、チャレンジ固有のスクリプトURLが最も確実な手がかりです。
- 02チャレンジコンテナのdata属性を確認します。
data-sitekeyなどの名前は複数のウィジェットで共通して使われるため、スクリプトの手がかりと組み合わせて判断してください。 - 03スクリプトがバンドルまたは難読化されている場合は、ブラウザのランタイムで公開されているチャレンジ固有のグローバルオブジェクトを確認します。
- 04目的のページが読み込まれる前にページ全体でアクセスがブロックされる場合は、チャレンジページ用のタイプを使用します。これらは通常、フォームトークンではなくCookieの値を返します。
- 05目的のページがなく、画像や質問だけがある場合は、必要な回答の形式に応じて、画像、テキスト、ポイント、ボックス、数値のいずれかのタスクを選択します。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"type":"turnstile","website_url":"https://example.com","website_key":"SITE_KEY"}'
ブランド別のチャレンジウィジェット
ページやフォームに埋め込まれるウィジェットです。通常はトークンまたは名前付きフィールドを返します。
Alibaba CAPTCHA
Alibaba Cloud CAPTCHAは、クリック、スライダー、パズルなど、リスクに応じて変化するウィジェットとして表示されることがあります。Alibabaが別途提供するページ単位の保護機能とは異なります。 返されるトークンはウィジェットの検証フローで使用するものです。ページアクセス用のCookieとして扱わないでください。
CaptchaFox
CaptchaFoxはサイトキー型のウィジェットです。キーをコピーする前に、そのスクリプトまたはウィジェット設定を確認してください。 返すのはウィジェットトークンで、ページアクセス用のCookieではありません。DOMにsitekeyと記載されているからといって、reCAPTCHAやTurnstileのキーを流用しないでください。
Capy Puzzle CAPTCHA
Capy Puzzle CAPTCHAはサイトキーを使用し、デプロイごとに異なるAPIサーバーを指定している場合があります。 レスポンスにはcaptchakey、challengekey、answerの各フィールドが含まれ、これらはまとめて読み取る必要があります。単一のトークンではありません。
Friendly Captcha
Friendly Captchaは、独自のサイトキーと任意のクライアントライブラリエンドポイントを持つプルーフ・オブ・ワーク型のウィジェットです。 ウィジェットのトークンを返します。操作の負担が少ないからといって、ALTCHA、MTCaptcha、invisible reCAPTCHAに該当するわけではありません。
Arkose Labs FunCaptcha
Arkose Labs FunCaptchaは通常、Arkoseのスクリプトやdata-pkey/public-keyの値から判別でき、インタラクティブな3D課題や視覚課題が表示される場合があります。 Arkoseのセッショントークンを返します。通常はfc-tokenフィールドで使用されます。reCAPTCHA Enterpriseのペイロードではありません。
GeeTest CAPTCHA
GeeTestはCAPTCHA ID/サイトキーを使用し、アダプティブ、スライド、クリックなどの形式のチャレンジを表示できます。 結果は1つの汎用トークンではなく、captcha_id、lot_number、pass_token、gen_time、captcha_outputの5つのフィールドからなる検証セットです。
hCaptcha
hCaptchaは、独自のdata-sitekeyを持つh-captchaウィジェット、または明示的なhcaptcha.render呼び出しです。 APIはhCaptchaのレスポンスをgRecaptchaResponseで返します。このフィールド名だからといって、ウィジェットがGoogle reCAPTCHAであるわけではありません。
Lemin CAPTCHA
Lemin CAPTCHAはボックス表示または非表示モードで表示でき、サイトキーに加えて任意のコンテナとAPIサーバーを使用します。 answerとchallenge_idをセットで返します。MTCaptchaやTurnstileが返す単一のトークンとして扱わないでください。
MTCaptcha
MTCaptchaは独自のウィジェットで、通常はMTCaptchaのサイトキーで設定されます。名前は似ていますが、Yandex SmartCaptchaとは別物です。 MTCaptchaのトークンを返します。Yandex SmartCaptchaはYandex Cloudのスクリプトを読み込み、smart-tokenを使用します。両者のサイトキーに互換性はありません。
Prosopo Procaptcha
Prosopo Procaptchaはサイトキー方式のウィジェットで、デプロイ設定に応じてプルーフ・オブ・ワーク型またはビジュアル型のチャレンジを表示します。 Procaptchaのトークンを返します。data-sitekey属性があるだけでは、reCAPTCHA、hCaptcha、Turnstileとは判断できません。
reCAPTCHA画像グリッド
reCAPTCHAグリッドタスクは、抽出済みの画像問題を解くタスクです。ページへのアクセスやreCAPTCHAサイトトークンの生成は行いません。 一致したタイルのインデックスをobjectsに返します。インデックスは左上のタイルを0とし、左から右へ、行ごとに数えます。ウィジェットトークンを取得するワークフロー全体にはrecaptcha_v2を使用してください。
reCAPTCHA v2
reCAPTCHA v2は、api.jsで読み込まれ、サイトキーで設定される従来型のチェックボックスまたは非表示のv2ウィジェットです。 対象フォーム用のgRecaptchaResponseを返します。v3はスコアベースで、Enterpriseはenterprise.jsを読み込み、Enterprise固有のコンテキストを使用します。
reCAPTCHA v2 Enterprise
reCAPTCHA v2 Enterpriseは、enterprise.jsとgrecaptcha.enterpriseを通じて読み込まれる、チェックボックス型またはポリシー駆動型のEnterpriseキーです。 返す値は同じくgRecaptchaResponseですが、Enterpriseの識別子やペイロードを、従来のv2のapi.jsの値やスコアベースのv3キーと混在させないでください。
reCAPTCHA v3
reCAPTCHA v3はスコアベースで、通常はv2のチェックボックスを表示せず、grecaptcha.executeを通じて実行されます。 EverySolveが返すのはgRecaptchaResponseで、Googleの評価スコアは返しません。トークンとアクションは、保護対象サイトのバックエンドが評価します。
reCAPTCHA v3 Enterprise
reCAPTCHA v3 Enterpriseは、enterprise.jsとgrecaptcha.enterprise.executeを使い、Enterpriseのスコアベースキーで動作します。 Enterpriseの評価用にgRecaptchaResponseを返します。v2のチェックボックスはありません。また、どちらも非表示であっても、従来のv3(api.js)とは別物です。
Tencent Tendi CAPTCHA
Tencent Tendi CAPTCHAはcaptchaAppId(サイトキー)を使用し、インタラクティブなチャレンジの後にticketとrandstrを返すことがあります。 ticketとrandstrのパラメータは必ずセットで使用してください。これらはreCAPTCHAのレスポンストークンでも、ページアクセス用のCookieでもありません。
Cloudflare Turnstile
Cloudflare Turnstileは、Turnstileのサイトキーで設定する埋め込み型ウィジェットです。モードはマネージド、非インタラクティブ、非表示のいずれかです。 cf-turnstile-response用のトークンを返します。一方、Cloudflareのチャレンジページはページ遷移をブロックし、クリアランスCookieのデータを返します。
NetEase Yidun CAPTCHA
NetEase Yidun(NECaptcha)は独自のcaptchaIdで初期化され、スライダー、クリック、リスクに応じたチャレンジを表示することがあります。 Yidunのトークンを返します。YidunのcaptchaIdやコールバックの値は、Tencentのticket/randstrやGeeTestの5フィールドの結果とは異なります。
ページ全体のアクセスチャレンジ
Cookieの値またはリクエストヘッダーのデータで解決する、ページ単位のブロックです。
Akamai Bot Manager(モバイルSDK向け)
これはモバイルSDK向けのフローです。対象はWebページのウィジェットではなく、iOSまたはAndroidのアプリパッケージです。 センサーデータ、ユーザーエージェント、デバイスIDを1組にして返します。この3つの値はセットで使用します。AkamaiのWeb向けフローが返すCookieとは異なります。
Akamai sec-cpt
sec-cptレスポンスはAkamaiの中間チャレンジで、ブロックされたレスポンスに含まれるチャレンジCookieとJSONペイロードで構成されます。 このタスクは、チャレンジで指定された待機時間の後にチャレンジトークンを返します。URLのみを指定するAkamai Web向けCookieタスクとは別のものです。
Akamai Bot Manager(Web向け)
これはブラウザ側のAkamai Bot Managerフローです。埋め込みのチェックボックスではなく、_abckやbm_szなどのCookieで判別できるのが一般的です。 結果は同じブラウザのワークフローで使用するCookie文字列です。モバイルのセンサーデータやsec-cptトークンではありません。
Anubis
Anubisはページ全体を対象とするプルーフオブワーク型のゲートウェイです。フォームのウィジェットではなく、anubis_challengeデータと進行状況ページで判別できます。 ゲートウェイのCookieを返します。埋め込みウィジェットのトークンではありません。Cookieの有効期間と、それが受け入れられるかどうかは、引き続き保護対象サイトによって決まります。
AWS WAF CAPTCHA
AWS WAF CAPTCHAはページまたはアプリケーションに対するチャレンジで、チャレンジの完了後にブラウザトークンを発行します。 このタスクは、後続のリクエストで使用するCookieデータを返します。aws_waf_classifyはチャレンジ画像内の位置を特定するだけで、通過までは行いません。
Basilisk
Basilisk(FaucetPay CAPTCHAとも呼ばれます)はサイトキー型のウィジェットで、回答はユーザーエージェントとセットで扱われます。 captcha_responseはuser_agentと併せて扱ってください。reCAPTCHAやTurnstileが返すような、単独で使用するトークンではありません。
Castle
Castleはリスク判定とデバイスインテリジェンスのフローで、目に見える画像パズルではなく、対象側が構造化されたメタデータを提供します。 トークンセットを返します。このセットを1つのトークンにまとめたり、製品名から視覚的なCAPTCHAだと推測したりしないでください。
Cloudflareチャレンジページ
Cloudflareのチャレンジページは遷移先の読み込み前にアクセスをブロックするもので、埋め込み型のTurnstileウィジェットとは異なります。 結果は、クリアランス用の認証情報などのCookieデータです。一方、Turnstileはサイトキーを使用し、フォームトークンを返します。
CyberSiARA
CyberSiARAは、対象ページとマスターURL識別子によって埋め込みのSiARAチャレンジを識別します。 そのSiARAセッション用のトークンを返します。一般的なページレベルのボット対策を通過するためのCookieではありません。
DataDome CAPTCHA
DataDome CAPTCHAタスクは、ブロックされたセッションに対してすでに発行されたcaptcha_urlから開始します。 そのフローに紐付いたCookieデータを返します。datadome_interstitialは、CAPTCHA URLではなく保護対象のWebサイトURLから開始します。
DataDomeインタースティシャル
DataDomeのインタースティシャルは、保護対象URLにアクセスした際に表示されるページ単位のブロックで、単独のcaptcha_urlタスクではありません。 Cookieデータを返します。有効なDataDomeのcaptcha_urlがすでにある場合は、datadomeを使用してください。
F5 Shape
F5 Shapeは、保護されたページを対象とするブラウザ保護のフローで、目に見える画像認識タスクではありません。 ページフロー用のCookieデータを返します。f5_tspdは別のTS Cookie系統であり、名前だけで選択しないでください。
F5 TS保護
F5 TS保護は、TSで始まるCookieと、BIG-IP保護モジュールに関連するページの挙動によって判別できます。 結果はTS系のCookieデータです。F5 Shapeのヘッダーや埋め込みウィジェットのトークンではありません。
Impervaチャレンジ
Imperva(旧称Incapsula)は、単体の画像ウィジェットではなく、ブラウザとエッジでのチェックによってページを保護します。 保護されたワークフロー用のCookieデータを返します。ウィジェットのトークンやページリソースの一覧ではありません。
Kasada
Kasadaのブラウザフローは、保護対象ページで発生するx-kpsdkリクエストとそのレスポンスヘッダーによって判別できます。 ブラウザのCookie文字列ではなく、x-kpsdk-ct、x-kpsdk-cd、x-kpsdk-v、x-kpsdk-r、x-kpsdk-stの各フィールドを返します。
Kasadaチャレンジデータ
Kasadaのチャレンジデータ生成は、保護されたURLにアクセスするのではなく、構造化されたplatform_inputsから開始します。 x-kpsdk-cdと、関連するctおよびstの値を返します。URLとプロキシを使うブラウザフローにはkasadaを使用してください。
PerimeterXチャレンジ
PerimeterX(現在はHUMAN Securityの一部)は、埋め込み型のチェックボックスではなく、ページ単位のアプリケーション保護フローです。 保護されたセッションを通過するためのCookieを返します。フォームトークンや、保護されたサイトの物件情報ではありません。
画像・質問タスク
入力がすでに画像またはプロンプトで、出力がテキスト、座標、ボックス、数値のいずれかである場合に使用します。
音声CAPTCHA
このタスクは音声CAPTCHAのペイロードを文字起こしします。ページから音声を取得したり、画像のチャレンジを解いたりはしません。 テキストを返します。静止画像内の文字にはimageを、文章で書かれた質問にはtext_captchaを使用してください。
AWS WAFチャレンジの分類
AWS WAF CAPTCHAのうち画像分類を担う部分で、チャレンジ画像と表示された指示文を使用します。 クリック位置をboxで返し、AWS WAFの通過用Cookieは返しません。ブラウザ操作は引き続き呼び出し側で制御します。
BotDeflector
ここでのBotDeflectorは画像選択タスクです。iconsで送信したアイコンを、bodyで送信した画像上で順番どおりに特定します。 フォームトークンやブラウザCookieではなく座標を返すため、その座標を使った操作は引き続き呼び出し側が行う必要があります。
バウンディングボックスCAPTCHA
バウンディングボックスタスクでは、1枚の元画像内で該当するオブジェクトを囲む矩形を求めます。 矩形の座標情報を含むbounding_boxesを返します。クリック位置にはcoordinatesを、タイルやオブジェクトの選択にはrecaptcha_gridを使用してください。
座標クリックCAPTCHA
座標タスクは、画像内の1つ以上のクリック位置を表すもので、特定のCAPTCHAベンダーには依存しません。 矩形、テキスト、ドラッグ距離ではなく座標点を返します。呼び出し側は、これらの座標点を元画像のサイズに合わせて適用します。
画像CAPTCHA
画像タスクは画像ペイロードに対して文字認識を行います。特定ブランドのウィジェット連携ではありません。 認識したテキストを返します。音声にはaudio、文章による質問にはtext_captcha、空間的な回答には座標タスクまたはボックスタスクを使用してください。
回転CAPTCHA
回転タスクは、正しい向きに直す必要がある画像を1枚受け取ります。汎用的な画像タスクです。 angleを数値で返します。ドラッグ距離にはslider、クリック位置にはcoordinates、矩形にはbounding_boxを使用してください。
SHEIN CAPTCHA
SHEINタスクは、汎用のバウンディングボックスタスクとは異なり、サイト固有のアイコン位置特定モデルです。 一致した領域のrectsを返します。他のサイトの画像には、適切な汎用のポイントタスクまたはボックスタスクを使用してください。
スライダーCAPTCHA
スライダータスクは、背景画像と別のパズルピースを使って、ピースを動かす距離を算出します。 distanceをピクセル単位で返します。座標、パーセンテージ、トークン、ドラッグ軌跡は返しません。操作の軌跡は呼び出し側で作成します。
Temu CAPTCHA
Temuタスクは、順序付きのparts配列をメインのチャレンジ画像と照合します。 parts内の候補画像と同じ順序で座標を返します。単一画像の座標タスクとは別のタスクで、サイトトークンは返しません。
テキストCAPTCHA
テキストCAPTCHAは文章による質問と回答の形式で、ホスト型ウィジェットのベンダーではなく、フォーラムやCMSが提供していることが一般的です。 回答テキストを返します。画像内の文字にはimage、音声によるチャレンジにはaudioを使用してください。
その他のチャレンジタイプ
独自のリクエストパラメータと解決結果フィールドを持つ、その他のチャレンジです。
ALTCHA
ALTCHAはプルーフオブワーク型のウィジェットです。通常は画像グリッドではなく、altcha-widget要素として表示されます。 プルーフオブワークのチャレンジから生成されたフォームトークンを返します。視覚的な回答やページアクセス用のCookieではありません。
ATB CAPTCHA
atbCAPTCHAはappIdとapiServerで初期化され、クリック、スライダー、またはリスクに応じたチャレンジを表示することがあります。 結果はatbCAPTCHAのトークンです。他ブランドのウィジェットが似た形をしていても、識別子に互換性はありません。
Binance CAPTCHA
Binanceのタスクは、汎用的な画像やreCAPTCHAのサイトキーではなく、チャレンジのvalidate_idから開始します。 その検証セッション用のチャレンジトークンを返します。古い識別子や別フローの識別子で代用することはできません。
Cutcaptcha
Cutcaptchaは、トークンを生成するチャレンジ用に、Miseryキーと別個のCAPTCHA APIキーを公開しています。 トークンを返します。どちらのキーも汎用的なサイトキーではありません。2つのキーは役割が異なるため、1つにまとめないでください。
Hunt CAPTCHA
HuntはURLベースのトークンタスクとして登録されていますが、ベンダーを識別できる安定した公開シグネチャはまだ文書化されていません。 トークンを返します。検証済みの公開シグネチャがないため、カタログのエントリに従ってください。このページではベンダー固有のDOMセレクターは提示していません。
Yandex SmartCaptcha
Yandex SmartCaptchaはYandex Cloudのウィジェットで、SmartCaptchaのスクリプトで読み込まれ、独自のウィジェットAPIを通じて完了します。 smart-tokenフィールド用のトークンを返します。MTCaptchaはスクリプトもサーバー側の検証も異なる別製品です。
解決結果の形式と使い方
solutionオブジェクトは、サポートされている9種類のレスポンス形式のいずれかを使用します。同じ形式のタイプではレスポンスの解析コードを共通化できますが、リクエストパラメータは異なる場合があります。
| 解決結果の形式 | 返される内容 | 使い方 | タイプ |
|---|---|---|---|
boxes | バウンディングボックス | 各ボックスの座標を使って、元画像内の領域を特定または選択します。 | 2 |
cookie | Cookieの値 | 返されたCookieフィールドを、同じワークフローの後続リクエストに付与します。 | 10 |
fields | 名前付きフィールド | 宣言されたフィールドはまとめて読み取ってください。対象のワークフローでは、すべてのフィールドが揃っている必要がある場合があります。 | 8 |
indices | グリッドセルのインデックス | リストにあるセルをクリックします。番号は左上のセルを0として、左から右へ、行ごとに振られています。リストが空の場合、該当するセルはありません。 | 1 |
number | 数値 | 返された数値を、チャレンジが求める解答として使用します。 | 2 |
points | 座標点 | 返されたピクセル位置を、示された順序で元画像またはクリック操作のワークフローに適用します。 | 4 |
text | テキスト | 返されたテキストをチャレンジの解答として使用します。 | 3 |
token | トークン | 対象のワークフローが想定するフィールドまたは検証リクエストで、トークンを送信します。 | 21 |
tokens | トークンセット | 返されたトークンは、対象サイトのリクエストが想定する形式でまとめて送信します。 | 1 |
CAPTCHA APIに関するよくある質問
ページで使われているCAPTCHAはどうすれば見分けられますか?
まず読み込まれているスクリプトを確認し、次にチャレンジコンテナのdata属性、最後にブラウザランタイムに公開されているチャレンジ固有のグローバルオブジェクトを確認します。ページが読み込まれる前にページ全体がブロックされる場合は、埋め込みウィジェット用のタイプではなく、チャレンジページ用のタイプを使用してください。
解決に失敗した場合も課金されますか?
いいえ。EverySolveは解決結果を正常に返した場合のみ課金します。失敗または空の結果では最終的な課金は発生せず、仮押さえされた金額は同じアカウント残高に自動的に戻ります。
CAPTCHAのタイプを変えると、コードはどの程度変わりますか?
エンドポイントはPOST /api/v1/captchaのままです。typeの値を変更し、そのタイプで定義されたパラメータを渡してください。9種類あるレスポンス形式のうち、2つのタイプが同じ形式を使う場合は、レスポンスの解析処理を共通化できます。
availableフィールドは何を意味しますか?
GET /api/v1/captcha/typesは全52タイプを一覧表示し、それぞれがその時点で利用可能かどうかを返します。リクエストを送信する前に最新の利用可否を確認してください。キャッシュした値は利用可能であることを保証しません。