---
title: "Save a search"
method: POST
path: "/api/v2/supersearch-enrichment/saved-searches"
tags: ["SuperSearchEnrichment"]
---

# Save a search

`POST /api/v2/supersearch-enrichment/saved-searches`

## Request

- Base URL: `https://api.instantly.ai`
- URL: `https://api.instantly.ai/api/v2/supersearch-enrichment/saved-searches`
- Auth: HTTP bearer

Save a SuperSearch query for reuse. `search_filters` uses the same shape as the count, preview and enrich endpoints.


Requires one of the following scopes: `supersearch_enrichments:create`, `supersearch_enrichments:all`, `all:create`, `all:all`

## Request body

- object
  - `name` string, required: Display name
  - `search_filters` object, required: Search filters to find leads.
    - `company_list_id` string: Company-list audience boundary. Only completed lists owned by the caller workspace are accepted.
    - `locations` union
      - union[]: Legacy format: Array of locations to include in the search. For new integrations, use the object format with include/exclude properties.
        - union
          - object
            - `place_id` string, required: Google Maps Place ID of the lead's location (https://developers.google.com/maps/documentation/places/web-service/place-id)
            - `label` string: Label of the lead's location
          - union
            - object
              - …
            - object
              - …
            - object
              - …
      - object: Locations to include or exclude in the search
        - `include` union[]: Locations to include in the search
          - union
            - object
              - …
            - union
              - …
        - `exclude` union[]: Locations to exclude from the search
          - union
            - object
              - …
            - union
              - …
    - `department` string[]
    - `level` string[]
    - `employeeCount` union[]: Employee count filters.
      - union
        - '0 - 25' | '25 - 100' | '100 - 250' | '250 - 1000' | '1K - 10K' | '10K - 50K' | '50K - 100K' | '> 100K': Legacy format: Predefined employee count range
        - object: Employee count greater-than-or-equal range
          - `op` 'gte', required: Greater than or equal operation.
          - `min` number, required: Minimum employee count (inclusive).
          - `max` number, nullable: Deprecated opposite bound accepted for compatibility and removed during normalization.
        - object: Employee count less-than-or-equal range
          - `op` 'lte', required: Less than or equal operation.
          - `max` number, required: Maximum employee count (inclusive).
          - `min` number, nullable: Deprecated opposite bound accepted for compatibility and removed during normalization.
        - union
          - object
            - `op` 'between', required: Between operation.
            - `min` number, nullable, required: Minimum employee count (inclusive).
            - `max` number, nullable: Maximum employee count (inclusive).
          - object
            - `op` 'between', required: Between operation.
            - `min` number, nullable: Minimum employee count (inclusive).
            - `max` number, nullable, required: Maximum employee count (inclusive).
        - union
          - object
            - `op` 'preset_between', required: Preset between operation.
            - `min` number, nullable, required: Minimum employee count (inclusive).
            - `max` number, nullable: Maximum employee count (inclusive).
          - object
            - `op` 'preset_between', required: Preset between operation.
            - `min` number, nullable: Minimum employee count (inclusive).
            - `max` number, nullable, required: Maximum employee count (inclusive).
    - `revenue` string[]
    - `news` string[]
    - `jobListing` string[]: Canonical filter for companies that are hiring for the specified job titles.
    - `jobListingFilter` string[]: Deprecated compatibility key for Job Listing filters. Use `jobListing` instead. If both keys are present, `jobListing` takes precedence.
    - `title` object
      - `include` string[]: Titles of the lead to include in the search
      - `exclude` string[]: Titles of the lead to exclude in the search
      - `includeMode` 'EXACT' | 'CONTAINS': How included titles are matched. Defaults to CONTAINS.
      - `excludeMode` 'EXACT' | 'CONTAINS': How excluded titles are matched. Defaults to CONTAINS.
    - `name` string[]: Names of the lead to include in the search
    - `company_name` object
      - `include` string[]: Companies of the lead to include in the search
      - `exclude` string[]: Companies of the lead to exclude in the search
    - `businessType` object: Business type of the lead company. Any-of on each side: `include` returns only companies labelled with one of the types, `exclude` drops them and keeps companies with no label.
      - `include` string[]: Business types of the lead company to include in the search
      - `exclude` string[]: Business types of the lead company to exclude from the search
    - `customerType` object: Who the lead company sells to. Any-of on each side: `include` returns only companies labelled with one of the values, `exclude` drops them and keeps companies with no label. A company selling to both holds both values, so "B2B only" is include b2b with exclude b2c.
      - `include` string[]: Customer types of the lead company to include in the search
      - `exclude` string[]: Customer types of the lead company to exclude from the search
    - `look_alike` string: If set, the lead finder will find companies that are similar to the look-alike domain
    - `lookAlike` string: Product-UI alias of `look_alike`; both keys are accepted
    - `lookAlikeMode` string: Deprecated. No longer written by the product UI; still accepted and forwarded so existing integrations keep working.
    - `technologies` string[]: Technologies the lead company uses
    - `fundingType` string[]: Product-UI alias of `funding_type`; both keys are accepted. See `funding_type` for the canonical values.
    - `locationMode` string: Product-UI alias of `location_mode` (`contact` or `company`); both keys are accepted
    - `keyword_filter` object
      - `exclude` string
      - `include` string
      - `include_mode` 'ANY' | 'ALL'
    - `industry` object
      - `exclude` string[]: Industries of the lead company to exclude in the search
      - `include` string[]
    - `subIndustry` object
      - `exclude` string[]: Subindustries of the lead company to exclude in the search
      - `include` string[]: Subindustries of the lead company to include in the search
    - `domains` string[]
    - `website_visitors` boolean: Restrict the search to companies that visited your website (requires a connected Website Visitors pixel). Combines with `domains` as an intersection.
    - `funding_type` string[]
    - `signals` union[]: Filter leads by Autobound signal categories (e.g. job changes, traffic surges, LinkedIn activity). Leads matching ANY of the specified signals within the per-signal freshness window will be returned.
      - union
        - string: Signal category name. Uses the default 30-day freshness window.
        - object
          - `key` string, required: Signal category to filter by.
          - `period_days` number: Freshness window in days. Only leads whose most recent signal of this category is within this window are returned. Defaults to 30 if omitted.
          - `keywords` union
            - string[]: Legacy flat list of keyword tokens (OR-matched across every keyword index field for the category).
            - object: Per-field map of keyword tokens. Each property name is a keyword index field; each value is the list of tokens to OR-match within that field. Records must have at least one matching token in EACH selected field — fields act as additional filters. Example: `{ "objection_type": ["security"], "buying_stage": ["consideration"] }`.
    - `skip_owned_leads` boolean: If set, the lead finder will skip leads that are owned by the user
    - `show_one_lead_per_company` boolean: If set, the lead finder will show only one lead per company
    - `location_mode` 'contact' | 'company': Whether to filter/display by contact location or company HQ location. Defaults to contact.

