Metadata-Version: 2.4
Name: impit
Version: 0.5.3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Summary: A library for making HTTP requests through browser impersonation
Keywords: apify,http,requests,browser,impersonation
Author: Jindřich Bär
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Homepage, https://apify.github.io/impit/
Project-URL: Apify homepage, https://apify.com
Project-URL: Changelog, https://github.com/apify/impit/blob/master/impit-python/CHANGELOG.md
Project-URL: Documentation, https://apify.github.io/impit/
Project-URL: Issue tracker, https://github.com/apify/impit/issues
Project-URL: Repository, https://github.com/apify/impit

# `impit` for Python

`impit` is a Python package that provides bindings for the [`impit`](https://github.com/apify/impit) library.

It allows you to switch the TLS fingerprints and the HTTP headers of your requests, while still using the same API as `httpx` or `requests`.

## Installation

```bash
pip install impit
```

### Compatibility

| Operating System | Architecture | libc implementation | Prebuilt wheels available on PyPI |
|--|--|--|--|
| Linux | x86_64 | glibc | ✅ |
| Linux | x86_64 | musl | ✅ |
| macOS | x86_64 | N/A | ✅ |
| Windows | x86_64 | N/A | ✅ |
| macOS | arm64 | N/A | ✅ |
| Windows | arm64 | N/A | ✅ |
| Linux | arm64 | musl | ✅ |
| Linux | arm64 | glibc | ❌* |

*The prebuilt binaries for Linux on arm64 with `glibc` are WIP and not available as prebuilt wheels on PyPI yet. You can build the package from sources in this repository.

## Usage

```python
import asyncio
from impit import AsyncClient

async def main():
    impit = AsyncClient(http3=True, browser='firefox')

    response = await impit.get(
        "https://example.com",
    );

    print(response.status_code)
    print(response.text)
    print(response.http_version)

asyncio.run(main())
```

Impit implements the HTTPX client interface, so you can use it as a drop-in replacement for `httpx.AsyncClient`.
Note that the implementation is partial and some features may not be supported yet.

