Skip to main content
The JavaScript API client follows semantic versioning.

Upgrade from version 4.x to the latest version 4

Recommendation renamed to Personalization (4.10.2)

To avoid confusion with the Algolia Recommend product, the existing “recommendation” client and methods have been renamed to personalization.
  • @algolia/client-recommendation@algolia/client-personalization
  • initRecommendation()initPersonalization()
  • initRecommendation().getPersonalizationStrategyinitPersonalization().getPersonalizationStrategy
  • initRecommendation().setPersonalizationStrategyinitPersonalization().setPersonalizationStrategy

Upgrade from version 3 to version 4

This document lists every known breaking change. Not all these changes may affect your application, since some of these breaking changes happen in obscure parts of the client.
The amount of changes in this new version is significant. You should thoroughly test your application once the migration is over.
To get started, update algoliasearch to ^4.0.0.
Command line
The client now natively supports TypeScript. If you’re using it in a TypeScript project, you no longer need the @types/algoliasearch package.
Command line

Import algoliasearch using ES modules

Potential impact: high Importing the algoliasearch function with the wildcard (*) is no longer possible. You must import algoliasearch from the default export.
JavaScript

Internet Explorer

Potential impact: high If you’re using algoliasearch in the browser, keep in mind that the version 4 doesn’t support Internet Explorer below version 11. You also need to use polyfills for older browsers that don’t support Promise, Object.entries, and Object.assign.

Asynchronous methods and callbacks

Potential impact: high In the v3, all asynchronous methods took a callback function. In the v4, you can no longer pass a callback. All asynchronous methods are now exclusively Promise-based:
JavaScript
The preceding example applies to all asynchronous methods that used to take a callback.

Compatibility with the Algolia search helper and InstantSearch

Potential impact: high If you’re using any of the projects in the list below, you may need to update them to the specified versions. All tests on version 4 apply to these versions. Other versions may not work.
  • algoliasearch-helper-js: >= 2.28.1
  • algoliasearch-helper-js: >= 3.1.0
  • instantsearch.js: >= 4.2.0
  • react-instantsearch: >= 6.3.0
  • vue-instantsearch: >= 2.7.0
You also need to add polyfills for: Promise, Object.entries, and Object.assign. Angular InstantSearch isn’t compatible with algoliasearch version 4. If you’re using Angular InstantSearch, keep using algoliasearch version 3.

AngularJS, jQuery, and React Native builds

Potential impact: medium The following builds are no longer available:
  • dist/algoliasearch.angular.js
  • dist/algoliasearch.jquery.js
  • algoliasearch.reactnative.js
Use the dist/algoliasearch.umd.js build directly.

The search client

The following sections present the migration guide for the search client itself. The client is the object that the algoliasearch function returns.
JavaScript

The timeout parameter

Potential impact: low The timeout parameter is no longer available, here is the alternative:
JavaScript

The protocol parameter

Potential impact: low The parameter is no longer available, here is the alternative:
JavaScript

The hosts parameter

Potential impact: low The parameter has changed, here is the alternative:
JavaScript

The _useCache parameter

Potential impact: low The parameter is no longer available, here is the alternative:
JavaScript

The clearCache method

Potential impact: low The clearCache method is now asynchronous. Make sure to adapt your code to wait on the promise resolution if you have dependencies.
JavaScript

The destroy method

Potential impact: low The destroy method is now asynchronous.
JavaScript

The setRequestTimeout, setTimeouts, and getTimeouts methods

Potential impact: low The setRequestTimeout, setTimeouts, and getTimeouts methods are no longer available. Here is the alternative:
JavaScript

The setExtraHeader, getExtraHeader, and unsetExtraHeader methods

Potential impact: medium The setExtraHeader, getExtraHeader, and unsetExtraHeader methods are no longer available.
JavaScript

The setUserToken method

Potential impact: low The method is no longer available, here is the alternative:
JavaScript

The updateApiKey method

Potential impact: low The updateApiKey method signature has changed.
JavaScript

The addUserKeyWithValidity method

Potential impact: low The addUserKeyWithValidity is removed. Use addApiKey instead.

The assignUserID method

Potential impact: low The assignUserID method signature has changed.
JavaScript

The assignUserIDs method

Potential impact: low The assignUserIDs method signature has changed.
JavaScript

The getUserID method

Potential impact: low The getUserID method signature has changed.
JavaScript

The removeUserID method

Potential impact: low The removeUserID method signature has changed.
JavaScript

The searchUserIDs method

Potential impact: low The searchUserIDs method signature has changed.
JavaScript

The generateSecuredApiKey method

Potential impact: low The generateSecuredApiKey method signature has changed.
JavaScript

The enableRateLimitForward and disableRateLimitForward methods

Potential impact: low Both enableRateLimitForward and disableRateLimitForward methods are no longer available. You can now add the X-Forwarded-For and X-Forwarded-For headers this way:
JavaScript

Renamed methods

Potential impact: medium The following methods don’t contain breaking changes, but either their name has changed, or they have been moved.
  • listIndexeslistIndices
  • deleteIndexinitIndex('indexName').delete()
  • batchmultipleBatch
  • sendQueriesBatchsearch
  • getTopUserIDgetTopUserIDs
  • setPersonalizationStrategyinitRecommendation().setPersonalizationStrategy
  • getPersonalizationStrategyinitRecommendation().getPersonalizationStrategy

The search index

The following sections present the migration guide for the search index, which is the object returned by the client.initIndex method.
JavaScript

The search method

Potential impact: high The search method signature has changed.
JavaScript

The searchForFacetValues method

Potential impact: high The searchForFacetValues method signature has changed.
JavaScript

The getObject, and getObjects methods

Potential impact: low Both getObject and getObjects are no longer available on the lite build. Therefore, you need to include the full build to work with those methods. In addition, the signature has changed.
JavaScript

The addObject and addObjects methods

Both the addObject and addObjects methods no longer exist, and are replaced with the autoGenerateObjectIDIfNotExist parameter in RequestOptions on the saveObject and saveObjects methods. Potential impact: medium
JavaScript

The partialUpdateObject and partialUpdateObjects methods

In both partialUpdateObject and partialUpdateObjects, the createIfNotExists parameter should now be provided in RequestOptions. Potential impact: low
JavaScript

The browse and browseFrom methods

Potential impact: low The browseFrom method has been removed, and the browse method is no longer available on lite builds. If you need to use browse, you need to use the full build. In addition, the signature has changed.
JavaScript

The deleteByQuery method

Potential impact: low The method deleteByQuery has been removed. Consider using deleteBy instead.

The ttAdapter method

Potential impact: low The ttAdapter method is no longer available. If you want to use this feature, keep using v3.

Renamed methods

Potential impact: medium The following methods don’t contain breaking changes, but either their name has changed, or they have been moved.
  • clearIndexclearObjects
  • batchSynonymssaveSynonyms
  • batchRulessaveRules
  • listApiKeysclient.listApiKeys
  • addApiKeyclient.addApiKey
  • updateApiKeyclient.updateApiKey
  • deleteApiKeyclient.deleteApiKey
  • getApiKeyclient.getApiKey

The usage of gzip

Potential impact: low The previous version of the CommonJS build accepted gzip content from the Algolia API. This feature isn’t available on version 4.
Last modified on March 23, 2026