
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
Official Node/TypeScript SDK for the SolveGate API (Cloudflare Turnstile + WAF solving).
Official Node/TypeScript client for the SolveGate API — clears
Cloudflare Turnstile (managed, non-interactive, invisible) and Turnstile WAF
challenge pages and returns a token. Dependency-free (global fetch, Node ≥ 18); wraps
auth, the error envelope, 429 backoff and async polling.
Built for Playwright, Puppeteer and Selenium suites, CI pipelines and synthetic monitoring against sites you own or are authorised to test.
Get 1,000 free solves — no card required →
npm install solvegate
import { SolveGate } from "solvegate";
const sg = new SolveGate(process.env.SOLVEGATE_KEY!); // sk_live_… or a free sk_test_… sandbox key
const { token, solve_ms } = await sg.solve({
gate: "turnstile", // "turnstile" | "waf"
sitekey: "0x4AAAAAAAAA_target",
url: "https://app.example.com",
});
Async submit, then poll:
const pending = await sg.solve({ gate: "waf", sitekey: "0x4…", url: "…", async: true });
const done = await sg.wait(pending.id, { timeoutMs: 60_000 });
No. Turnstile and Turnstile WAF only — not reCAPTCHA, hCaptcha, GeeTest, FunCaptcha, DataDome or AWS WAF. If your flow hits any of those, use a general-purpose service.
Cloudflare publishes dummy sitekeys that always pass, work on localhost, and cost nothing:
1x00000000000000000000AA (sitekey) with 1x0000000000000000000000000000000AA (secret).
Point staging at those and the widget stops being a problem. See
Cloudflare's testing docs.
Solving is for what test keys cannot cover — a staging environment whose Turnstile config you do not control, or monitoring that must exercise the real production path.
const sitekey = await page.locator("[data-sitekey]").first().getAttribute("data-sitekey");
const { token } = await sg.solve({ gate: "turnstile", sitekey, url: page.url() });
await page.evaluate((t) => {
document.querySelector<HTMLInputElement>('[name="cf-turnstile-response"]')!.value = t;
}, token);
See playwright-turnstile for a fixture
that handles waits, explicit-render widgets and WAF detection properly.
import { SolveGateError } from "solvegate";
try {
await sg.solve({ gate: "turnstile", sitekey, url });
} catch (e) {
if (e instanceof SolveGateError) {
console.error(e.status, e.code, e.billed); // 429 "rate_limited" false
}
}
balance_empty · pass_expired · forbidden_target · unknown_sitekey · rate_limited ·
solve_timeout. Failed solves are never billed.
Prepaid credits, one credit per successful solve: $0.40 per 1,000 on the smallest pack down to $0.075 per 1,000 on the largest. First 1,000 solves free; credits do not expire. Full ladder →
Properties you own or are explicitly authorised to test — E2E/QA, CI, uptime and synthetic monitoring, staging, anti-bot configuration testing. Third-party use in breach of a site's terms is prohibited by the Acceptable Use Policy.
Docs · API reference · OpenAPI · Status · Source
MIT
FAQs
Official Node/TypeScript SDK for the SolveGate API (Cloudflare Turnstile + WAF solving).
The npm package solvegate receives a total of 6 weekly downloads. As such, solvegate popularity was classified as not popular.
We found that solvegate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.