Typesense Python Client
Python client for the Typesense API: https://github.com/typesense/typesense
Installation
$ pip install typesense
You can also add typesense to your project's requirements.txt.
Usage
You can find some examples here.
See detailed API documentation.
Async usage
Use AsyncClient when working in an async runtime:
import asyncio
import typesense
async def main() -> None:
client = typesense.AsyncClient({
"api_key": "abcd",
"nodes": [{"host": "localhost", "port": "8108", "protocol": "http"}],
"connection_timeout_seconds": 2,
})
print(await client.collections.retrieve())
await client.api_call.aclose()
if __name__ == "__main__":
asyncio.run(main())
See examples/async_collection_operations.py for a fuller async walkthrough.
Using httpx2
The client sends requests with httpx by default. On Python 3.10+ you can pass an httpx2 client instead. httpx2 is Pydantic's maintained continuation of httpx, and it fixes a connection pool leak in httpcore (encode/httpcore#1093) that can leave an AsyncClient failing every request with PoolTimeout under load.
$ pip install "typesense[httpx2]"
import httpx2
import typesense
http_client = httpx2.AsyncClient(
timeout=httpx2.Timeout(2.0),
limits=httpx2.Limits(max_connections=100, max_keepalive_connections=20),
)
client = typesense.AsyncClient(
{
"api_key": "abcd",
"nodes": [{"host": "localhost", "port": "8108", "protocol": "http"}],
},
http_client=http_client,
)
typesense.Client takes an httpx2.Client the same way. The connection pool settings in the config (pool_timeout_seconds, max_connections, max_keepalive_connections) only apply to the default client, so set them on your own client instead. The Typesense client does not close a client you pass in.
Compatibility
| Typesense Server | typesense-python |
|---|---|
| >= v30.0 | >= v2.0.0 |
| >= v28.0 | >= v1.0.0 |
| >= v26.0 | >= v0.20.0 |
| >= v0.25.0 | >= v0.16.0 |
| >= v0.23.0 | >= v0.14.0 |
| >= v0.21.0 | >= v0.13.0 |
| >= v0.20.0 | >= v0.11.0 |
| >= v0.19.0 | >= v0.10.0 |
| >= v0.17.0 | >= v0.9.0 |
| >= v0.16.0 | >= v0.8.0 |
| >= v0.15.0 | >= v0.7.0 |
Contributing
Bug reports and pull requests are welcome on GitHub at [https://github.com/typesense/typesense-python].
If you change any part of the client's source code, run uv run utils/run-unasync.py before opening a PR to keep the generated sync files in sync.
License
typesense-python is distributed under the Apache 2 license.
Metadata
Release files for typesense 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| typesense-2.1.0.tar.gz | 97.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| typesense-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 257.8 kB
Release files / typesense-2.1.0.tar.gz
| Download URL | typesense-2.1.0.tar.gz |
|---|---|
| Size | 97.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4fe40fc6ace5fcb73e272a695d13073e265da79f605595d329a718e563cb0aa8
|
|
BLAKE2b-256 checksum How to use checksums |
dba80bcb32ef0234b40261ef4ddde32d46dac2c29fd9a3d1222b7eae8771f576
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency logRelease files / typesense-2.1.0-py3-none-any.whl
| Download URL | typesense-2.1.0-py3-none-any.whl |
|---|---|
| Size | 160.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
51ab05688f4eb33a84d60c6056fdc6c586654413983082f400b5aee164f698fc
|
|
BLAKE2b-256 checksum How to use checksums |
4705c6bd875a522f4ce4ec69b149aa10c4c547e0222c4e2f3d9c5161aecf9fd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency log