> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fuseai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rename a saved search or replace its filters

> 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.



## OpenAPI

````yaml /openapi.json patch /business/saved-searches/{savedSearchId}
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/saved-searches/{savedSearchId}:
    patch:
      tags:
        - Saved searches
      summary: Rename a saved search or replace its filters
      description: >-
        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.
      operationId: updateSavedSearch
      parameters:
        - name: savedSearchId
          in: path
          required: true
          description: >-
            Id of the saved search (24-character hex ObjectId), as returned by
            GET /saved-searches.
          schema:
            type: string
            description: >-
              Id of the saved search (24-character hex ObjectId), as returned by
              GET /saved-searches.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 255
                  description: New display name (1-255 chars).
                filters:
                  type: object
                  properties: {}
                  description: >-
                    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).
              description: >-
                At least one of `title` or `filters`; a search's type cannot
                change.
      responses:
        '200':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                required:
                  - savedSearch
                properties:
                  savedSearch:
                    type: object
                    required:
                      - id
                      - title
                      - filters
                      - ignoredFilterKeys
                      - searchType
                      - createdAt
                      - updatedAt
                    properties:
                      id:
                        type: string
                      title:
                        type: string
                      filters:
                        type:
                          - object
                          - 'null'
                        additionalProperties: true
                        description: >-
                          Filters in the vocabulary of `searchType`; null only
                          when a stored people blob could not be translated at
                          all.
                      ignoredFilterKeys:
                        type: array
                        items:
                          type: string
                        description: >-
                          Stored keys with no equivalent search field, dropped
                          from `filters` (always empty for company searches).
                      searchType:
                        type: string
                        enum:
                          - people
                          - company
                      createdAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
                      updatedAt:
                        type:
                          - string
                          - 'null'
                        format: date-time
              example:
                savedSearch:
                  id: 6a8de3161ea5e58766c32c88
                  title: CoStar Group CXOs (US + UK)
                  createdAt: '2026-08-25T18:46:46.159Z'
                  updatedAt: '2026-08-25T18:47:08.908Z'
                  filters:
                    job_title_levels:
                      - status: include
                        value: cxo
                    location_country:
                      - status: include
                        value: united states
                      - status: include
                        value: united kingdom
                    job_company_name:
                      - status: include
                        value: costar group
                  ignoredFilterKeys: []
                  searchType: people
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````