Skip to main content

Python client for Elasticsearch

Project description

The official Python client for Elasticsearch.


  • 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


Install the elasticsearch package with pip:

$ python -m pip install elasticsearch

If your application uses async/await in Python you can install with the async extra:

$ python -m pip install elasticsearch[async]

Read more about how to use asyncio with this project.


Language clients are forward compatible; meaning that clients support communicating with greater minor versions of Elasticsearch. Elastic language clients are also backwards compatible with lesser supported minor Elasticsearch versions.

If you have a need to have multiple versions installed at the same time older versions are also released as elasticsearch2 and elasticsearch5.


Documentation for the client is available on and Read the Docs.

Quick Start

# Import the client from the 'elasticsearch' module
>>> from elasticsearch import Elasticsearch

# Instantiate a client instance
>>> client = Elasticsearch("http://localhost:9200")

# Call an API, in this example `info()`
>>> resp =

# View the result
>>> resp
  "name" : "instance-name",
  "cluster_name" : "cluster-name",
  "cluster_uuid" : "cluster-uuid",
  "version" : {
    "number" : "7.14.0",
  "tagline" : "You know, for Search"

You can read more about configuring the client in the documentation.


Copyright 2021 Elasticsearch B.V. Licensed under the Apache License, Version 2.0.

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for elasticsearch, version 7.14.1
Filename, size File type Python version Upload date Hashes
Filename, size elasticsearch-7.14.1-py2.py3-none-any.whl (363.1 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size elasticsearch-7.14.1.tar.gz (228.4 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page