Update settings
# Update settings
Change what is searchable, filterable and sortable in an index, and how results are ranked.
`PATCH /v1/indexes/{uid}/settings`
Only the settings you send change. The index is rebuilt in the background, and searches use the old settings until the new ones are ready. Requires an admin key.
## Path parameters
<ParamField name="uid" type="string" required>
The name of the index.
</ParamField>
## Body
<ParamField name="searchableAttributes" type="string[]">
The fields queries match against, most important first. Send `["*"]` to search every field.
</ParamField>
<ParamField name="filterableAttributes" type="string[]">
The fields you can use in filters and facets.
</ParamField>
<ParamField name="sortableAttributes" type="string[]">
The fields you can sort results by.
</ParamField>
<ParamField name="rankingRules" type="string[]">
The order of the ranking rules. See [Ranking](/docs/concepts/ranking).
</ParamField>
<ParamField name="synonyms" type="object">
Words that should match each other, like `{ "phone": ["mobile", "cell"] }`.
</ParamField>
<ParamField name="typoTolerance" type="object">
Word lengths for one and two typos, and fields where typos are turned off.
</ParamField>
## Request
```bash
curl -X PATCH https://api.zeroindex.test/v1/indexes/products/settings \
-H "Authorization: Bearer $ZEROINDEX_KEY" \
-d '{
"searchableAttributes": ["name", "brand", "description"],
"filterableAttributes": ["category", "price", "in_stock"]
}'
```
```js
const task = await client.index("products").updateSettings({
searchableAttributes: ["name", "brand", "description"],
filterableAttributes: ["category", "price", "in_stock"],
});
```
```python
task = client.index("products").update_settings({
"searchableAttributes": ["name", "brand", "description"],
"filterableAttributes": ["category", "price", "in_stock"],
})
```
## Response (202)
```json
{
"taskUid": 8801,
"indexUid": "products",
"status": "enqueued",
"type": "settingsUpdate",
"enqueuedAt": "2026-10-13T11:42:57Z"
}
```
Change what is searchable, filterable and sortable in an index, and how results are ranked.
PATCH
/v1/indexes/{uid}/settingsOnly the settings you send change. The index is rebuilt in the background, and searches use the old settings until the new ones are ready. Requires an admin key.
Path parameters
uidstringrequired
The name of the index.
Body
searchableAttributesstring[]
The fields queries match against, most important first. Send ["*"] to search every field.
filterableAttributesstring[]
The fields you can use in filters and facets.
sortableAttributesstring[]
The fields you can sort results by.
rankingRulesstring[]
The order of the ranking rules. See Ranking.
synonymsobject
Words that should match each other, like { "phone": ["mobile", "cell"] }.
typoToleranceobject
Word lengths for one and two typos, and fields where typos are turned off.
Request
curl -X PATCH https://api.zeroindex.test/v1/indexes/products/settings \
-H "Authorization: Bearer $ZEROINDEX_KEY" \
-d '{
"searchableAttributes": ["name", "brand", "description"],
"filterableAttributes": ["category", "price", "in_stock"]
}'const task = await client.index("products").updateSettings({
searchableAttributes: ["name", "brand", "description"],
filterableAttributes: ["category", "price", "in_stock"],
});task = client.index("products").update_settings({
"searchableAttributes": ["name", "brand", "description"],
"filterableAttributes": ["category", "price", "in_stock"],
})Response
202{
"taskUid": 8801,
"indexUid": "products",
"status": "enqueued",
"type": "settingsUpdate",
"enqueuedAt": "2026-10-13T11:42:57Z"
}