Python client for the Typesense API: https://github.com/typesense/typesense
Installation
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.
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
Note
Development happens in async-only code; sync code is generated automatically via utils/run-unasync.py.
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.