指数

下载基于API客户端的示例代码:

KeyCaptcha API 支持

什么是“KeyCAPTCHA”挑战?

这些挑战通常需要用户解决一个简单的难题。

为了您的方便,我们实现了对 KeyCaptcha API 的支持。 如果您的软件可以使用它,并且支持最小配置,您应该能够使用以下命令解码 KeyCaptchas Death By Captcha 立刻。

  • KeyCaptcha API: 提供站点 URL 和 KeyCaptcha 站点密钥后,API 将返回一个令牌,您将使用该令牌在包含 KeyCaptcha 质询的页面中提交表单。

价钱

目前,价格为 $2.89/1K Keycaptcha 挑战已正确解决。 您无需为报告为错误解决的 KeyCaptcha 付费。 请注意,此定价仅适用于 KeyCaptcha 挑战,因此只有使用此特定 API 的客户才会按上述费率付费。

KeyCaptcha API 常见问题解答:

KeyCaptcha API URL 是什么?

要使用 KeyCaptcha API,您必须向 http://api.dbcapi.me/api/captcha 发送 HTTP POST 请求

KeyCaptcha API 的 POST 参数是什么?

  • username: 您的DBC帐户用户名
  • password: 您的DBC帐户密码
  • type=10: 类型 10 指定这是一个 KeyCaptcha API
  • keycaptcha_params=json(payload): 用于访问 KeyCaptcha 挑战的数据
  • JSON有效负载结构:
    • proxy: 您的代理URL和凭据(如果有)。例证:
    • proxytype: 您的代理连接协议。有关支持的代理类型,请参见支持哪些代理类型? 示例:
      • HTTP
    • s_s_c_user_id: KeyCaptcha 使用的 Javascript 变量

      Example:

      您需要在网页源中找到此参数。 您可以在“script”HTML 标记内找到它。

      • 15
    • s_s_c_session_id: KeyCaptcha 使用的 Javascript 变量

      Example:

      您需要在网页源中找到此参数。 您可以在“script”HTML 标记内找到它。

      • 8c8ad5a784ec913bec04aa63d923ccb0
    • s_s_c_web_server_sign: KeyCaptcha 使用的 Javascript 变量

      Example:

      您需要在网页源中找到此参数。 您可以在“script”HTML 标记内找到它。

      • ccf7c202576b6b47b6c3d4584ebbd8de-pz-
    • s_s_c_web_server_sign: KeyCaptcha 使用的 Javascript 变量

      Example:

      您需要在网页源中找到此参数。 您可以在“script”HTML 标记内找到它。

      • 063b44822f295c6697bccd42aec65dd6
    • pageurl: 带有 KeyCaptcha 挑战的页面的 URL。 此 url 必须包含加载 KeyCaptcha 的路径。 示例:如果您要解析的 KeyCaptcha 位于 http://test.com/path1,则 pageurl 必须是 http://test.com/path1 而不是 http://test.com。

    代理参数是可选的,但是我们强烈建议使用一个解决方案的IP之间的不一致之处,以防止提供的页面拒绝(如果没有提供代理)和提交的IP验证解决方案(您的)。


    注意:如果提供了代理,则proxytype是必需的参数。

    keycaptcha_params 的完整示例:

    
    {
        'proxy': 'http://user:[email protected]:1234',
        'proxytype': 'HTTP',
        's_s_c_user_id': 15,
        's_s_c_session_id': '8c8ad5a784ec913bec04aa63d923ccb0',
        's_s_c_web_server_sign': 'ccf7c202576b6b47b6c3d4584ebbd8de-pz-',
        's_s_c_web_server_sign2': '063b44822f295c6697bccd42aec65dd6',
        'pageurl': 'https://testsite.com/xxx-test'
    }
                

KeyCaptcha API 的响应是什么?

KeyCaptcha API 响应具有以下结构。 一次使用有效,使用寿命为 2 分钟。 它将是如下所示的字符串:


