Skip to content
recurl_ $install

← home · guides · # advanced

Advanced 7 min read

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. 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. 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. 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. 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.