Enable escalation for a stubborn endpoint
Some endpoints defeat TLS impersonation with a JavaScript challenge. recurl’s js_preflight layer runs headless Chromium via the recurld daemon, solves the challenge, and replays the request. This guide tunes that layer for a stubborn host.
- 1
Skip straight to the JS layer
When you already know impersonation will not clear the challenge, --recurl-js drives the request directly to the headless-browser preflight instead of walking the whole ladder.
recurl --recurl-js https://hard-endpoint.com/data
- 2
Wait for the right signal
If the challenge resolves asynchronously, wait for a CSS selector to appear before capturing cookies, so recurl replays only after the page is ready.
recurl --recurl-js --recurl-js-wait "#content" https://hard-endpoint.com/data
- 3
Raise the timeout for slow challenges
Slow challenge scripts may exceed the default 30s preflight budget. Raise it so the preflight has room to finish.
recurl --recurl-js --recurl-js-timeout 60000 https://hard-endpoint.com/data
- 4
Return rendered DOM when replay is not enough
If the data you need is only in the rendered page, ask for the rendered DOM instead of a curl replay.
recurl --recurl-js --recurl-js-rendered https://hard-endpoint.com/data
# note
The recurld daemon keeps a warm Chromium instance so repeated JS preflights are fast. It shuts itself down after a configurable idle timeout.
Next steps
Read the escalation architecture, see the full feature surface, or browse more guides.