Skip to main content
The latest major version of the algoliasearch package is version 4. This page lists the breaking changes introduced since the previous major release, version 3.

Method changes overview

The following table has links for all methods and their replacements

Search API client

Version 3 (legacy)Version 4 (current)
client.add_api_keyclient.add_api_key
client.add_api_key.waitclient.wait_for_api_key
client.clear_dictionary_entriesclient.batch_dictionary_entries
client.copy_indexclient.operation_index
client.copy_rulesclient.operation_index
client.copy_synonymsclient.operation_index
client.delete_api_keyclient.delete_api_key
client.delete_dictionary_entriesclient.batch_dictionary_entries
client.generate_secured_api_keyclient.generate_secured_api_key
client.get_api_keyclient.get_api_key
client.get_secured_api_key_remaining_validityclient.get_secured_api_key_remaining_validity
client.list_api_keysclient.list_api_keys
client.list_indicesclient.list_indices
client.move_indexclient.operation_index
client.multiple_batchclient.multiple_batch
client.multiple_queriesclient.search
client.replace_dictionary_entriesclient.batch_dictionary_entries
client.restore_api_keyclient.restore_api_key
client.save_dictionary_entriesclient.batch_dictionary_entries
client.update_api_keyclient.update_api_key
index.batchclient.batch
index.browse_objectsclient.browse_objects
index.browse_rulesclient.browse_rules
index.browse_synonymsclient.browse_synonyms
index.clear_objectsclient.clear_objects
index.clear_rulesclient.clear_rules
index.clear_synonymsclient.clear_synonyms
index.copy_settingsclient.operation_index
index.deleteclient.delete_index
index.delete_byclient.delete_by
index.delete_objectclient.delete_object
index.delete_objectsclient.delete_objects
index.delete_ruleclient.delete_rule
index.delete_synonymclient.delete_synonym
index.find_objectclient.search_single_index
index.get_objectclient.get_object
index.get_objectsclient.get_objects
index.get_ruleclient.get_rule
index.get_settingsclient.get_settings
index.get_synonymclient.get_synonym
index.get_taskclient.get_task
index.partial_update_objectclient.partial_update_object
index.partial_update_objectsclient.partial_update_objects
index.replace_all_objectsclient.replace_all_objects
index.replace_all_rulesclient.save_rules
index.replace_all_synonymsclient.save_synonyms
index.save_objectclient.save_object
index.save_objectsclient.save_objects
index.save_ruleclient.save_rule
index.save_rulesclient.save_rules
index.save_synonymclient.save_synonym
index.save_synonymsclient.save_synonyms
index.searchclient.search_single_index
index.search_for_facet_valuesclient.search_for_facet_values
index.search_rulesclient.search_rules
index.search_synonymsclient.search_synonyms
index.set_settingsclient.set_settings
index.{operation}.waitclient.wait_for_task

Recommend API client

Version 3 (legacy)Version 4 (current)
client.get_frequently_bought_togetherclient.get_recommendations
client.get_recommendationsclient.get_recommendations
client.get_related_productsclient.get_recommendations

Client imports

The imports for the API clients changed.
Python
# Search API
# A/B testing
# A/B testing (async)
from algoliasearch.abtesting.client import AbtestingClient, AbtestingClientSync

# Analytics API
# Analytics API (async)
from algoliasearch.analytics.client import AnalyticsClient, AnalyticsClientSync

# Ingestion API
# Ingestion API (async)
from algoliasearch.ingestion.client import IngestionClient, IngestionClientSync

# Insights API
# Insights API (async)
from algoliasearch.insights.client import InsightsClient, InsightsClientSync

# Personalization API
# Personalization API (async)
from algoliasearch.personalization.client import (
    PersonalizationClient,
    PersonalizationClientSync,
)

# Query Suggestions API
# Query Suggestions API (async)
from algoliasearch.query_suggestions.client import (
    QuerySuggestionsClient,
    QuerySuggestionsClientSync,
)

# Recommend API
# Recommend API (async)
from algoliasearch.recommend.client import RecommendClient, RecommendClientSync

# Search API (async)
from algoliasearch.search.client import SearchClient, SearchClientSync

# Monitoring API
# Monitoring API (async)
from algoliaserarch.monitoring.client import MonitoringClient, MonitoringClientSync

Client creation

To create a client, create an instance of the SearchClientSync class. In async environments, create an instance of the SearchClient class instead. The SearchClient.create() method has been removed. The async API clients support the async with syntax to automatically close open connections.
Python
from algoliasearch.search.client import (
    SearchClient,  # async client
    SearchClientSync,
)
from algoliasearch.search.config import SearchConfig

app_id = "ALGOLIA_APPLICATION_ID"
api_key = "ALGOLIA_API_KEY"

# With positional arguments
client = SearchClientSync(app_id, api_key)

# With keyword arguments
client = SearchClientSync(app_id=app_id, api_key=api_key)

# With a custom configuration
client = SearchClientSync(app_id=app_id, api_key=api_key, config=SearchConfig())

# async
async with SearchClient(app_id=app_id, api_key=api_key) as client:
    ...

Removal of init_index

All methods are methods of a client instance. The init_index method of the SearchClient has been removed. Instead, all methods require a index_name parameter.
Python
# version 3
client = SearchClient.create("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
index = client.init_index("ALGOLIA_INDEX_NAME")
index.search("QUERY")

# version 4
client = SearchClientSync("ALGOLIA_APPLICATION_ID", "ALGOLIA_API_KEY")
client.search_single_index("ALGOLIA_INDEX_NAME", {"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 operation_index method, which replaces the following methods:
  • copy_index
  • move_index
  • copy_rules
  • copy_synonyms
  • copy_settings
I