curl-cffi
libcurl ffi bindings for Python, with impersonation support.
Install
curl-cffi on PyPI
pip
pip install curl-cffiuv
uv add curl-cffipoetry
poetry add curl-cffiPackage facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — cffi, certifi |
| Maintenance | actively maintained — 12 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: curl_cffi-0.16.0-cp310-abi3-macosx_10_9_x86_64.whl; curl_cffi-0.16.0-cp310-abi3-macosx_11_0_arm64.whl; curl_cffi-0.16.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; curl_cffi-0.16.0-cp310-abi3-manylinux2014_i686.manylinux_2_17_i686.whl; curl_cffi-0.16.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; curl_cffi-0.16.0-cp310-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl; curl_cffi-0.16.0-cp310-abi3-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl; curl_cffi-0.16.0-cp310-abi3-musllinux_1_2_aarch64.whl; curl_cffi-0.16.0-cp310-abi3-musllinux_1_2_x86_64.whl; curl_cffi-0.16.0-cp310-abi3-win_amd64.whl; curl_cffi-0.16.0-cp310-abi3-win_arm64.whl; curl_cffi-0.16.0-cp313-abi3-android_24_arm64_v8a.whl; curl_cffi-0.16.0-cp314-cp314t-macosx_10_15_x86_64.whl; curl_cffi-0.16.0-cp314-cp314t-macosx_11_0_arm64.whl; curl_cffi-0.16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; curl_cffi-0.16.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; curl_cffi-0.16.0-cp314-cp314t-musllinux_1_2_aarch64.whl; curl_cffi-0.16.0-cp314-cp314t-musllinux_1_2_x86_64.whl; curl_cffi-0.16.0-cp314-cp314t-win_amd64.whl; curl_cffi-0.16.0-cp314-cp314t-win_arm64.whl
About curl-cffi
from the package's own PyPI description — quoted content, verbatim
curl_cffi
PyPI Downloads (image) PyPI - Python Version (image) PyPI version (image) Generic badge (image) Generic badge (image)
Python binding for curl-impersonate fork via cffi. For commercial support, visit impersonate.pro.
curl_cffi is the most popular Python binding for curl. Unlike other pure
python http clients like httpx or requests, curl_cffi can impersonate
browsers' TLS/JA3 and HTTP/2 fingerprints. If you are blocked by some
website for no obvious reason, you can give curl_cffi a try.
Python 3.10 is the minimum supported version since v0.14.
Recent highlights
- 💨 http/3 fingerprints and UDP socks5...
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
curl_cffi provides Python bindings to libcurl with browser TLS/JA3 and HTTP/2 fingerprint impersonation, enabling requests that evade detection by mimicking specific browser signatures.
Medium install friction due to precompiled binary wheels across many platforms (cp310-abi3 through cp314-cp314t, covering Linux, macOS, Windows, and Android). Active maintenance with recent release 12 days ago and 6306 GitHub stars indicate solid community support.
MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects without licensing concerns.
Usage
pip install curl_cffi
import curl_cffi
r = curl_cffi.get("https://example.com", impersonate="chrome")
print(r.json())
Requires Python 3.10 or later; precompiled wheels available for most platforms but may require manual compilation on unsupported architectures.
Verdict: curl_cffi is an actively maintained, MIT-licensed HTTP client with strong fingerprint impersonation capabilities for evading bot detection. Medium install friction from binary wheels is offset by broad platform support and no known vulnerabilities. Suitable for web scraping and bot-detection bypass scenarios where requests or httpx fall short.
Needs verification
- Whether precompiled wheels cover all target deployment environments (e.g., custom Linux distributions or older glibc versions).
- Performance characteristics and resource overhead of fingerprint impersonation compared to standard HTTP clients.
- Whether HTTP/3 and UDP SOCKS5 proxy support (v0.15.0+) are production-ready or still experimental.
Similar packages
permissive · top 1,000 on PyPI
requestspermissive · top 100 on PyPI
python-telegram-botcopyleft · top 1,000 on PyPI
requests-toolbeltpermissive · top 1,000 on PyPI
ua-parserpermissive · top 1,000 on PyPI
PySockspermissive · top 1,000 on PyPI
socksiopermissive · top 1,000 on PyPI
httpxpermissive · top 100 on PyPI
xgboostpermissive · top 1,000 on PyPI
charset-normalizerpermissive · top 100 on PyPI