skillfed

impit

A library for making HTTP requests through browser impersonation

impit v0.13.2 2.4M downloads/30d#3,097 on PyPI569
Permissive license Active released

What it is and what it does

Impit is a Python HTTP client that mimics browser behavior by spoofing TLS fingerprints and HTTP headers, making requests appear to come from real browsers rather than automated tools. It wraps the underlying impit library (written in Rust) and exposes an AsyncClient with an API modeled on httpx, so you can often use it as a drop-in replacement. The package is in Beta and ships with prebuilt wheels for most platforms, though some configurations (Linux arm64 with glibc) still require building from source.

The main use case is circumventing detection systems that block or throttle requests from non-browser clients. Since it maintains httpx compatibility, you can integrate it into existing codebases with minimal refactoring. The implementation is partial—not all httpx features are supported yet—so you may need to check the documentation to confirm your specific use case works.

Use it for:

  • Web scraping sites that block non-browser user agents or detect automated requests via TLS fingerprinting
  • Testing web applications that enforce browser-specific behavior or security checks
  • Integrating browser-like HTTP clients into data collection pipelines without rewriting existing httpx code
  • Bypassing basic bot detection in APIs that rely on TLS fingerprint or header analysis

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Impit provides Python bindings to make HTTP requests with browser-like TLS fingerprints and headers, using an API compatible with httpx or requests.

Yes, if you need browser impersonation for HTTP requests and can target Python 3.10+. Active maintenance, no known vulnerabilities, permissive license, and broad platform support make it low-risk. The partial httpx compatibility means you should verify your specific features work before committing to production, but the recent release cadence and repository activity suggest ongoing development.

Install

impit on PyPI

pip

pip install impit

uv

uv add impit

poetry

poetry add impit

Installing impit

Before you install

Medium install friction due to compiled bindings, but prebuilt wheels cover most common platforms (Linux x86_64 glibc/musl, macOS x86_64/arm64, Windows x86_64). Active maintenance with recent release (9 days old) and 569 repository stars.

License in practice

Permissive license (Apache Software License per classifiers) means you can use this in commercial and proprietary projects without copyleft obligations.

Quickstart

pip install impit

import asyncio
from impit import AsyncClient

async def main():
    client = AsyncClient(http3=True, browser='firefox')
    response = await client.get('https://example.com')
    print(response.status_code)

asyncio.run(main())

Requires Python 3.10 or later; Linux arm64 with glibc requires building from source (prebuilt wheels not yet available on PyPI).

Verify before relying

  • Which specific TLS fingerprints and browser profiles are supported beyond 'firefox'
  • Whether all httpx features are implemented or only a subset
  • Performance overhead compared to plain httpx or requests
  • Whether HTTP/2 and HTTP/3 are both fully supported

Package facts

License not declared (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 9 days since the last release
Last repo commit
First released
Downloads 2,377,457/month — #3,097 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: impit-0.13.2-cp310-cp310-macosx_10_12_x86_64.whl; impit-0.13.2-cp310-cp310-macosx_11_0_arm64.whl; impit-0.13.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; impit-0.13.2-cp310-cp310-manylinux_2_28_aarch64.whl; impit-0.13.2-cp310-cp310-musllinux_1_2_aarch64.whl; impit-0.13.2-cp310-cp310-musllinux_1_2_x86_64.whl; impit-0.13.2-cp310-cp310-win_amd64.whl; impit-0.13.2-cp311-cp311-macosx_10_12_x86_64.whl; impit-0.13.2-cp311-cp311-macosx_11_0_arm64.whl; impit-0.13.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; impit-0.13.2-cp311-cp311-manylinux_2_28_aarch64.whl; impit-0.13.2-cp311-cp311-musllinux_1_2_aarch64.whl; impit-0.13.2-cp311-cp311-musllinux_1_2_x86_64.whl; impit-0.13.2-cp311-cp311-win_amd64.whl; impit-0.13.2-cp312-cp312-macosx_10_12_x86_64.whl; impit-0.13.2-cp312-cp312-macosx_11_0_arm64.whl; impit-0.13.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; impit-0.13.2-cp312-cp312-manylinux_2_28_aarch64.whl; impit-0.13.2-cp312-cp312-musllinux_1_2_aarch64.whl; impit-0.13.2-cp312-cp312-musllinux_1_2_x86_64.whl

Keywords: apify, http, requests, browser, impersonation

Development Status :: 4 - BetaEnvironment :: ConsoleIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Libraries

Tags

browser impersonation httptls fingerprint spoofinghttpx compatible clientbypass http detectionbrowser-like requests library
browser-impersonationtls-fingerprintweb-scraping

More Libraries packages