Elasticsearch Python Client
The official Python client for Elasticsearch.
Features
- Translating basic Python data types to and from JSON
- Configurable automatic discovery of cluster nodes
- Persistent connections
- Load balancing (with pluggable selection strategy) across available nodes
- Failed connection penalization (time based - failed connections won't be retried until a timeout is reached)
- Support for TLS and HTTP authentication
- Thread safety across requests
- Pluggable architecture
- Helper functions for idiomatically using APIs together
Installation
Download the latest version of Elasticsearch or sign-up for a free trial of Elastic Cloud.
Refer to the Installation section of the getting started documentation.
Connecting
Refer to the Connecting section of the getting started documentation.
Usage
- Creating an index
- Indexing a document
- Getting documents
- Searching documents
- Updating documents
- Deleting documents
- Deleting an index
Compatibility
Language clients are forward compatible: each client version works with equivalent and later minor versions of Elasticsearch without breaking.
Compatibility does not imply full feature parity. New Elasticsearch features are supported only in equivalent client versions. For example, an 8.12 client fully supports Elasticsearch 8.12 features and works with 8.13 without breaking; however, it does not support new Elasticsearch 8.13 features. An 8.13 client fully supports Elasticsearch 8.13 features.
| Elasticsearch version | elasticsearch-py branch |
|---|---|
| main | main |
| 9.x | 9.x |
| 9.x | 8.x |
| 8.x | 8.x |
Elasticsearch language clients are also backward compatible across minor versions — with default distributions and without guarantees.
[!TIP] To upgrade to a new major version, first upgrade Elasticsearch, then upgrade the Python Elasticsearch client.
If you need to work with multiple client versions, note that older versions are also released as elasticsearch7 and elasticsearch8.
Documentation
Documentation for the client is available on elastic.co and Read the Docs.
Try Elasticsearch and Kibana locally
If you want to try Elasticsearch and Kibana locally, you can run the following command:
curl -fsSL https://elastic.co/start-local | sh
This will run Elasticsearch at http://localhost:9200 and Kibana at http://localhost:5601.
More information is available here.
Contributing
See CONTRIBUTING.md
License
This software is licensed under the Apache License 2.0. See NOTICE.
Release files for elasticsearch9 9.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elasticsearch9-9.5.1.tar.gz | 930.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elasticsearch9-9.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.9 MB
Release files / elasticsearch9-9.5.1.tar.gz
| Download URL | elasticsearch9-9.5.1.tar.gz |
|---|---|
| Size | 930.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0e204de09a86c5de95a7bc0e60f26ec5e0a365b234b35363f0050f7f1fcc9beb
|
|
BLAKE2b-256 checksum How to use checksums |
5e76429af6179c525797ff48e176f178a2ea5e5df3340edc5a3e487a896a9e23
|
| 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 Sep 9, 2026.
Transparency logRelease files / elasticsearch9-9.5.1-py3-none-any.whl
| Download URL | elasticsearch9-9.5.1-py3-none-any.whl |
|---|---|
| Size | 1.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e49b0decd539cc23b48ac70a291b4ad3e4527a82730dc7eb1e495c332106d48
|
|
BLAKE2b-256 checksum How to use checksums |
621cb0a5d65b9d3d7a66d714fd0befb3e772f6782f78a0e3eb7bba2c5835ceb2
|
| 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 Sep 9, 2026.
Transparency log