Initialize the Python API client
Before you can index your data or search your Algolia indices, you must initialize a search client with your application ID and API key. You can find both in your Algolia account.
Initialize the search client
The search client handles authentication and lets you manage your indices, for example, add data to them, or search them.
1
2
3
4
from algoliasearch.search_client import SearchClient
client = SearchClient.create('YourApplicationID', 'YourWriteAPIKey')
index = client.init_index('your_index_name')
Replace your_index_name
with the name of the index you want to use. You can find your existing indices in the Algolia dashboard or using the listIndices
method. If the index doesn’t exist, a new, empty index is created locally. It’s created on Algolia’s servers only if you add records to the index.
Don’t use sensitive or personally identifiable information as your index name, including usernames, IDs, or email addresses. Index names are publicly shared.
Operations that are scoped to your Algolia application through the client
are:
Operations scoped to an index
are:
The Recommend, Personalization, Insights, and A/B testing APIs come with their own clients:
Usage notes
You can use the Python API client in asynchronous environments. You need to install these additional dependencies:
1
python -m pip install 'asyncio>=3.4,<4.0' 'aiohttp>=2.0,<4.0' 'async_timeout>=2.0,<4.0'
The asynchronous methods are available using a _async
suffix:
Synchronous | Asynchronous |
---|---|
search |
search_async |
save_objects |
save_objects_async |
set_settings |
set_settings_async |
save_synonyms |
save_synonyms_async |
The following example creates a new index and adds two test records to it asynchronously.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import asyncio
from algoliasearch.search_client import SearchClient
app_id = 'YourApplicationID'
api_key = 'YourWriteAPIKey'
async def main():
async with SearchClient.create(app_id, api_key) as client:
index = client.init_index('test_index')
response = await index.save_objects_async([
{'objectID': 1, 'name': 'foo'},
{'objectID': 2, 'name': 'bar'}
])
results = await index.search_async('')
print(results)
asyncio.run(main())