16.7.2 (Nov 30 2020)edit

16.7.1 (Mar 26 2020)edit

16.7.0 (Mar 25 2020)edit

  • apiVersion "7.6" is now the default
  • "7.6" is now the only apiVersion in the version 7 major version

16.6.0 (Jan 15 2020)edit

  • apiVersion "7.5" is now the default

16.5.0 (Oct 31 2019)edit

  • apiVersion "7.4" is now the default

16.4.0 (Jul 10 2019)edit

  • apiVersion "7.3" is now the default

16.3.0 (Jul 10 2019)edit

  • Removed many development dependencies
  • Switched to standard + prettier linting config. Testing indicates that this doesn’t have any effect on the external API but it produces thousands of changes so releasing as a minor version bump just to be safe.

16.2.0 (Jul 3 2019)edit

  • apiVersion "7.2" is now the default
  • Dropped support for old 6.7 version

16.1.1 (Jun 4 2019)edit

  • Updated readme

16.1.0 (May 29 2019)edit

  • apiVersion "7.1" is now the default

16.0.0 (May 2 2019)edit

  • apiVersion "7.0" is now the default
  • Dropped support for old 6.x versions, and all versions before 5.6

15.5.0 (May 1 2019)edit

  • apiVersion "6.7" is now the default

15.4.1 (Feb 6 2019)edit

  • Drop support for old versions in the 5.x line, only 5.6 is maintained

15.4.0 (Feb 6 2019)edit

  • apiVersion "6.6" is now the default

15.3.1 (Jan 23 2019)edit

  • Fixed an issue in node 10 where multi-byte characters in the URL would trigger and uncaught error #756

15.3.0 (Jan 9 2019)edit

  • apiVersion "6.5" is now the default

15.2.0 (Oct 29 2018)edit

  • apiVersion "6.4" is now the default

15.1.1 (July 3 2018)edit

  • Fix JSON serialization bug affecting some objects with non-enumerable properties #504

15.1.0 (July 3 2018)edit

  • apiVersion "6.3" is now the default

15.0.0 (May 14 2018)edit

  • Upgrade from lodash 2 to lodash 4 (Thanks @dominykas!) #600

    • Because this is such a large shift, and it could have potentially subtle effects on the module, we’ve done a major version bump. Unless you are using custom plugins that rely on the old utils, this should be the equivalent of a patch upgrade.

14.2.2 (Mar 29 2018)edit

  • Fix handling of clearScroll`s `scrollId parameter in the 5.2 API #646

14.2.1 (Mar 16 2018)edit

  • Transpile versions of the browser clients to ensure legacy browser compatibility #645

14.2.0 (Mar 12 2018)edit

  • apiVersion "6.2" is now the default
  • agentkeepalive upgraded from 2.2.0 to 3.4.1 for compatibility with IPv6 hostnames in SSL certificates #642

14.1.0 (Jan 31 2018)edit

  • apiVersion "6.1" is now the default
  • Fix the way that keepAliveFreeSocketTimeout is used #600 (Thanks @shaharmor!)

14.0.0 (Nov 14 2017)edit

  • apiVersion "6.0" is now the default

13.3.0 (Aug 9 2017)edit

  • apiVersion "5.5" is now the default
  • Use JSON version of scroll/clearScroll API in for apiVerion 2.0+ #576

13.2.0 (Jun 21 2017)edit

  • Added sniffedNodesFilterPath config parameter to allow customizing the filter_path sent when sniffing for new nodes. #599

13.1.2 (Jun 21 2017)edit

  • Update APIs after resolving #25234

13.1.1 (Jun 14 2017)edit

  • Fixed the "5.x" API #556

13.1.0 (Jun 12 2017)edit

  • apiVersion "5.4" is now the default

13.0.1 (May 9 2017)edit

  • Fixed the way that clearScroll handles it’s scrollId param #541

