You're viewing an archived version of our docs. Check out our current documentation →

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 { abtestingV3Client } from "@algolia/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
JavaScript API clients v5