{"id":24150,"date":"2026-07-15T11:07:32","date_gmt":"2026-07-15T11:07:32","guid":{"rendered":"https:\/\/capskip.com\/captcha-solving-sdk\/"},"modified":"2026-07-16T07:32:13","modified_gmt":"2026-07-16T07:32:13","slug":"captcha-solving-sdk","status":"publish","type":"page","link":"https:\/\/capskip.com\/zh\/captcha-solving-sdk\/","title":{"rendered":"\u9a8c\u8bc1\u7801\u8bc6\u522b SDK"},"content":{"rendered":"\t<div class=\"capskip-sdks\" id=\"capskip-sdks\">\n\n\t\t<header class=\"csk-hero\">\n\t\t\t<span class=\"csk-eyebrow\">CapSkip SDKs<\/span>\n\t\t\t<h1>Captcha solving SDKs for every stack<\/h1>\n\t\t\t<p class=\"csk-lead\">\n\t\t\t\tOne local solver, four official clients. CapSkip runs on your machine and exposes a\n\t\t\t\tstandard captcha-solver HTTP API, and each SDK wraps it with clean method names so you\n\t\t\t\tcan solve image captchas, reCAPTCHA v2 and v3, Cloudflare Turnstile, and GeeTest v3\n\t\t\t\tfrom your own code.\n\t\t\t<\/p>\n\t\t\t<div class=\"csk-hero-cta\">\n\t\t\t\t<a class=\"csk-btn csk-btn-primary\" href=\"https:\/\/capskip.com\/download\/CapSkipInstaller.msi\" rel=\"noopener\" target=\"_blank\">Download CapSkip<\/a>\n\t\t\t\t<a class=\"csk-btn csk-btn-ghost\" href=\"https:\/\/capskip.com\/api-docs\/\" rel=\"noopener\" target=\"_blank\">Read the API docs<\/a>\n\t\t\t<\/div>\n\t\t<\/header>\n\n\t\t<section class=\"csk-langs\" aria-label=\"Available SDKs\">\n\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\tclass=\"csk-lang-card\"\n\t\t\t\t\t\tdata-target=\"python\"\n\t\t\t\t\t\tstyle=\"--csk-icon: #3776ab;\">\n\t\t\t\t\t<span class=\"csk-lang-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M11.9 0C5.9 0 6.3 2.6 6.3 2.6l.01 2.7h5.7v.8H4.05S.24 5.6.24 11.7c0 6.1 3.32 5.9 3.32 5.9h1.99v-2.8s-.11-3.3 3.25-3.3h5.65s3.16.05 3.16-3.06V3.1S18.03 0 11.9 0zM8.76 1.8a1.02 1.02 0 1 1 0 2.05 1.02 1.02 0 0 1 0-2.05z\"\/><path d=\"M12.1 24c6 0 5.6-2.6 5.6-2.6l-.01-2.7h-5.7v-.8h8v-.01s3.81.44 3.81-5.66c0-6.1-3.32-5.9-3.32-5.9h-1.99v2.8s.11 3.3-3.25 3.3H9.6s-3.16-.05-3.16 3.06v5.14S5.97 24 12.1 24zm3.14-1.8a1.02 1.02 0 1 1 0-2.05 1.02 1.02 0 0 1 0 2.05z\"\/><\/svg><\/span>\n\t\t\t\t\t<span class=\"csk-lang-text\">\n\t\t\t\t\t\t<span class=\"csk-lang-name\">Python<\/span>\n\t\t\t\t\t\t<span class=\"csk-lang-tag\">Python 3.10+<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\tclass=\"csk-lang-card\"\n\t\t\t\t\t\tdata-target=\"node\"\n\t\t\t\t\t\tstyle=\"--csk-icon: #3c873a;\">\n\t\t\t\t\t<span class=\"csk-lang-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 1.85a1.1 1.1 0 0 0-.55.15L3.3 6.72a1.1 1.1 0 0 0-.55.95v8.66c0 .4.21.75.55.95l8.15 4.72c.34.2.76.2 1.1 0l8.15-4.72c.34-.2.55-.55.55-.95V7.67c0-.4-.21-.75-.55-.95L12.55 2A1.1 1.1 0 0 0 12 1.85zm2.02 6.6c2.32 0 3.66.98 3.66 2.64 0 .28-.22.5-.5.5h-.02c-.25 0-.46-.19-.49-.44-.13-.9-.83-1.34-2.65-1.34-1.83 0-2.4.42-2.4 1.16 0 .53.23.77 2.86 1.12 2.9.38 3.86.95 3.86 2.5 0 1.66-1.4 2.6-3.82 2.6-3.04 0-3.96-1.32-4.13-2.4a.5.5 0 0 1 .49-.58h.03c.24 0 .45.17.49.41.19 1.02.75 1.62 3.12 1.62 2.02 0 2.6-.48 2.6-1.28 0-.6-.24-.9-2.9-1.22-2.68-.32-3.82-.86-3.82-2.4 0-1.53 1.32-2.44 3.62-2.44z\"\/><\/svg><\/span>\n\t\t\t\t\t<span class=\"csk-lang-text\">\n\t\t\t\t\t\t<span class=\"csk-lang-name\">Node.js<\/span>\n\t\t\t\t\t\t<span class=\"csk-lang-tag\">Node.js 18+<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\tclass=\"csk-lang-card\"\n\t\t\t\t\t\tdata-target=\"php\"\n\t\t\t\t\t\tstyle=\"--csk-icon: #777bb4;\">\n\t\t\t\t\t<span class=\"csk-lang-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 5.4C5.4 5.4 0 8.35 0 12s5.4 6.6 12 6.6 12-2.95 12-6.6-5.4-6.6-12-6.6zM7.3 14.7H6.1l-.35 1.8H4.6l1.15-6h2.3c.98 0 1.7.26 2.13.77.42.5.55 1.2.37 2.1-.18.9-.55 1.6-1.1 2.05-.55.45-1.35.68-2.3.68zm.62-3.15c-.09.45-.26.77-.5.96-.24.19-.6.28-1.08.28h-.72l.42-2.2h.87c.5 0 .84.1 1 .3.16.2.2.5.11.66zM14.1 11.4c.42.5.55 1.2.37 2.1-.18.9-.55 1.6-1.1 2.05-.55.45-1.35.68-2.3.68h-1.2l-.35 1.8H8.4l1.15-6h2.42c.98 0 1.7.26 2.13.77zm-1.6 1.66c-.09.45-.26.77-.5.96-.24.19-.6.28-1.08.28h-.72l.42-2.2h.87c.5 0 .84.1 1 .3.16.2.2.4.11.66zM19.8 8.7l-.35 1.8h1.02c.5 0 .83.09.98.26.15.17.18.45.09.86l-.63 3.28h1.32l.66-3.44c.18-.94.05-1.6-.38-2-.44-.4-1.18-.6-2.24-.6h-1.15l.35-1.8h-1.3l-1.15 6h1.3l.8-4.16z\"\/><\/svg><\/span>\n\t\t\t\t\t<span class=\"csk-lang-text\">\n\t\t\t\t\t\t<span class=\"csk-lang-name\">PHP<\/span>\n\t\t\t\t\t\t<span class=\"csk-lang-tag\">PHP 8.0+<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\tclass=\"csk-lang-card\"\n\t\t\t\t\t\tdata-target=\"dotnet\"\n\t\t\t\t\t\tstyle=\"--csk-icon: #512bd4;\">\n\t\t\t\t\t<span class=\"csk-lang-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M1.6 9.4h1.02v5.2H1.6zM4.5 9.4h1.1l2.55 3.55V9.4h1v5.2h-1.05L5.5 11v3.6h-1zM11.4 9.4h3.2v.95h-2.16v1.2h2v.94h-2v1.16h2.24v.95H11.4zM15.4 9.4h4v.95h-1.48v4.25h-1.05v-4.25H15.4zM20 10.35a.62.62 0 1 1 0-1.24.62.62 0 0 1 0 1.24zM22.4 13.6a.7.7 0 1 1 0 1.4.7.7 0 0 1 0-1.4z\"\/><\/svg><\/span>\n\t\t\t\t\t<span class=\"csk-lang-text\">\n\t\t\t\t\t\t<span class=\"csk-lang-name\">.NET \/ C#<\/span>\n\t\t\t\t\t\t<span class=\"csk-lang-tag\">.NET Standard 2.0+<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t<\/button>\n\t\t\t\t\t<\/section>\n\n\t\t<section class=\"csk-captchas\" aria-label=\"Supported captcha types\">\n\t\t\t<h2 class=\"csk-section-title\">Every SDK solves the same set<\/h2>\n\t\t\t<div class=\"csk-captcha-grid\">\n\t\t\t\t\t\t\t\t\t<div class=\"csk-captcha-card\">\n\t\t\t\t\t\t<h3>Image CAPTCHA<\/h3>\n\t\t\t\t\t\t<p>Distorted text read straight from an image, URL, or base64 string.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"csk-captcha-card\">\n\t\t\t\t\t\t<h3>reCAPTCHA v2<\/h3>\n\t\t\t\t\t\t<p>Checkbox, invisible, and Enterprise variants.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"csk-captcha-card\">\n\t\t\t\t\t\t<h3>reCAPTCHA v3<\/h3>\n\t\t\t\t\t\t<p>Score based, with action and Enterprise support.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"csk-captcha-card\">\n\t\t\t\t\t\t<h3>Cloudflare Turnstile<\/h3>\n\t\t\t\t\t\t<p>Widget tokens and full challenge-page tokens.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"csk-captcha-card\">\n\t\t\t\t\t\t<h3>GeeTest v3<\/h3>\n\t\t\t\t\t\t<p>Slide puzzles, returning challenge, validate, and seccode.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/section>\n\n\t\t<section class=\"csk-detail\" aria-label=\"SDK usage\">\n\t\t\t<div class=\"csk-tabs\" role=\"tablist\">\n\t\t\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\tclass=\"csk-tab is-active\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected=\"true\"\n\t\t\t\t\t\t\tdata-target=\"python\"\n\t\t\t\t\t\t\tstyle=\"--csk-icon: #3776ab;\">\n\t\t\t\t\t\t<span class=\"csk-tab-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M11.9 0C5.9 0 6.3 2.6 6.3 2.6l.01 2.7h5.7v.8H4.05S.24 5.6.24 11.7c0 6.1 3.32 5.9 3.32 5.9h1.99v-2.8s-.11-3.3 3.25-3.3h5.65s3.16.05 3.16-3.06V3.1S18.03 0 11.9 0zM8.76 1.8a1.02 1.02 0 1 1 0 2.05 1.02 1.02 0 0 1 0-2.05z\"\/><path d=\"M12.1 24c6 0 5.6-2.6 5.6-2.6l-.01-2.7h-5.7v-.8h8v-.01s3.81.44 3.81-5.66c0-6.1-3.32-5.9-3.32-5.9h-1.99v2.8s.11 3.3-3.25 3.3H9.6s-3.16-.05-3.16 3.06v5.14S5.97 24 12.1 24zm3.14-1.8a1.02 1.02 0 1 1 0-2.05 1.02 1.02 0 0 1 0 2.05z\"\/><\/svg><\/span>\n\t\t\t\t\t\tPython\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\tclass=\"csk-tab\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected=\"false\"\n\t\t\t\t\t\t\tdata-target=\"node\"\n\t\t\t\t\t\t\tstyle=\"--csk-icon: #3c873a;\">\n\t\t\t\t\t\t<span class=\"csk-tab-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 1.85a1.1 1.1 0 0 0-.55.15L3.3 6.72a1.1 1.1 0 0 0-.55.95v8.66c0 .4.21.75.55.95l8.15 4.72c.34.2.76.2 1.1 0l8.15-4.72c.34-.2.55-.55.55-.95V7.67c0-.4-.21-.75-.55-.95L12.55 2A1.1 1.1 0 0 0 12 1.85zm2.02 6.6c2.32 0 3.66.98 3.66 2.64 0 .28-.22.5-.5.5h-.02c-.25 0-.46-.19-.49-.44-.13-.9-.83-1.34-2.65-1.34-1.83 0-2.4.42-2.4 1.16 0 .53.23.77 2.86 1.12 2.9.38 3.86.95 3.86 2.5 0 1.66-1.4 2.6-3.82 2.6-3.04 0-3.96-1.32-4.13-2.4a.5.5 0 0 1 .49-.58h.03c.24 0 .45.17.49.41.19 1.02.75 1.62 3.12 1.62 2.02 0 2.6-.48 2.6-1.28 0-.6-.24-.9-2.9-1.22-2.68-.32-3.82-.86-3.82-2.4 0-1.53 1.32-2.44 3.62-2.44z\"\/><\/svg><\/span>\n\t\t\t\t\t\tNode.js\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\tclass=\"csk-tab\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected=\"false\"\n\t\t\t\t\t\t\tdata-target=\"php\"\n\t\t\t\t\t\t\tstyle=\"--csk-icon: #777bb4;\">\n\t\t\t\t\t\t<span class=\"csk-tab-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M12 5.4C5.4 5.4 0 8.35 0 12s5.4 6.6 12 6.6 12-2.95 12-6.6-5.4-6.6-12-6.6zM7.3 14.7H6.1l-.35 1.8H4.6l1.15-6h2.3c.98 0 1.7.26 2.13.77.42.5.55 1.2.37 2.1-.18.9-.55 1.6-1.1 2.05-.55.45-1.35.68-2.3.68zm.62-3.15c-.09.45-.26.77-.5.96-.24.19-.6.28-1.08.28h-.72l.42-2.2h.87c.5 0 .84.1 1 .3.16.2.2.5.11.66zM14.1 11.4c.42.5.55 1.2.37 2.1-.18.9-.55 1.6-1.1 2.05-.55.45-1.35.68-2.3.68h-1.2l-.35 1.8H8.4l1.15-6h2.42c.98 0 1.7.26 2.13.77zm-1.6 1.66c-.09.45-.26.77-.5.96-.24.19-.6.28-1.08.28h-.72l.42-2.2h.87c.5 0 .84.1 1 .3.16.2.2.4.11.66zM19.8 8.7l-.35 1.8h1.02c.5 0 .83.09.98.26.15.17.18.45.09.86l-.63 3.28h1.32l.66-3.44c.18-.94.05-1.6-.38-2-.44-.4-1.18-.6-2.24-.6h-1.15l.35-1.8h-1.3l-1.15 6h1.3l.8-4.16z\"\/><\/svg><\/span>\n\t\t\t\t\t\tPHP\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button type=\"button\"\n\t\t\t\t\t\t\tclass=\"csk-tab\"\n\t\t\t\t\t\t\trole=\"tab\"\n\t\t\t\t\t\t\taria-selected=\"false\"\n\t\t\t\t\t\t\tdata-target=\"dotnet\"\n\t\t\t\t\t\t\tstyle=\"--csk-icon: #512bd4;\">\n\t\t\t\t\t\t<span class=\"csk-tab-icon\"><svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M1.6 9.4h1.02v5.2H1.6zM4.5 9.4h1.1l2.55 3.55V9.4h1v5.2h-1.05L5.5 11v3.6h-1zM11.4 9.4h3.2v.95h-2.16v1.2h2v.94h-2v1.16h2.24v.95H11.4zM15.4 9.4h4v.95h-1.48v4.25h-1.05v-4.25H15.4zM20 10.35a.62.62 0 1 1 0-1.24.62.62 0 0 1 0 1.24zM22.4 13.6a.7.7 0 1 1 0 1.4.7.7 0 0 1 0-1.4z\"\/><\/svg><\/span>\n\t\t\t\t\t\t.NET \/ C#\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<div class=\"csk-panel is-active\"\n\t\t\t\t\tid=\"csk-panel-python\"\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tstyle=\"--csk-icon: #3776ab;\">\n\n\t\t\t\t\t<div class=\"csk-panel-head\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h2>Python SDK<\/h2>\n\t\t\t\t\t\t\t<p>Python 3.10+<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"csk-panel-links\">\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/pypi.org\/project\/capskip\/\" rel=\"noopener nofollow\" target=\"_blank\">PyPI<\/a>\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/github.com\/capskip\/capskip-python\" rel=\"noopener nofollow\" target=\"_blank\">GitHub<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">1<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Install the SDK<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-bash\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Terminal<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>pip install capskip<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">2<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Solve your first captcha<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-python\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Python<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>from capskip import CapSkip\n\nsolver = CapSkip(host=&quot;127.0.0.1&quot;, port=8080)\n\nresult = solver.recaptcha(\n    sitekey=&quot;YOUR_SITEKEY&quot;,\n    url=&quot;https:\/\/example.com\/page-with-recaptcha&quot;,\n)\n\nprint(result[&quot;code&quot;])  # g-recaptcha-response token<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">3<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Go further<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-python\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Python<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>import asyncio\nfrom capskip import AsyncCapSkip\n\nasync def main():\n    solver = AsyncCapSkip()\n    r1, r2 = await asyncio.gather(\n        solver.recaptcha(sitekey=&quot;...&quot;, url=&quot;https:\/\/a.com&quot;),\n        solver.turnstile(sitekey=&quot;...&quot;, url=&quot;https:\/\/b.com&quot;),\n    )\n    print(r1[&quot;code&quot;], r2[&quot;code&quot;])\n\nasyncio.run(main())<\/code><\/pre><\/div>\t\t\t\t\t\t\t<a class=\"csk-btn csk-btn-primary csk-btn-sm\" href=\"https:\/\/github.com\/capskip\/capskip-python#documentation\" rel=\"noopener nofollow\" target=\"_blank\">\n\t\t\t\t\t\t\t\tFull tutorial and API reference on GitHub &rarr;\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"csk-panel\"\n\t\t\t\t\tid=\"csk-panel-node\"\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tstyle=\"--csk-icon: #3c873a;\">\n\n\t\t\t\t\t<div class=\"csk-panel-head\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h2>Node.js SDK<\/h2>\n\t\t\t\t\t\t\t<p>Node.js 18+<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"csk-panel-links\">\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/www.npmjs.com\/package\/capskip\" rel=\"noopener nofollow\" target=\"_blank\">npm<\/a>\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/github.com\/capskip\/capskip-node\" rel=\"noopener nofollow\" target=\"_blank\">GitHub<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">1<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Install the SDK<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-bash\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Terminal<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>npm install capskip<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">2<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Solve your first captcha<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-javascript\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">JavaScript<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>const { CapSkip } = require(&#039;capskip&#039;);\n\nconst solver = new CapSkip({ host: &#039;127.0.0.1&#039;, port: 8080 });\n\n(async () =&gt; {\n  const result = await solver.recaptcha(\n    &#039;YOUR_SITEKEY&#039;,\n    &#039;https:\/\/example.com\/page-with-recaptcha&#039;,\n  );\n\n  console.log(result.code); \/\/ g-recaptcha-response token\n})();<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">3<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Go further<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-javascript\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">JavaScript<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>const { CapSkip } = require(&#039;capskip&#039;);\n\nconst solver = new CapSkip();\n\nconst [r1, r2] = await Promise.all([\n  solver.recaptcha(&#039;...&#039;, &#039;https:\/\/a.com&#039;),\n  solver.turnstile(&#039;...&#039;, &#039;https:\/\/b.com&#039;),\n]);\n\nconsole.log(r1.code, r2.code);<\/code><\/pre><\/div>\t\t\t\t\t\t\t<a class=\"csk-btn csk-btn-primary csk-btn-sm\" href=\"https:\/\/github.com\/capskip\/capskip-node#documentation\" rel=\"noopener nofollow\" target=\"_blank\">\n\t\t\t\t\t\t\t\tFull tutorial and API reference on GitHub &rarr;\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"csk-panel\"\n\t\t\t\t\tid=\"csk-panel-php\"\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tstyle=\"--csk-icon: #777bb4;\">\n\n\t\t\t\t\t<div class=\"csk-panel-head\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h2>PHP SDK<\/h2>\n\t\t\t\t\t\t\t<p>PHP 8.0+<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"csk-panel-links\">\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/packagist.org\/packages\/capskip\/capskip\" rel=\"noopener nofollow\" target=\"_blank\">Packagist<\/a>\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/github.com\/capskip\/capskip-php\" rel=\"noopener nofollow\" target=\"_blank\">GitHub<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">1<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Install the SDK<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-bash\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Terminal<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>composer require capskip\/capskip<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">2<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Solve your first captcha<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-php\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">PHP<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>&lt;?php\n\nrequire &#039;vendor\/autoload.php&#039;;\n\nuse CapSkip\\CapSkip;\n\n$solver = new CapSkip([&#039;host&#039; =&gt; &#039;127.0.0.1&#039;, &#039;port&#039; =&gt; 8080]);\n\n$result = $solver-&gt;recaptcha(\n    &#039;YOUR_SITEKEY&#039;,\n    &#039;https:\/\/example.com\/page-with-recaptcha&#039;\n);\n\necho $result[&#039;code&#039;]; \/\/ g-recaptcha-response token<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">3<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Go further<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-php\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">PHP<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>&lt;?php\n\/\/ reCAPTCHA v3\n$v3 = $solver-&gt;recaptcha(&#039;...&#039;, &#039;https:\/\/example.com&#039;, [\n    &#039;version&#039; =&gt; &#039;v3&#039;,\n    &#039;action&#039;  =&gt; &#039;submit&#039;,\n    &#039;score&#039;   =&gt; 0.7,\n]);\n\necho $v3[&#039;code&#039;];<\/code><\/pre><\/div>\t\t\t\t\t\t\t<a class=\"csk-btn csk-btn-primary csk-btn-sm\" href=\"https:\/\/github.com\/capskip\/capskip-php#documentation\" rel=\"noopener nofollow\" target=\"_blank\">\n\t\t\t\t\t\t\t\tFull tutorial and API reference on GitHub &rarr;\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"csk-panel\"\n\t\t\t\t\tid=\"csk-panel-dotnet\"\n\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\tstyle=\"--csk-icon: #512bd4;\">\n\n\t\t\t\t\t<div class=\"csk-panel-head\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h2>.NET \/ C# SDK<\/h2>\n\t\t\t\t\t\t\t<p>.NET Standard 2.0+<\/p>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<div class=\"csk-panel-links\">\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/www.nuget.org\/packages\/CapSkip\" rel=\"noopener nofollow\" target=\"_blank\">NuGet<\/a>\n\t\t\t\t\t\t\t<a class=\"csk-pill\" href=\"https:\/\/github.com\/capskip\/capskip-dotnet\" rel=\"noopener nofollow\" target=\"_blank\">GitHub<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">1<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Install the SDK<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-bash\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">Terminal<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>dotnet add package CapSkip<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">2<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Solve your first captcha<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-csharp\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">C#<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>using CapSkip;\n\nvar solver = new CapSkipClient(host: &quot;127.0.0.1&quot;, port: 8080);\n\nvar result = await solver.RecaptchaAsync(\n    &quot;YOUR_SITEKEY&quot;,\n    &quot;https:\/\/example.com\/page-with-recaptcha&quot;);\n\nConsole.WriteLine(result.Code); \/\/ g-recaptcha-response token<\/code><\/pre><\/div>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<div class=\"csk-step\">\n\t\t\t\t\t\t<span class=\"csk-step-num\">3<\/span>\n\t\t\t\t\t\t<div class=\"csk-step-body\">\n\t\t\t\t\t\t\t<h3>Go further<\/h3>\n\t\t\t\t\t\t\t<div class=\"csk-code csk-code-csharp\"><div class=\"csk-code-bar\"><span class=\"csk-code-lang\">C#<\/span><button type=\"button\" class=\"csk-copy\" aria-label=\"Copy code\">Copy<\/button><\/div><pre><code>using CapSkip;\n\nvar solver = new CapSkipClient();\n\n\/\/ reCAPTCHA v3\nvar v3 = await solver.RecaptchaAsync(&quot;...&quot;, &quot;https:\/\/example.com&quot;,\n    new Dictionary&lt;string, object?&gt;\n    {\n        [&quot;version&quot;] = &quot;v3&quot;,\n        [&quot;action&quot;]  = &quot;submit&quot;,\n        [&quot;score&quot;]   = 0.7,\n    });\n\nConsole.WriteLine(v3.Code);<\/code><\/pre><\/div>\t\t\t\t\t\t\t<a class=\"csk-btn csk-btn-primary csk-btn-sm\" href=\"https:\/\/github.com\/capskip\/capskip-dotnet#documentation\" rel=\"noopener nofollow\" target=\"_blank\">\n\t\t\t\t\t\t\t\tFull tutorial and API reference on GitHub &rarr;\n\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/section>\n\t<\/div>\n\t\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-24150","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/comments?post=24150"}],"version-history":[{"count":1,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24150\/revisions"}],"predecessor-version":[{"id":24188,"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/pages\/24150\/revisions\/24188"}],"wp:attachment":[{"href":"https:\/\/capskip.com\/zh\/wp-json\/wp\/v2\/media?parent=24150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}