13.0.0 (Apr 24 2017)edit

  • apiVersion "5.3" is now the default
  • Fixed the way that http addresses are sniffed from the cluster #496
  • Switched back to agentkeepalive for managing keep-alive connections #476
  • keepAlive* settings have changed, and the defaults have been updated to match node.js/agentkeep defaults 87cc201
  • bulk and other APIs that send line-delimited JSON bodies now use the Content-Type: application/x-ndjson header #507
  • "console" reporter is now available in Node.js for environments where that is preferred to "stdout" #523
  • minor changes to apiVersion will no longer be released as a major release

    • When we decided to have elasticsearch-js support multiple version of Elasticsearch, we included an apiVersion configuration paramter for users to choose the API that each client should expose. This setting had a default value that matched the most recent version of Elasticsearch at the time of release. Since Elasticsearch didn’t make specific guarantees about backwards compatibility elasticsearch-js released a new major version every time the default apiVersion changed.

      Elasticsearch now guarantees backwards compatibility within a specific major version, and has for a while, (See "Types of Releases") so starting in 13.0, changes to the default apiVersion that are within the same major version of Elasticsearch will be released as minor version updates. This means that when Elasticsearch 5.3 is released, elasticsearch-js will release a new 13.x version, and when Elasticsearch 6.0 is released, elasticsearch-js will release a major update (14.0, or similar).

  • all but the latest apiVersion options from the 1.x and 2.x line have been removed

    • Elasticsearch-js ships with individual API definitions for every minor version of Elasticsearch, leading to the library becoming unnecessarily large. In an effort to find a compromise between size and ease of use elasticsearch-js now only ships with apiVersion options for the latest minor release of Elasticsearch 1.x and 2.x (1.7 and 2.4 at this time).

      If you use an older version of Elasticsearch 1.x or 2.x, please consider upgrading to get the latest features and bug fixes (see section 7.1 of the support policy). If you cannot upgrade then you have two options:

      1. Use the apiVersion that matches the major version of your Elasticsearch install (1.4 ⇒ 1.7, 2.0 ⇒ 2.4, etc.). This definition may include new APIs or parameters that are mentioned in the docs but not actually available in your Elasticsearch version, but any methods or parameter you were using before 13.0 should work perfectly.
      2. Download the API definition file for the version you are using from the 12.1.1 source, and then attach it to the client like so:

        const elasticsearch = require('elasticsearch')
        elasticsearch.Client.apis['1.4'] = require('./1_4.js'); // downloaded from
        const client = new elasticsearch.Client({
          apiVersion: '1.4'

12.1 (Nov 16 2016)edit

  • Added httpAuth configuration parameter
  • Fixed a bug introduced in v9.0.1 that prevented error messages from including some available metadata

12.0 (Oct 26 2016)edit

  • apiVersion "5.0" is now the default

11.0 (Apr 5 2016)edit

  • apiVersion "2.3" is now the default
  • updated APIs, to use the new APIs exposed by the v5.0.0-alpha1 of elasticsearch use the "master" api version.
  • Switch to promise from promise-js to prevent polluting global environment
  • Pass the keepAlive configuration all the way to the Agent #371

10.1 (Jan 8 2016)edit

  • browser builds now include the "unstable" api’s from elasticsearch
  • added createNodeAgent configuration value for overriding the agent that the node.js HttpConnector uses. (see #329)
  • fix a bug that could cause error statuses to be strings rather than numbers
  • doc fixes
  • support sniffing nodes that have published hostnames
  • error logging now includes information about the request where the error occured #330

10.0 (Nov 24 2015)edit

  • apiVersion "2.1" is now the default
  • Remove bluebird dependency, use an ES6 Promise shim instead. To use Bluebird in your project supply the defer configuration option.

9.0 (Oct 30 2015)edit

  • apiVersion "2.0" is now the default
  • Fix a memory leak caused by sniffing
  • Use the application/x-ldjson content-type for bulk formatted bodies
  • Added wwwAuthenticateDirective property to 401 errors

8.2 (Sep 17 2015)edit

  • Added sniffedNodesProtocol configuration option
  • Fixed an issue which prevented promised from getting rejected if the GET verb was used with a request body (#263)

8.1 (Sep 8 2015)edit

  • Added apiVersion "2.x", which will semi-regularly be updated to match the latest development at elastic/elasticsearch#2.x
  • Removed node engine upper-bound, supporting 4.0 and versions beyond.

8.0 (Aug 26 2015)edit

  • apiVersion changed back to "1.7" until es 2.0 is actually released.

unpublished 7.0 (Aug 26 2015)edit

  • Added apiVersion "2.0", which is now the default

6.1 (Aug 18 2015)edit

  • Added experimental support for apiVersion "2.0"
  • Added support for many more status codes so that "unknown error" is far less likely.

6.0 (Aug 4 2015)edit

  • Added apiVersion "1.7", which is now the default
  • Error objects resulting from a completed http request now have much more information about the request that caused them.

5.0 (Jun 9 2015)edit

  • Added apiVersion "1.6", which is now the default

4.1 (May 19 2015)edit

  • Plugin configuration option added
  • Added support for object based error

4.0 (Mar 26 2015)edit

  • Added apiVersion "1.5", which is now the default
  • Changed the default pingTimeout to 3 seconds, and made it configurable
  • Improved compatibility with node 0.12
  • Updated dependencies
  • Make the stream logger actually usable (thanks @falmp!)

3.1 (Jan 6 2015)edit

  • Added HTTPS/SSL configuration options and related errors
  • client.scroll() requests made without a body will use the scrollId param as the body to prevent #113 & #174
  • Updated bluebird to v2.8.2 - bluebird changelog
  • Added specific error message for 504 errors #182

3.0 (Nov 7 2014)edit

  • Added apiVersion "1.4", which is now the default
  • Improved parsing of host: strings, examples in the tests
  • The Angular version of the client now uses angular.toJson() (1.2, 1.3) to serialize requests, override with serializer: "json"
  • Angular requests are now being aborted properly

2.4 (Jul 30 2014)edit

  • Added apiVersion "1.3", which is now the default
  • Angular connector (when used with Basic Auth) no longer modifies Angular’s default headers

2.3 (Jul 11 2014)edit

2.2 (Mar 27 2014)edit

  • The default API version is now '1.2'
  • Node clinet now supports master, 1.x, 1.2, 1.1, 1.0, and 0.90
  • Browser client now supports versions 1.0, 1.1, and 1.2

2.1 (Mar 27 2014)edit

  • The default API version is now '1.1'
  • Errors generated in the browser will now have stack traces
  • Clarified IE-support
  • Improvements to the bundled log-generator

2.0 (Mar 27 2014)edit

1.5 (Feb 6 2014)edit

  • Switched out keepaliveagent dependency with forever-agent, which is used in the ever popular request module, and is much simpler
  • The option to use keep-alive is now all or nothing. maxKeepAliveTime and maxKeepAliveRequests config parameters have been replaced by keepAlive, which will keeps at least minSockets connections open forever. See: Configuration
  • Closing the client with keepAlive turned on will allow the process to exit.
  • Fixed a bug that caused invalid param/type errors to not be reported properly, in the browser builds that use promises
  • added the cat.threadPool to the master/1.0/1.x apis
  • Enabled Basic auth in the Angular connector — Thanks @jeff-french!
  • Fixed a bug that was preventing index requests (and any other POST/PUT request) from using connections in the connection pool

1.4 (Jan 30 2014)edit

  • The trace log messages will now diaplay the actual host connected to (without auth info) unless they are being written to a bash script
  • API Updated with latest changes awaiting 1.0 release

1.2/1.3 (Jan 17 2014)edit

  • apiVersion config parameter was added. Use this to specify which API the client should provide, we currently offer support for elasticsearch branches "0.90", "1.0", and "master"

1.1 (Dec 22 2013)edit

  • Changed the resolution value of promises. Instead of being an object like {body: ..., status: ...} it is now just the response body

1.0 (Dec 17 2013)edit

  • Initial Release

pre 1.0edit

  • Another module, now know as es on npm, used the elasticsearch module name. This module had several pre-1.0 releases so we started at 1.0 to prevent collisions in exiting projects. The history for that project is available here