algoliasearch package is version 5.
This page helps you upgrade from version 4
and explains the breaking changes you need to address.
Algolia generates the version 5 clients from OpenAPI specifications,
which provides consistent behavior across all languages and up-to-date API coverage.
The main architectural change is the removal of the initIndex pattern:
all methods are now on the client instance directly, with indexName as a parameter.
For the full list of changes, see the JavaScript changelog.
Update your dependencies
Update thealgoliasearch package to version 5:
Update imports
The import style changed from a default export to a named export.JavaScript
JavaScript
JavaScript
Update client initialization
Client creation is unchanged. The constructor still accepts your application ID and API key:JavaScript
initIndex no longer exists.
Remove initIndex
This is the most significant change when upgrading.
Version 4 relied on an index object with methods called on it.
In version 5, all methods belong to the client instance,
with indexName as a parameter.
JavaScript
Update search calls
Search a single index
Theindex.search() method is now client.searchSingleIndex().
Pass the index name and search parameters as an object:
JavaScript
Search multiple indices
Theclient.multipleQueries() method is now client.search().
Each request in the array requires an indexName:
JavaScript
Search for facet values
Theindex.searchForFacetValues() method becomes client.searchForFacetValues()
with an indexName parameter:
JavaScript
Update indexing operations
In version 5, indexing methods are on the client instead of the index object, withindexName as a parameter.
Add or replace records
JavaScript
Partially update records
JavaScript
Delete records
JavaScript
Update settings, synonyms, and rules
Get and set settings
JavaScript
Save synonyms and rules
JavaScript
In version 4,
index.replaceAllRules() and index.replaceAllSynonyms() replaced all rules or synonyms.
In version 5, use client.saveRules() or client.saveSynonyms() with the clearExistingRules or clearExistingSynonyms parameter set to true.Update index management
ThecopyIndex, moveIndex, copyRules, copySynonyms, and copySettings
methods are all replaced by a single operationIndex method.
Copy an index
JavaScript
Move (rename) an index
JavaScript
Copy only rules or settings
In version 5, use thescope parameter to limit the operation to specific data:
JavaScript
Update task handling
Version 4 supported chaining.wait() on operations.
Version 5 replaces this pattern with dedicated wait helpers.
JavaScript
waitForTask: wait until indexing operations are done.waitForAppTask: wait for application-level tasks.waitForApiKey: wait for API key operations.
Method changes reference
The following tables list all method names that changed between version 4 and version 5.Search API client
| Version 4 (legacy) | Version 5 (current) | |
|---|---|---|
client.addApiKey | → | client.addApiKey |
client.addApiKey.wait | → | client.waitForApiKey |
client.clearDictionaryEntries | → | client.batchDictionaryEntries |
client.copyIndex | → | client.operationIndex |
client.copyRules | → | client.operationIndex |
client.copySynonyms | → | client.operationIndex |
client.deleteApiKey | → | client.deleteApiKey |
client.deleteDictionaryEntries | → | client.batchDictionaryEntries |
client.generateSecuredApiKey | → | client.generateSecuredApiKey |
client.getApiKey | → | client.getApiKey |
client.getSecuredApiKeyRemainingValidity | → | client.getSecuredApiKeyRemainingValidity |
client.listApiKeys | → | client.listApiKeys |
client.listIndices | → | client.listIndices |
client.moveIndex | → | client.operationIndex |
client.multipleBatch | → | client.multipleBatch |
client.multipleQueries | → | client.search |
client.replaceDictionaryEntries | → | client.batchDictionaryEntries |
client.restoreApiKey | → | client.restoreApiKey |
client.saveDictionaryEntries | → | client.batchDictionaryEntries |
client.updateApiKey | → | client.updateApiKey |
index.batch | → | client.batch |
index.browseObjects | → | client.browseObjects |
index.browseRules | → | client.browseRules |
index.browseSynonyms | → | client.browseSynonyms |
index.clearObjects | → | client.clearObjects |
index.clearRules | → | client.clearRules |
index.clearSynonyms | → | client.clearSynonyms |
index.copySettings | → | client.operationIndex |
index.delete | → | client.deleteIndex |
index.deleteBy | → | client.deleteBy |
index.deleteObject | → | client.deleteObject |
index.deleteObjects | → | client.deleteObjects |
index.deleteRule | → | client.deleteRule |
index.deleteSynonym | → | client.deleteSynonym |
index.findObject | → | client.searchSingleIndex |
index.getObject | → | client.getObject |
index.getObjects | → | client.getObjects |
index.getRule | → | client.getRule |
index.getSettings | → | client.getSettings |
index.getSynonym | → | client.getSynonym |
index.getTask | → | client.getTask |
index.partialUpdateObject | → | client.partialUpdateObject |
index.partialUpdateObjects | → | client.partialUpdateObjects |
index.replaceAllObjects | → | client.replaceAllObjects |
index.replaceAllRules | → | client.saveRules |
index.replaceAllSynonyms | → | client.saveSynonyms |
index.saveObject | → | client.saveObject |
index.saveObjects | → | client.saveObjects |
index.saveRule | → | client.saveRule |
index.saveRules | → | client.saveRules |
index.saveSynonym | → | client.saveSynonym |
index.saveSynonyms | → | client.saveSynonyms |
index.search | → | client.searchSingleIndex |
index.searchForFacetValues | → | client.searchForFacetValues |
index.searchRules | → | client.searchRules |
index.searchSynonyms | → | client.searchSynonyms |
index.setSettings | → | client.setSettings |
index.{operation}.wait | → | client.waitForTask |
Recommend API client
| Version 4 (legacy) | Version 5 (current) | |
|---|---|---|
client.getFrequentlyBoughtTogether | → | client.getRecommendations |
client.getLookingSimilar | → | client.getRecommendations |
client.getRecommendations | → | client.getRecommendations |
client.getRelatedProducts | → | client.getRecommendations |
client.getTrendingFacets | → | client.getRecommendations |
client.getTrendingItems | → | client.getRecommendations |