## Response `200`

Default Response

- object
  - `id` string, uuid, required: Saved search ID
  - `name` string, required: Display name
  - `search_filters` object, required: SuperSearch filters in the same shape the count, preview and enrich endpoints accept. Domain and job-listing exclusions saved in the app are not representable in this shape and are omitted.
    - `title` object
      - `include` string[]
      - `exclude` string[]
      - `includeMode` 'EXACT' | 'CONTAINS'
      - `excludeMode` 'EXACT' | 'CONTAINS'
    - `locations` object
      - `include` object[]
        - `place_id` string
        - `label` string
        - `city` string
        - `state` string
        - `country` string
      - `exclude` object[]
        - `place_id` string
        - `label` string
        - `city` string
        - `state` string
        - `country` string
    - `locationMode` 'contact' | 'company'
    - `department` string[]
    - `level` string[]
    - `revenue` string[]
    - `news` string[]
    - `fundingType` string[]
    - `technologies` string[]
    - `signals` object[]
      - `key` string, required
      - `period_days` number
      - `keywords` object
    - `industry` object
      - `include` string[]
      - `exclude` string[]
    - `subIndustry` object
      - `include` string[]
      - `exclude` string[]
    - `employeeCount` object[]
      - `op` string, required
      - `min` number
      - `max` number
    - `name` string[]
    - `keyword_filter` object
      - `include` string
      - `exclude` string
      - `include_mode` 'ANY' | 'ALL'
    - `domains` string[]
    - `website_visitors` boolean
    - `exclude_never_responders` boolean
    - `exclude_oversaturated` boolean
    - `never_been_emailed` boolean
    - `has_replied_to_cold_email` boolean
    - `lookAlike` string
    - `lookAlikeMode` 'targeted' | 'broad'
    - `jobListingFilter` string[]
    - `company_name` object
      - `include` string[]
      - `exclude` string[]
    - `businessType` object
      - `include` string[]
      - `exclude` string[]
    - `customerType` object
      - `include` string[]
      - `exclude` string[]
    - `company_list_id` string, uuid
    - `skip_owned_leads` boolean
    - `show_one_lead_per_company` boolean
  - `organization_id` string, uuid, required: Workspace that owns the saved search
  - `timestamp_created` string, date-time: When the search was saved

## Other responses

- `400`: The request is invalid (e.g. missing required fields, invalid field values, or an invalid state for the operation)
- `401`: This request is unauthorized (either the Authorization header is missing or invalid, or the API key has been revoked)
- `402`: This request cannot be fulfilled because the workspace does not have an active paid plan
- `403`: This request is forbidden (the API key scope or workspace plan does not allow this action)
- `404`: The requested resource was not found
- `429`: You have exceeded the rate limit. Please check the rate limit docs for more information.

## Changes

- **2026-11-03** `c781051105a8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/instantly/apis/api-explorer/changes/api/v2/supersearch-enrichment/saved-searches/post.md)

---

[API](https://skmtc.dev/instantly/apis/api-explorer.md) - [All operations](https://skmtc.dev/instantly/apis/api-explorer/llms.txt) - [OpenAPI document](https://skmtc.dev/instantly/apis/api-explorer/revisions/3daaa5f6b0be?raw)
