Kasada Solver
Local Kasada solver that fetches CT/CD/v (x-kpsdk-ct, x-kpsdk-cd, x-kpsdk-v) via a local HTTP bridge with session caching and feedback-driven invalidation. No browser required, uses Impit for Chrome TLS/JA3 on the /fp call; your client POSTs to the bridge for tokens and reports back response codes so the cache refreshes on 403/429.
Flow: POST /fs (or /full-session) with fp_url, referer, user_agent, optional proxy → bridge returns { ct, cd, v }. Use those headers on your target request; then POST /status_code with the site’s response code so the bridge can invalidate and re-solve when needed. Cache key is (proxy, fp_url, user_agent); TTL and concurrency are configurable via env.
Use case: Get valid Kasada tokens for automation or scripting without spawning a full browser per request. Run the solver once; your HTTP client or config hits localhost:6001 for tokens and feedback.
Shared so others can try it on their targets and build on it. If it works for your site or you improve it, feedback and contributions are welcome. Questions or want to collaborate? Open a GitHub issue or reach out.
What’s in this repo ( banned)
- Kasada-Solver-Standalone/: Source: Node solver (solver_api.js), Python bridge, engine, launcher. Run build_all.bat here to build the engine exe. See INSTALLATION.md inside that folder for build steps.
- docs/INTEGRATION.md: How to use the solver (request order, POST body examples).
Requirements
- Node.js 18+ and Python 3
- For building: npm, pip, PyInstaller
Quick start
- From source (dev)
- cd Kasada-Solver-Standalone → npm install → python launcher.py
- Bridge: http://localhost:6001 (use /fs or /full-session for CT).
- Build one exe (solver + bridge)
- In Kasada-Solver-Standalone, run build_all.bat.
- Copy dist/engine.exe and launcher.py to your deploy folder.
- Use with your client
- Start the launcher, then POST to http://localhost:6001/fs with JSON body fp_url, proxy, user_agent, etc. See docs/INTEGRATION.md for request order and examples.
Limitations
This solver returns only ct, cd, and v. It does not provide x-kpsdk-h or other headers some sites or newer Kasada versions may require. Sites that rely on x-kpsdk-h or updated Kasada scripts may not accept tokens from this solver. Compatibility depends on the target site and Kasada version. Try it on your endpoint; results may vary.