A newer version is available. Check out the latest documentation.

8.18.0 (2025-04-15)

edit
  • Merge `Elasticsearch-DSL <https://github.com/elastic/elasticsearch-dsl-py/>`_ package (#2736)
  • Add Python DSL documentation (#2761)
  • Autogenerate DSL field classes from schema (#2780)
  • Document use of sub-clients (#2798)
  • Improve DSL documentation examples with class-based queries and type hints (#2857)
  • Document the use of param() in Python DSL methods (#2861)
  • Fix simulate sub-client documentation (#2749)[#2749])
  • Update APIs

    • Remove wait_for_active_shards from experimental Get field usage stats API
    • Rename incorrect access_token to token in Logout of OpenID Connect API
    • Add inference APIs: Alibaba Cloud AI Search, Amazon Bedrock, Anthropic, Azure AI Studio, Azure OpenAI, Cohere, Elasticsearch, ELSER, Google AI Studio, Google Vertex AI, Hugging Face, Jina AI, Mistral, OpenAI, and Voyage AI
    • Add Reindex legacy backing indices APIs
    • Add Create an index from a source index API
    • Add include_source_on_error to Create, Index, Update and Bulk APIs
    • Add Stop async ES|QL query API
    • Add timeout to Resolve Cluster API
    • Add adaptive_allocations body field to Start and Update a trained model deployment API
    • Rename index_template_subtitutions to index_template_substitutions in Simulate data ingestion API* Add if_primary_term, if_seq_no, op_type, require_alias and require_data_stream to Create API
    • Add max_concurrent_shard_requests to Open point in time API
    • Add local and flat_settings to Check index templates API
    • Add reopen to Update index settings API
    • Add resource to Reload search analyzer API
    • Add lazy to Roll over to a new index API
    • Add cause and create to Simulate index template APIs
    • Add Elastic Inference Service (EIS) chat completion
    • Add inference APIs: Alibaba Cloud AI Search, Amazon Bedrock, Anthropic, Azure AI Studio, Azure OpenAI, Cohere, Elastic Inference Service (EIS), Elasticsearch, ELSER, Google AI Studio, Google Vertex AI, Hugging Face, Jina AI, Mistral, OpenAI, and Voyage AI
  • Update DSL

    • Add ignore_malformed, script, on_script_error and time_series_dimension to Boolean field
    • Add index to GeoShape field
    • Add search_inference_id to SemanticText field

8.17.2 (2025-03-04)

edit
  • Explain how to use sub clients in API docs (#2798)
  • Render descriptions as Markdown in API docs
  • Update APIs

    • Add keep_alive to Submit async search API
    • Add Run and Delete an async ES|QL query APIs
    • Add Get async ES|QL query results API
    • Add include_ccs_metadata to ES|QL query API

8.17.1 (2025-01-23)

edit
  • Make pyarrow dependency optional for tests (#2733, contributed by danigm)
  • Update APIs:

    • Add Simulate ingest API
    • Add Get data stream lifecycle stats API
    • Add Update inference API
    • Add Create or update, Get and Delete IP geolocation database configuration APIs
    • Add Bulk update API keys
    • Add Get and Update Security index settings APIs
    • Add OpenID Connect prepare authentication, OpenID Connect authenticate and OpenID Connect logout APIs
    • Add Delegate PKI authentication API
    • Add Repository analysis API
    • Add Render Search Application Query API
    • Add Find field structure and Find messages structure APIs
    • Add Get Watcher index settings and Update Watcher index settings APIs
    • Add experimental Check in and Claim connector sync job APIs
    • Add experimental Set connector sync job errors and Set connector sync job stats APIs
    • Add experimental Update connector features APIs
    • Add experimental Post Event to an Analytics Collection API
    • Add timeout and master_timeout to Snapshot lifecycle management (SLM) APIs
    • Add allow_partial_search_results to SQL search API
    • Add throttle_period_in_millis to Create or update watch API
    • Fix query parameters for CAT APIs

8.17.0 (2024-12-13)

edit
  • Allow simsimd again on Python 3.13 (#2722)
  • Update APIs:

    • Mark all Inference APIs as stable.
    • Add allow_partial_search_results to the Open Point in Time API
    • Add keep_alive to the Get async search status API
    • Remove the keep_alive, pre_filter_shard_size and scroll parameters from the Submit async search API. They were never supported.
    • Add master_timeout and timeout to all autoscaling policy APIs
    • Add master_timeout to the Alias exists and Get alias APIs
    • Add list_executed_pipelines and require_data_stream to Bulk API
    • Add include_model_definition to Get trained models API
    • Add meta to Create data frame analytics API
    • Add aggs to Create datafeeds API
    • Add allow_no_indices, expand_wildcards, ignore_throttled and ignore_unavailable to Create anomaly detection jobs API

8.16.0 (2024-11-12)

edit
  • Support Python 3.13 (#2689)
  • Emit Python warnings for beta and tech preview APIs (#2685)
  • Vectorstore: use a retriever query for hybrid search (#2682)
  • Allow retries for statuses other than 429 in streaming bulk (#2702)
  • Make BulkIndexError and ScanError serializable (#2700)
  • Fix import when trace is missing from opentelemetry package (#2705)
  • Update APIs:

    • Fix nodes parameter in Task management API
    • Add Test query rule API
    • Add Create Cross-Cluster API key and Update Cross-Cluster API key APIs
    • Add Verify snapshot repository API
    • Add data_stream_name and settings to Delete auto-follow pattern API
    • Add max_samples_per_key to Get async EQL status API
    • Add lifecycle and remove unused data_retention and downsampling parameters from Put data stream lifecycle API
    • Add include_remotes and remove flat_settings from Cluster stats API
    • Add remote_indices to Create or update application privileges and Create or update roles APIs

Note that the new Python warnings can be disabled as follows:

import warnings
from elasticsearch.exceptions import GeneralAvailabilityWarning

warnings.filterwarnings("ignore", category=GeneralAvailabilityWarning)

8.15.1 (2024-09-08)

edit
  • Fix OTel context loss in parallel bulk helper (#2616)
  • Use request converter to generate python examples (#2645)
  • Add Geoip database configuration APIs: Create or update, Get and Delete
  • Add q parameter to Update by Query API
  • Add allow_no_indices and ignore_unavailable parameters to Resolve index API

8.15.0 (2024-08-09)

edit
  • Added the Connector API (#2623)
  • Added support for semantic_text and semantic query.
  • Added support for sequences of job id, model id and tags where applicable in ML APIs
  • Added dry_run and force parameters to the Perform inference API
  • Added optional Arrow deserialization support (#2632)
  • Merged Query Ruleset API into new Query Rules API (#2607)
  • Added mapping code examples (#2596)
  • Fixed reference docs (#2629)
  • Dropped Python 3.7 support (#2618)

8.14.0 (2024-06-06)

edit
  • Fixed node_pool_class override (#2581, contributed by Tallak Hellebust)
  • Added retriever to the Search API
  • Added deprecated and removed allow_auto_create from the Create or update component template API
  • Added allow_auto_create, cause, deprecated, ignore_missing_component_templates and master_timeout to the Create or update index template API
  • Added cause, removed flat_settings and timeout from the Create or update index template legacy API
  • Removed various unsupported parameters from the Simulate index API
  • Added various supported paramters to the Simulate index template API
  • Added the completion and rerank task types to the Inference APIs
  • Added the query and timeout parameters to the Perform inference API
  • Added typed_keys to the Search Application Search API
  • Added with_profile_uid to the Get API key information and Query API key information APIs

8.13.2 (2024-05-24)

edit
  • Added the ml.update_trained_model_deployment API
  • Marked Requests 2.32.2 as incompatible with the Elasticsearch client

8.13.1 (2024-05-03)

edit
  • Added force_synthetic_source to the Get API
  • Added wait_for_completion to the Create trained model API
  • Added typed_keys to the Query API key information API

8.13.0 (2024-03-22)

edit
  • Added native OpenTelemetry support
  • Added optional orjson (a fast, correct JSON library) serialization support
  • Added the text_structure.test_grok_pattern API
  • Added the indices.resolve_cluster API
  • Renamed the model_id parameter to inference_id in the inference APIs
  • Changed all synonyms APIs from experimental to stable.
  • Fixed API key documentation

8.12.1 (2024-02-22)

edit
  • Fixed but deprecated parameter aliases in body parameter
  • Added mappings and bulk to quickstart page

8.12.0 (2024-01-19)

edit
  • Dropped support for Python 3.6
  • Allowed unrestricted body parameter again
  • Added the Inference APIs
  • Added the ES|QL API
  • Added active_only parameter to security.get_api_key API
  • Added expiration parameter to security.update_api_key API

8.11.1 (2023-12-08)

edit
  • Added missing role_templates to security.put_role_mapping API
  • Added interactive examples page to documentation
  • Changed API reference to have one page per sub-client

8.11.0 (2023-11-13)

edit
  • Support Python 3.12
  • Added missing scores parameter to create trained model vocabulary API
  • Added missing delete_dest_index parameter to delete transform API

8.10.1 (2023-10-13)

edit
  • Removed deprecation warnings when using body parameter
  • Fixed some type hints to use covariant Sequence instead of invariant List

8.10.0 (2023-09-22)

edit
  • Added the Query rules APIs
  • Added the Synonyms APIs

8.9.0 (2023-08-10)

edit
  • Added the cluster.info API
  • Updated the inference_config argument in ml.put_trained_model API to reflect an improvement in the specification

8.8.1 (2023-07-06)

edit
  • Added the rank parameter to the search API

8.8.0 (2023-05-25)

edit
  • Added include_defaults parameter to the cluster.get_component_template, indices.get_data_stream, and indices.get_index_template API
  • Added the indices.delete_data_lifecycle, indices.explain_data_lifecycle, indices.get_data_lifecycle, and indices.put_data_lifecycle APIs
  • Added the experimental search_application.delete, search_application.delete_behavioral_analytics, search_application.get, search_application.get_behavioral_analytics, search_application.list, search_application.put, search_application.put_behavioral_analytics, and search_application.search APIs.

8.7.0 (2023-04-06)

edit
  • Added the health_report API
  • Added the transform.schedule_now_transform API
  • Added the from_ request parameter to the transform.start_transform API
  • Added the buffer, grid_agg, and with_labels parameters to the search_mvt API
  • Added the allow_auto_create parameter to the cluster.create_component_template API
  • Added the delete_user_annotations parameter to the ml.delete_job, ml.reset_job API
  • Added the start and end parameters to the ml.preview_datafeed API
  • Added the priority parameter to the ml.start_datafeed API
  • Added the job_id parameter to the ml.update_datafeed API
  • Added the model_prune_window parameter to the ml.update_job API
  • Added the feature_states parameter to the snapshot.restore_snapshot API
  • Added the timeout parameter to the transform.get_transform_stats API
  • Added the from_ parameter to the transform.start_transform API
  • Changed the input parameter of the ml.put_trained_models API from required to optional
  • Fixed the cluster.create_component_template API by removing the erroneously provided aliases, mappings, and settings parameters. Only the template parameter should be used for specifying component templates.

8.6.2 (2023-02-16)

edit
  • Client is compatible with Elasticsearch 8.6.2

8.6.1 (2023-01-27)

edit
  • Client is compatible with Elasticsearch 8.6.1

Core

edit
  • Added the expand_wildcards, preference, and routing parameters to the open_point_in_time API.

8.6.0 (2023-01-10)

edit
  • Client is compatible with Elasticsearch 8.6.0

Core

edit
  • Changed the fields parameter of the field_caps API to be encoded in the HTTP request body.
  • Changed the index parameter of the rank_eval API to be optional.
  • Changed the requests parameter of the rank_eval API to be optional.

CAT

edit
  • Added the time parameter to the cat.indices API

Machine Learning

edit
  • Fixed the model_id parameter of the ml.clear_trained_model_deployment_cache API to be required.

8.5.3 (2022-12-08)

edit
  • Client is compatible with Elasticsearch 8.5.3

8.5.2 (2022-11-23)

edit
  • Client is compatible with Elasticsearch 8.5.2

8.5.1 (2022-11-21)

edit
  • Client is compatible with Elasticsearch 8.5.1

8.5.0 (2022-11-2)

edit

Indices

edit
  • Added the experimental indices.downsample API

Rollup

edit
  • Removed the deprecated rollup.rollup API.

Snapshot

edit
  • Added the index_names parameter to the snapshot.get API.

Machine Learning

edit
  • Added the beta ml.clear_trained_model_deployment_cache API.
  • Changed the ml.put_trained_model_definition_part API from experimental to stable.
  • Changed the ml.put_trained_model_vocabulary API from experimental to stable.
  • Changed the ml.start_trained_model_deployment API from experimental to stable.
  • Changed the ml.stop_trained_model_deployment API from experimental to stable.

Security

edit
  • Added the with_limited_by parameter to the get_api_key API.
  • Added the with_limited_by parameter to the query_api_keys API.
  • Added the with_profile_uid parameter to the get_user API.
  • Changed the security.activate_user_profile API from beta to stable.
  • Changed the security.disable_user_profile API from beta to stable.
  • Changed the security.enable_user_profile API from beta to stable.
  • Changed the security.get_user_profile API from beta to stable.
  • Changed the security.suggest_user_profiles API from beta to stable.
  • Changed the security.update_user_profile_data API from beta to stable.
  • Changed the security.has_privileges_user_profile API from experimental to stable.

8.4.3 (2022-10-06)

edit
  • Client is compatible with Elasticsearch 8.4.3

8.4.2 (2022-09-20)

edit

Documents

edit
  • Added the error_trace, filter_path, human and pretty parameters to the get_source API.
  • Added the ext parameter to the search API.

Async Search

edit
  • Added the ext parameter to the async_search.submit API.

Fleet

edit
  • Added the ext parameter to the fleet.search API.

8.4.1 (2022-09-06)

edit
  • Client is compatible with Elasticsearch 8.4.1

8.4.0 (2022-08-25)

edit

Search

edit
  • Added the knn parameter to the search API.
  • Added the knn parameter to the async_search.submit API.

Machine Learning

edit
  • Added the cache_size parameter to the ml.start_trained_model_deployment API.

Security

edit
  • Added the security.update_api_key API.

8.3.3 (2022-08-01)

edit
  • Client is compatible with Elasticsearch 8.3.3

8.3.2 (2022-08-01)

edit

Security

edit
  • Added the refresh parameter to the security.create_service_token API.

8.3.1 (2022-06-30)

edit

Security

edit
  • Added the experimental security.has_privileges_user_profile API.
  • Added the hint parameter to the experimental security.suggest_user_profiles API.

8.3.0 (2022-06-29)

edit
  • Client is compatible with Elasticsearch 8.3.0

8.2.3 (2022-06-15)

edit

Documents

edit
  • Added the routing parameter to the msearch API.

CAT

edit
  • Added the cat.component_templates API.

Ingest

edit
  • Added the if_version parameter to the ingest.put_pipeline API.

Security

edit
  • Changed the name parameter for the security.create_service_token API from required to optional.
  • Added the refresh parameter to the security.create_service_token API.
  • Changed the name of access parameter to the labels parameter in the security.update_user_profile_data API.

Shutdown

edit
  • Added the timeout and master_timeout parameters to the shutdown.get_node, shutdown.delete_node, and shutdown.put_node APIs.
  • Added the reason, type, allocation_delay, and target_node_name parameters to the shutdown.put_node API.

8.2.2 (2022-06-01)

edit
  • Client is compatible with Elasticsearch 8.2.2

8.2.1 (2022-06-01)

edit

Machine Learning

edit
  • Added the inference_config parameter to the ml.infer_trained_model_deployment API

8.2.0 (2022-05-03)

edit

Client

edit
  • Re-introduced support for passing requests.auth.BaseAuth objects to the http_auth parameter which was available in 7.x.

Search

edit
  • Added the filter parameter to the experimental knn_search API

Documents

edit
  • Changed the source and dest parameters for the reindex API from optional to required

Indices

edit
  • Added the indices.field_usage_stats API
  • Added the indices.modify_data_stream API
  • Added the fields and types parameters to the field_caps API
  • Added the ignore_unvailable parameter to the open_point_in_time API
  • Added the master_timeout and timeout parameters to the indices.delete API
  • Added the features parameter to the indices.get API

Machine Learning

edit
  • Added the ml.get_memory_stats API

Migrations

edit
  • Added the migrations.get_feature_upgrade_status API
  • Added the migrations.post_feature_upgrade API

Nodes

edit
  • Added the nodes.clear_repositories_metering_archive API
  • Added the nodes.get_repositories_metering_info API

Security

edit
  • Added the beta security.activate_user_profile API
  • Added the beta security.disable_user_profile API
  • Added the beta security.enable_user_profile API
  • Added the beta security.get_user_profile API
  • Added the beta security.suggest_user_profiles API
  • Added the beta security.update_user_profile_data API

SQL

edit
  • Added the catalog, index_using_frozen, keep_alive, keep_on_completion, runtime_mappings, and wait_for_completion_timeout parameters to the sql.query API

8.1.2 (2022-03-30)

edit
  • Client is compatible with Elasticsearch 8.1.2

8.1.1 (2022-03-22)

edit

Documents

edit
  • Changed the source and dest parameters of the reindex API to be required.

Mappings

edit
  • Changed the fields parameter of the field_caps API to be required.

8.1.0 (2022-03-08)

edit

Transforms

edit
  • Added the transform.reset_transform API

8.0.0 (2022-02-10)

edit

Added

edit
  • Added the top-level .options() method to Elasticsearch and AsyncElasticsearch for modifying transport options.
  • Added parameters corresponding to JSON request body fields for all APIs
  • Added basic_auth parameter for specifying username and password authentication
  • Added bearer_auth parameter for specifying an HTTP bearer token or service token
  • Added the meta property to ApiError to access the HTTP response metadata of an error.
  • Added a check that a compatible version of the elastic-transport package is installed.

Changed

edit
  • Changed the transport layer to use the elastic-transport package
  • Changed user-defined body parameters to have semantic names (e.g index(document={...}) instead of index(body={...})).
  • Changed responses to be objects with two properties, meta for response metadata (HTTP status, headers, node, etc) and body for a typed body.
  • Changed AsyncElasticsearch to always be available, regardless of whether aiohttp is installed
  • Changed exception hierarchy, the major change is a new exception ApiError which differentiates between an error that’s raised from the transport layer (previously elasticsearch.exceptions.TransportError, now elastic_transport.TransportError) and one raised from the API layer
  • Changed the name of JSONSerializer to JsonSerializer for consistency with other serializer names. Added an alias to the old name for backwards compatibility
  • Changed the default mimetypes (application/json) to instead use compatibility mimetypes (application/vnd.elasticsearch+json) which always request for responses compatibility with version 8.x.

Removed

edit
  • Removed support for Python 2.7 and Python 3.5, the library now supports only Python 3.6+
  • Removed the elasticsearch.connection module as all functionality has been moved to the elastic-transport package
  • Removed the default URL of http://localhost:9200 due to Elasticsearch 8.0 default configuration being https://localhost:9200. The client’s connection to Elasticsearch now must be specified with scheme, host, and port or with the cloud_id parameter
  • Removed the ability to use positional arguments with API methods. Going forward all API parameters must be keyword-only parameters
  • Removed the doc_type, include_type_name, and copy_settings parameters from many document and index APIs

Deprecated

edit
  • Deprecated the body and params parameters on all APIs
  • Deprecated setting transport options http_auth, api_key, ignore, request_timeout, headers, and opaque_id All of these settings should instead be set via the .options() method
  • Deprecated the elasticsearch.transport and elasticsearch.client modules. These modules will be removed in a future version

CAT

edit
  • Removed the deprecated local parameter from the cat.indices, cat.nodes, cat.shards API
  • Removed the deprecated allow_no_datafeeds parameter from the cat.ml_datafeeds API
  • Removed the deprecated allow_no_jobs parameter from the cat.ml_jobs API
  • Removed the deprecated size parameter from the cat.thread_pool API
  • Added the time parameter to the cat.thread_pool API

Documents

edit
  • Removed the deprecated size parameter from the delete_by_query API
  • Removed the deprecated size parameter from the update_by_query API

Indices

edit
  • Removed the deprecated indices.flush_synced API
  • Removed the deprecated indices.freeze API
  • Removed the deprecated indices.get_upgrade API
  • Removed the deprecated indices.upgrade API
  • Removed the deprecated indices.exist_type API
  • Removed the deprecated parameter copy_settings from the indices.shrink API
  • Deprecated the verbose parameter of the indices.segments API

License / X-Pack

edit
  • Deprecated the accept_enterprise parameter of the license.get API
  • Deprecated the accept_enterprise parameter of the xpack.info API

Machine Learning

edit
  • Added the experimental ml.infer_trained_model_deployment API
  • Added the experimental ml.put_trained_model_definition_part API
  • Added the experimental ml.put_trained_model_vocabulary API
  • Added the experimental ml.start_trained_model_deployment API
  • Added the experimental ml.stop_trained_model_deployment API
  • Added the timeout parameter to the ml.delete_trained_model API
  • Removed the deprecated allow_no_jobs parameter from the ml.close_job API
  • Removed the deprecated ml.find_text_structure API
  • Removed the deprecated allow_no_datafeeds parameter from the ml.get_datafeed_stats API
  • Removed the deprecated allow_no_datafeeds parameter from the ml.get_datafeeds API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_job_stats API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_jobs API
  • Removed the deprecated allow_no_jobs parameter from the ml.get_overall_buckets API

Search

edit
  • Added the experimental knn_search API

Searchable Snapshots

edit
  • Removed the deprecated searchable_snapshots.repository_stats API

Snapshots

edit
  • Changed the snapshot.delete API to accept multiple snapshots

Security

edit
  • Added the security.enroll_kibana API
  • Added the security.enroll_node API