---
title: "Rename a saved search or replace its filters"
method: PATCH
path: "/business/saved-searches/{savedSearchId}"
tags: ["Saved searches"]
---

# Rename a saved search or replace its filters

`PATCH /business/saved-searches/{savedSearchId}`

## Request

- Base URL: `https://api.tryfuse.ai/api/v1`
- URL: `https://api.tryfuse.ai/api/v1/business/saved-searches/{savedSearchId}`
- Auth: HTTP basic

Rename a saved search, replace its filters, or both — at least one of `title` and `filters` is required. A search's type is immutable, so `filters` must speak the stored search's own language: the keys POST /prospects/search takes for a `people` search, the keys POST /companies/search takes for a `company` one. The replacement is wholesale, not a merge.

`filters` is validated against the stored type after the row is loaded, so a rejected body answers 422 VALIDATION_FAILED with `param` naming the offending key — never SAVED_SEARCH_INVALID, which is reserved for a stored search that has itself gone stale. Keys that do not exist in the stored search's vocabulary are ignored rather than named, so filters sent in the wrong vocabulary are reported as "filters must contain at least one non-empty value"; check `searchType` first. The only two people filter fields that cannot round-trip through the product's filter rail are `first_name` and `last_name`; either one answers 422 SAVED_SEARCH_FILTERS_UNSUPPORTED naming the field.

Errors:
- `404` `SAVED_SEARCH_NOT_FOUND` — No saved search of yours has that id.
- `422` `VALIDATION_FAILED` — The request failed the declared schema; `param` names the offending key and `message` quotes the rule it broke.
- `422` `SAVED_SEARCH_FILTERS_UNSUPPORTED` — `filters` names `first_name` or `last_name` — the only two people filter fields with no saved-search equivalent; `param` names the field.
- `429` `RATE_LIMITED` — Per-token rate limit for this bucket exhausted; retry after the window in the RateLimit-Reset header.
- `500` `UNEXPECTED_ERROR` — The request failed inside the service; nothing was billed and the request_id identifies the failure.

Requires one of the following token scopes: search.

## Path parameters

- `savedSearchId` string, required: Id of the saved search (24-character hex ObjectId), as returned by GET /saved-searches.

## Request body

- object: At least one of `title` or `filters`; a search's type cannot change.
  - `title` string: New display name (1-255 chars).
  - `filters` object: Replacement filters in the stored search's own vocabulary — people searches take the keys of POST /prospects/search, company searches the keys of POST /companies/search — validated against the stored type after loading; at least one non-empty value and only accepted enum values (422 VALIDATION_FAILED otherwise, naming the offending key).

## Response `200`

Success

- object
  - `savedSearch` object, required
    - `id` string, required
    - `title` string, required
    - `filters` object, nullable, required: Filters in the vocabulary of `searchType`; null only when a stored people blob could not be translated at all.
    - `ignoredFilterKeys` string[], required: Stored keys with no equivalent search field, dropped from `filters` (always empty for company searches).
    - `searchType` 'people' | 'company', required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required

## Other responses

- `400`: Error
- `401`: Error
- `402`: Error
- `403`: Error
- `404`: Error
- `409`: Error
- `422`: Error
- `429`: Error
- `500`: Error

---

[API](https://skmtc.dev/fuseai/apis/fuse-business-api.md) · [All operations](https://skmtc.dev/fuseai/apis/fuse-business-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fuseai/apis/fuse-business-api/revisions/50d95e0536f4?raw)
