request recurl -s https://target/api
│
▼
┌────────────────────────────┐
│ 01 curl_engine (plain curl) │──2xx ─▶ return ✓ cheapest path
└────────────────────────────┘
│ 403 / 429 / challenge
▼
┌────────────────────────────┐
│ 02 impersonation │──2xx ─▶ return ✓ JA3/JA4 match
│ (curl-impersonate, TLS) │
└────────────────────────────┘
│ still blocked
▼
┌────────────────────────────┐
│ 03 js_preflight │──solve + replay ─▶ return
│ (recurld → Chromium) │
└────────────────────────────┘
# each arrow to the right is an exit — recurl stops at the first layer that succeeds.