kelvinzer0/curl-impersonate-php
PHP wrapper for curl-impersonate that makes HTTP requests mimic real browser TLS and HTTP/2 fingerprints, helping bypass bot detection and anti-scraping checks while keeping the familiar cURL-style API.
Bottom line: viable as a narrow, purpose-built transport for a small number of targets that are TLS-fingerprint-blocked, not as a general HTTP client. It is a thin wrapper, not a Laravel package — budget for building and owning the integration layer yourself.
Architecture fit
ServiceProvider, config publishing, facade, or contracts. It will not slot into Laravel's Http facade / Guzzle pipeline; expect to write an adapter that exposes a clean internal interface (e.g. FingerprintClient::get()) and hide the package behind it.curl-impersonate CLI via proc_open/exec, or (b) linking a patched libcurl through FFI or a compiled curl_impersonate PHP extension. Confirm before any design work.Integration feasibility
Technical risk
Key questions to answer in the spike
curl_multi/concurrency support, or is it strictly one-request-per-process?Stack fit
App\Support\Http\FingerprintTransport implementing an internal interface, resolved through the container. Two concrete implementations — fingerprint transport and standard Guzzle — selected per target via config/feature flag.Http facade for everything else. Restrict fingerprint transport to the specific integrations that demonstrably fail JA3/JA4 checks.Migration path
healthcheck that fails fast if the binary or extension is absent.Compatibility
Sequencing Spike → transport decision → image + CI → adapter + fallback → flagged rollout → observability → documentation. Do not parallelise the image work with the adapter work; the transport choice determines the adapter shape.
Maintenance
Support
Scaling
curl_multi or a persistent worker pool for anything beyond low volume.Failure modes
Ramp-up
How can I help you explore Laravel packages today?