Upgrade the JavaScript API clients to v5

The latest major version of the algoliasearch package is v5. This page lists the breaking changes since the last release, v4.

Method changes overview

The following table has links for all methods and their replacements

Search API client

v4 (legacy) v5 (latest)
client.addApiKey client.addApiKey
client.addApiKey.wait client.waitForApiKey
client.assignUserID client.assignUserId
client.assignUserIDs client.batchAssignUserIds
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.getTopUserIDs client.getTopUserIds
client.getUserID client.getUserId
client.listApiKeys client.listApiKeys
client.listIndices client.listIndices
client.listUserIDs client.listUserIds
client.moveIndex client.operationIndex
client.multipleBatch client.multipleBatch
client.multipleQueries client.search
client.removeUserID client.removeUserId
client.replaceDictionaryEntries client.batchDictionaryEntries
client.restoreApiKey client.restoreApiKey
client.saveDictionaryEntries client.batchDictionaryEntries
client.searchUserIDs client.searchUserIds
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

v4 (legacy) v5 (latest)
client.getFrequentlyBoughtTogether client.getRecommendations
client.getLookingSimilar client.getRecommendations
client.getRecommendations client.getRecommendations
client.getRelatedProducts client.getRecommendations
client.getTrendingFacets client.getRecommendations
client.getTrendingItems client.getRecommendations

Client imports

The imports for the API clients changed.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Search API, A/B testing API, Analytics API, Personalization API
import { algoliasearch } from "algoliasearch";
// Search methods only
import { liteClient as algoliasearch } from "algoliasearch/lite";
// Search API
import { searchClient } from "@algolia/client-search";
// Recommend API
import { recommendClient } from "@algolia/recommend";
// A/B testing API
import { abtestingClient } from "@algolia/client-abtesting";
// Analytics API (new in v5)
import { analyticsClient } from "@algolia/client-analytics";
// Personalization API
import { personalizationClient } from "@algolia/client-personalization";
// Query Suggestions API (new in v5)
import { querySuggestionsClient } from "@algolia/client-query-suggestions";

Removal of initIndex

All methods are methods of a client instance. The initIndex method of the searchClient has been removed. Instead, all methods require an indexName parameter.

1
2
3
4
5
6
7
8
9
10
11
// v4
const client = algoliasearch("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");
const index = client.initIndex("ALGOLIA_INDEX_NAME");
const results = index.search("QUERY");

// v5
const client = algoliasearch("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY");
const results = await client.searchSingleIndex({
  indexName: "ALGOLIA_INDEX_NAME",
  searchParams: {query: "QUERY"},
});

Wait for tasks

The wait method has been removed. Instead, use one of the following helpers:

Copy or move indices, settings, synonyms, or rules

Use the operationIndex method, which replaces the following methods:

  • copyIndex
  • moveIndex
  • copyRules
  • copySynonyms
  • copySettings
Did you find this page helpful?
JavaScript API clients v5