"ebdb5a6bf76da6887db60ef2041ab946|9006dc725760858e4c0715b835472f22|
http://back10.keycaptcha.com/swfs/ckc/0d4d08-|
493e52c37c10c2bcdf4a00cbc9ccd1e8|1"
      

支持哪些代理类型?

当前,仅支持 http 代理。对其他类型的支持将来会添加。

Using KeyCaptcha API with api clients:


    /**
     * Death by Captcha PHP API KeyCaptcha usage example
     *
     * @package DBCAPI
     * @subpackage PHP
     */

    /**
     * DBC API clients
     */
    require_once '../deathbycaptcha.php';

    $username = "username";  // DBC account username
    $password = "password";  // DBC account password
    $token_from_panel = "your-token-from-panel";  // DBC account authtoken

    // Use DeathByCaptcha_SocketClient() class if you want to use SOCKET API.
    $client = new DeathByCaptcha_HttpClient($username, $password);
    $client->is_verbose = true;

    // To use token the first parameter must be authtoken.
    // $client = new DeathByCaptcha_HttpClient("authtoken", $token_from_panel);

    echo "Your balance is {$client->balance} US cents\n";

    // Set the proxy and KeyCaptcha token data
    $data = array(
        'proxy' => 'http://user:[email protected]:1234',
        'proxytype' => 'HTTP',
        's_s_c_user_id' => 'valid_UID',
        's_s_c_session_id' => 'valid_session_ID',
        's_s_c_web_server_sign' => 'valid_webserver_sign',
        's_s_c_web_server_sign2' => 'valid_webserver_sign2',
        'pageurl' => 'https://client-demo.testsite.com/test-keycaptcha'
    );
    //Create a json string
    $json = json_encode($data);

    //Put the type and the json payload
    $extra = [
        'type' => 10,
        'keycaptcha_params' => $json,
    ];

    // Put null the first parameter and add the extra payload
    if ($captcha = $client->decode(null, $extra)) {
        echo "CAPTCHA {$captcha['captcha']} uploaded\n";

        sleep(DeathByCaptcha_Client::DEFAULT_TIMEOUT);

        // Poll for CAPTCHA indexes:
        if ($text = $client->get_text($captcha['captcha'])) {
            echo "CAPTCHA {$captcha['captcha']} solved: {$text}\n";

            // Report an incorrectly solved CAPTCHA.
            // Make sure the CAPTCHA was in fact incorrectly solved!
            //$client->report($captcha['captcha']);
        }
    }
        

    # keycaptcha
    import deathbycaptcha
    import json

    # Put your DBC account username and password here.
    username = "username"
    password = "password"

    # you can use authtoken instead of user/password combination
    # activate and get the authtoken from DBC users panel
    authtoken = "authtoken"

    # to use socket client
    # client = deathbycaptcha.SocketClient(username, password)

    # to use authtoken
    # client = deathbycaptcha.SocketClient(username, password, authtoken)

    client = deathbycaptcha.HttpClient(username, password)

    # Put the proxy and keycaptcha data
    Captcha_dict = {
        'proxy': 'http://user:[email protected]:1234',
        'proxytype': 'HTTP',
        's_s_c_user_id': 'valid_UID',
        's_s_c_session_id': 'valid_session_ID',
        's_s_c_web_server_sign': 'valid_webserver_sign',
        's_s_c_web_server_sign2': 'valid_webserver_sign2',
        'pageurl': 'https://client-demo.testsite.com/test-keycaptcha'
    }

    # Create a json string
    json_Captcha = json.dumps(Captcha_dict)

    try:
        balance = client.get_balance()
        print(balance)

        # Put your CAPTCHA type and Json payload here:
        captcha = client.decode(type=10, keycaptcha_params=json_Captcha)
        if captcha:
            # The CAPTCHA was solved; captcha["captcha"] item holds its
            # numeric ID, and captcha["text"] its text token solution.
            print("CAPTCHA %s solved: %s" % (captcha["captcha"], captcha["text"]))

            if '':  # check if the CAPTCHA was incorrectly solved
                client.report(captcha["captcha"])

    except deathbycaptcha.AccessDeniedException:
        # Access to DBC API denied, check your credentials and/or balance
        print("error: Access to DBC API denied, check your credentials and/or balance")

        

    import com.DeathByCaptcha.AccessDeniedException;
    import com.DeathByCaptcha.Client;
    import com.DeathByCaptcha.HttpClient;
    import com.DeathByCaptcha.SocketClient;
    import com.DeathByCaptcha.Captcha;
    import org.json.JSONObject;

    import java.io.IOException;

    class ExampleKeyCaptcha {
        public static void main(String[] args)
                throws Exception {

            // Put your DBC username & password or authtoken here:
            String username = "your_username_here";
            String password = "your_password_here";
            String authtoken = "your_authtoken_here";

            /* Death By Captcha Socket Client
               Client client = (Client) (new SocketClient(username, password));
               Death By Captcha http Client */
            Client client = (Client) (new HttpClient(username, password));
            client.isVerbose = true;

            /* Using authtoken
               Client client = (Client) new HttpClient(authtoken); */

            try {
                try {
                    System.out.println("Your balance is " + client.getBalance() + " US cents");
                } catch (IOException e) {
                    System.out.println("Failed fetching balance: " + e.toString());
                    return;
                }

                Captcha captcha = null;
                try {
                    // Proxy and keycaptcha data
                    String proxy = "http://user:[email protected]:1234";
                    String proxytype = "http";
                    String s_s_c_user_id = "valid_UID";
                    String s_s_c_session_id = "valid_session_ID";
                    String s_s_c_web_server_sign = "valid_webserver_sign";
                    String s_s_c_web_server_sign2 = "valid_webserver_sign2";
                    String pageurl = "https://client-demo.testsite.com/test-funcaptcha";

                    //Send a json with the parameters
                    JSONObject json_params = new JSONObject();
                    json_params.put("proxy", proxy);
                    json_params.put("proxytype", proxytype);
                    json_params.put("s_s_c_user_id", s_s_c_user_id);
                    json_params.put("s_s_c_session_id", s_s_c_session_id);
                    json_params.put("s_s_c_web_server_sign", s_s_c_web_server_sign);
                    json_params.put("s_s_c_web_server_sign2", s_s_c_web_server_sign2);
                    json_params.put("pageurl", pageurl);
                    captcha = client.decode(10, json_params);
                    */
                } catch (IOException e) {
                    System.out.println("Failed uploading CAPTCHA");
                    return;
                }
                if (null != captcha) {
                    System.out.println("CAPTCHA " + captcha.id + " solved: " + captcha.text);

                    /* Report incorrectly solved CAPTCHA if necessary.
                       Make sure you've checked if the CAPTCHA was in fact incorrectly
                       solved, or else you might get banned as abuser. */
                    /*try {
                        if (client.report(captcha)) {
                            System.out.println("Reported as incorrectly solved");
                        } else {
                            System.out.println("Failed reporting incorrectly solved CAPTCHA");
                        }
                    } catch (IOException e) {
                        System.out.println("Failed reporting incorrectly solved CAPTCHA: " + e.toString());
                    }*/
                } else {
                    System.out.println("Failed solving CAPTCHA");
                }
            } catch (com.DeathByCaptcha.Exception e) {
                System.out.println(e);
            }


        }
    }

        

    // keycaptcha

    using System;
    using System.Collections;
    using DeathByCaptcha;

    namespace DBC_Examples.examples
    {
        public class KeyCaptchaExample
        {
            public void Main()
            {
                // Put your DeathByCaptcha account username and password here.
                string username = "your username";
                string password = "your password";
                // string token_from_panel = "your-token-from-panel";

                /* Death By Captcha Socket Client
                   Client client = (Client) new SocketClient(username, password);
                   Death By Captcha http Client */
                Client client = (Client) new HttpClient(username, password);

                /* To use token authentication the first parameter must be "authtoken".
                Client client = (Client) new HttpClient("authtoken", token_from_panel); */

                // Put your Proxy credentials and type here
                string proxy = "http://user:[email protected]:1234";
                string proxyType = "HTTP";
                string pageurl = "https://client-demo.testsite.com/test-keycaptcha";
                string s_s_c_user_id = "valid_UID";
                string s_s_c_session_id = "valid_session_ID";
                string s_s_c_web_server_sign = "valid_webserver_sign";
                string  s_s_c_web_server_sign2 = "valid_webserver_sign2";

                string keycaptchaParams = "{\"proxy\": \"" + proxy + "\"," +
                                        "\"proxytype\": \"" + proxyType + "\"," +
                                        "\"s_s_c_user_id\": \"" + s_s_c_user_id + "\"," +
                                        "\"s_s_c_session_id\": \"" + s_s_c_session_id + "\"," +
                                        "\"s_s_c_web_server_sign\": \"" + s_s_c_web_server_sign + "\"," +
                                        "\"s_s_c_web_server_sign2\": \"" + s_s_c_web_server_sign2 + "\"," +
                                        "\"pageurl\": \"" + pageurl + "\"}";
                try
                {
                    double balance = client.GetBalance();

                    /* Upload a CAPTCHA and poll for its status. Put the KeyCaptcha
                       Json payload, CAPTCHA type and desired solving timeout (in seconds)
                       here. If solved, you'll receive a DeathByCaptcha.Captcha object. */
                    Captcha captcha = client.Decode(Client.DefaultTimeout,
                        new Hashtable()
                        {
                            {"type", 10},
                            {"keycaptcha_params", keycaptchaParams}
                        });

                    if (null != captcha)
                    {
                        /* The CAPTCHA was solved; captcha.Id property holds
                        its numeric ID, and captcha.Text holds its text. */
                        Console.WriteLine("CAPTCHA {0} solved: {1}", captcha.Id,
                            captcha.Text);

    //                  if ( /* check if the CAPTCHA was incorrectly solved */)
    //                  {
    //                      client.Report(captcha);
    //                  }
                    }
                }
                catch (AccessDeniedException e)
                {
                    /* Access to DBC API denied, check your credentials and/or balance */
                    Console.WriteLine("<<< catch : " + e.ToString());
                }
            }
        }
    }

        

    Imports DeathByCaptcha

    Public Class KeyCaptcha
        Sub Main(args As String())

            ' Put your DBC username & password or authtoken here:
            Dim username = "username"
            Dim password = "password"
            Dim token_from_panel = "your-token-from-panel"

            ' DBC Socket API client
            ' Dim client As New SocketClient(username, password)
            ' DBC HTTP API client
            Dim client As New HttpClient(username, password)

            ' To use token auth the first parameter must be "authtoken"
            ' Dim client As New HttpClient("authtoken", token_from_panel)

            ' Proxy and keyaptcha data
            Dim proxy = "http://user:[email protected]:1234"
            Dim proxyType = "HTTP"
            Dim s_s_c_user_id = "valid_UID";
            Dim s_s_c_session_id = "valid_session_ID";
            Dim s_s_c_web_server_sign = "valid_webserver_sign";
            Dim s_s_c_web_server_sign2 = "valid_webserver_sign2";
            Dim pageurl = "https://client-demo.testsite.com/test-keycaptcha"

            Console.WriteLine(String.Format("Your balance is {0,2:f} US cents",
                                            client.Balance))

            ' Create a JSON with the extra data
            Dim keycaptchaParams = "{""proxy"": """ + proxy + """," +
                                 """proxytype"": """ + proxyType + """," +
                                 """s_s_c_user_id"": """ + s_s_c_user_id + """," +
                                 """s_s_c_session_id"": """ + s_s_c_session_id + """," +
                                 """s_s_c_web_server_sign"": """ + s_s_c_web_server_sign + """," +
                                 """s_s_c_web_server_sign2"": """ + s_s_c_web_server_sign2 + """," +
                                 """pageurl"": """ + pageurl + """}"

            ' Create the payload with the type and the extra data
            Dim extraData As New Hashtable()
            extraData.Add("type", 10)
            extraData.Add("keycaptcha_params", keycaptchaParams)

            ' Upload a CAPTCHA and poll for its status.  Put the KeyCaptcha
            ' Json payload, CAPTCHA type and desired solving timeout (in seconds)
            ' here. If solved, you'll receive a DeathByCaptcha.Captcha object.
            Dim captcha As Captcha = client.Decode(DeathByCaptcha.Client.DefaultTimeout, extraData)
            If captcha IsNot Nothing Then
                Console.WriteLine(String.Format("CAPTCHA {0:d} solved: {1}", captcha.Id,
                                                captcha.Text))

                ' Report an incorrectly solved CAPTCHA.
                ' Make sure the CAPTCHA was in fact incorrectly solved, do not
                ' just report it at random, or you might be banned as abuser.
                ' If client.Report(captcha) Then
                '    Console.WriteLine("Reported as incorrectly solved")
                ' Else
                '    Console.WriteLine("Failed reporting as incorrectly solved")
                ' End If
            End If
        End Sub
    End
        

    /*
    * Death by Captcha Node.js API keycaptcha usage example
    */

    const dbc = require('../deathbycaptcha');

    const username = 'username';     // DBC account username
    const password = 'password';     // DBC account password
    const token_from_panel = 'your-token-from-panel';   // DBC account authtoken

    // Proxy and keycaptcha token data
    const keycaptcha_params = JSON.stringify({
        'proxy': 'http://username:[email protected]:3128',
        'proxytype': 'HTTP',
        's_s_c_user_id': 'valid_UID',
        's_s_c_session_id': 'valid_session_ID',
        's_s_c_web_server_sign': 'valid_webserver_sign',
        's_s_c_web_server_sign2': 'valid_webserver_sign2',
        'pageurl': 'https://client-demo.testsite.com/test-keycaptcha'
    });

    // Death By Captcha Socket Client
    // const client = new dbc.SocketClient(username, password);
    // Death By Captcha http Client
    const client = new dbc.HttpClient(username, password);

    // To use token authentication the first parameter must be "authtoken"
    // const client = new dbc.HttpClient("authtoken", token_from_panel);

    // Get user balance
    client.get_balance((balance) => {
        console.log(balance);
    });

    // Solve captcha with type 10 & token_params extra arguments
    client.decode({extra: {type: 10, keycaptcha_params: keycaptcha_params}}, (captcha) => {

        if (captcha) {
            console.log('Captcha ' + captcha['captcha'] + ' solved: ' + captcha['text']);

            /*
            * Report an incorrectly solved CAPTCHA.
            * Make sure the CAPTCHA was in fact incorrectly solved!
            * client.report(captcha['captcha'], (result) => {
            *   console.log('Report status: ' + result);
            * });
            */
        }

    });
        

地位: OK

服务器以比平均响应时间更快的速度全面运行。
  • 平均求解时间
  • 3 秒 - Normal CAPTCHAs (1分钟。前)
  • 26 秒 - reCAPTCHA V2, V3, etc (1分钟。前)
  • 23 秒 - hCAPTCHA & 其他的 (1分钟。前)
Chrome and Firefox logos
可用的浏览器扩展名

更新

  1. Apr 26: RESOLVED - The deathbycaptcha.com website (the API remained/remains fully functional) was sporadically inaccessible due to network issues on April 25th & 26th. This situation was fully resolved and everything is back to 100%.
  2. Feb 26: NEW TYPE ADDED - Now supporting Friendly CAPTCHA!! See the details at https://deathbycaptcha.com/api/friendly
  3. Nov 22: Now supporting Amazon WAF!! See the details at https://deathbycaptcha.com/api/amazonwaf

  4. 之前的更新…

支持

我们的系统设计为完全用户友好且易于使用。如果您有任何问题,只需发送电子邮件至DBC 技术支持电子邮件com,支持代理将尽快与您联系。

现场支持

周一至周五可用(美国东部标准时间上午 10 点至下午 4 点) Live support image. Link to live support page