IntroductionQuickstartAuthenticationPaginationRate Limit

Search endpoints

Job Search POSTCompany Search POSTTechnographics POST

Account endpoints

Get Credit Balance GETGet Credits Consumption GET

Other

Get Saved Search GETList All Saved Searches GETArchive Saved Search PATCHUpdate Saved Search PATCHCreate Saved Search POST
TheirStack TheirStack Logo
DocumentationAPI ReferenceWebhooksDatasetsMCPGuides
Saved searches

Create Saved Search

POST
/v0/saved_searches

Authorization

Bearer
AuthorizationBearer <token>

In: header

Request Body

application/json

  • name
    stringnullable

    Name of the saved search

  • body
    CompanySearchFilters | JobSearchFiltersrequired

    Filters. CompanySearchFilters if type is 'companies', JobSearchFilters if type is 'jobs'

    • expand_technology_slugs
      array<string>
      default: []

      Specify technology slugs to include detailed technology usage information for each company. The response will include a 'technologies_found' field containing metrics like confidence score, ranking, and job count for each specified technology. Note: If a technology is not listed for a company, it means that company does not use that technology. This feature is useful for enriching company data with their technology stack details.

    • order_by
      array<ColumnSortCompanySearch>
      default: [{"desc":true,"field":"confidence"},{"desc":true,"field":"num_jobs_found"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"num_jobs"},{"desc":true,"field":"employee_count"}]

      List of column objects. You can pass several columns to order by, in order of priority. Only field is required, desc is True by default

    • company_name_or
      array<string>
      default: [][]["Google","Facebook","Apple"]

      Only return companies that match these names exactly, case-sensitively. This filter acts as an OR filter, so if you pass more than one company name, it will return companies that match any of the names.

    • company_name_case_insensitive_or
      array<string>
      default: [][]["google","stripe"]

      Only return companies that match these names exactly, case-insensitively.

    • company_id_or
      array<string>
      default: [][]["1234567890","1234567891"]

      Only return companies that match these IDs exactly. This filter acts as an OR filter, so if you pass more than one company ID, it will return companies that match any of the IDs.

    • company_domain_or
      array<string>
      default: [][]["google.com","stripe.com"]["https://www.google.com/","https://stripe.com/"]["[email protected] ","[email protected]"]

      Only return companies that match these domains exactly. It accepts full urls (https://www.google.com/) and emails ([email protected]). This filter acts as an OR filter, so if you pass more than one company domain, it will return companies that match any of the domains.

    • company_domain_not
      array<string>
      default: [][]["google.com","stripe.com"]["https://www.google.com/","https://stripe.com/"]["[email protected] ","[email protected]"]

      Only return companies that don't match these domains exactly. It accepts full urls (https://www.google.com/) and emails ([email protected]).

    • company_name_not
      array<string>
      default: [][]["Google","Facebook","Apple"]

      Only return companies that don't match these names exactly, case-sensitively.

    • company_name_partial_match_or
      array<string>
      default: [][]["google","stripe"]

      Company names. Will return companies whose name contain any of the the substrings passed here, case-insensitively. For example, if you pass "google", it will return "Google", "Google LLC", "Google Inc", etc.

    • company_name_partial_match_not
      array<string>
      default: [][]["google","stripe"]

      Company names. Will return companies whose name doesn't contain any of the the substrings passed here, case-insensitively. For example, if you pass 'google', it will exclude 'Google', 'Google LLC', 'Google Inc', etc.

    • company_linkedin_url_or
      array<string>
      default: [][]["https://www.linkedin.com/company/google/"]

      Return companies whose LinkedIn URL matches any of the slugs passed here. Can also pass full LinkedIn company URLs.

    • blur_company_data
      boolean
      default: false

      Enable preview mode to return blurred data without consuming API credits. When enabled, sensitive company fields (name, domain, URLs, descriptions) and job-specific fields (description, URLs) are blurred. This mode is useful for sales software integrations to show data previews to end users. Not available when filtering by company identifiers (company_name, company_domain, company_linkedin_url, company_id). Learn more about here

    • property_exists_or
      array<string>
      default: [][]["domain","linkedin_url"]

      Return companies that have any of these fields not null. For example, if you pass ['domain', 'linkedin_url'], it will return companies that have a domain OR a linkedin_url set.

      • domain
      • linkedin_url
    • property_exists_and
      array<string>
      default: [][]["domain","linkedin_url"]

      Return companies that have all of these fields not null. For example, if you pass ['domain', 'linkedin_url'], it will return companies that have both domain AND linkedin_url set.

      • domain
      • linkedin_url
    • offset
      integer
      0 <= valuedefault: 00

      Number of results to skip. Required for offset-based pagination.

    • page
      integer
      0 <= valuedefault: 00

      Page number. Required when using page-based pagination.

    • limit
      integer
      1 <= valuedefault: 2525

      Number of results per page

    • cursor
      stringnullable

      Cursor for pagination

    • company_description_pattern_or
      array<string>
      default: []

      Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns.

    • company_description_pattern_not
      array<string>
      default: []

      Case-insensitive patterns to match in the company description. Will return companies that match any of the patterns.

    • company_description_pattern_accent_insensitive
      booleannullable
      default: falsenulltruefalse

      Set to True to make company description searches accent insensitive. For example, "á" will match "a" as well.

    • min_revenue_usd
      integernullable
      null

      Minimum company revenue, in USD

    • max_revenue_usd
      integernullable
      null

      Maximum company revenue, in USD

    • min_employee_count
      integernullable
      null100

      Minimum number of employees in a company

    • max_employee_count
      integernullable
      null100

      Maximum number of employees in a company

    • min_employee_count_or_null
      integernullable
      null100

      Minimum number of employees in a company. If we don't have company size information, we will return it as well.

    • max_employee_count_or_null
      integernullable
      null100

      Maximum number of employees in a company. If we don't have company size information, we will return it as well.

    • min_funding_usd
      integernullable
      null1000000000

      Minimum company funding, in USD

    • max_funding_usd
      integernullable
      null1000000000

      Maximum company funding, in USD

    • funding_stage_or
      array<string>
      default: []

      Funding stages of companies returned. Possible values: ['angel', 'convertible_note', 'debt_financing', 'equity_crowdfunding', 'other', 'private_equity', 'seed', 'series_a', 'series_b', 'series_c', 'series_d', 'series_e', 'series_f', 'series_g', 'series_h', 'venture_round_not_specified', 'series_i', 'series_j', 'undisclosed', 'series_unknown', 'pre_seed', 'post_ipo_secondary', 'post_ipo_equity', 'post_ipo_debt', 'non_equity_assistance', 'late_vc', 'initial_coin_offering', 'growth_equity_vc', 'grant', 'early_vc', 'corporate_round', 'secondary_market', 'product_crowdfunding']

    • industry_or
      array<string>
      default: []
      deprecated

      Names of industries, case-insensitive. Results will only include companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries

      WARNING: Deprecated parameter. Use the industry_id_or field instead. 
    • industry_not
      array<string>
      default: []
      deprecated

      Names of industries, case-insensitive. Results will exclude companies that belong to any of the industries specified in this parameter. Available values: GET /v0/catalog/industries

      WARNING: Deprecated parameter. Use the industry_id_not field instead. 
    • industry_id_or
      array<integer>
      default: []

      Industry codes. You can use any of LinkedIn's Industry Codes V2 or GET /v0/catalog/industries

    • industry_id_not
      array<integer>
      default: []

      Industry ids to exclude.You can use any of LinkedIn's Industry Codes V2 or GET /v0/catalog/industries

    • company_tags_or
      array<string>
      default: []

      Return companies that match any of these keywords

    • company_type
      stringnullable

      Filter by company type.

      • recruiting_agency
      • direct_employer
      • all
    • company_investors_or
      array<string>
      default: []

      Investors of the company

    • company_investors_partial_match_or
      array<string>
      default: []

      Investors of the company. Will return companies for which any of their investors contains any of the substrings passed here. For example, if you pass 'andree', all funds that match it (like 'Andreessen Horowitz', 'Andreessen Horowitz LLC', etc).

    • company_technology_slug_or
      array<string>
      default: []

      Will return jobs from companies that that have mentioned any of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

    • company_technology_slug_and
      array<string>
      default: []

      Will return jobs from companies that that have mentioned all of these technologies in their jobs (not necessarily in the jobs returned). Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

    • company_technology_slug_not
      array<string>
      default: []

      Will return jobs from companies that that haven't mentioned any of these technologies in their jobs. Case sensitive. Pass slugs. Check out all the technologies we track at GET /v0/catalog/technologies

    • only_yc_companies
      booleannullable
      default: false

      Only return YC companies

    • company_location_pattern_or
      array<string>
      default: []

      Return companies whose city matches any of the patterns passed here. Case insensitive. For example, if you pass 'san francisco', it will return companies whose city is 'San Francisco', 'San Francisco Bay Area', etc.

    • company_country_code_or
      array<string>
      default: []

      Return companies whose HQ country code is any of the ones passed here, case sensitive. Pass ISO2 country codes.

    • company_country_code_not
      array<string>
      default: []

      Return companies whose HQ country code is not any of the ones passed here, case sensitive. Pass ISO2 country codes.

    • company_list_id_or
      array<integer>
      default: []

      Return companies that belong to any of the company lists passed here

    • company_list_id_not
      array<integer>
      default: []

      Return companies that don't belong to any of the company lists passed here

    • company_linkedin_url_exists
      booleannullable
      null
      deprecated

      (Use property_exists_or / property_exists_and instead) Only return companies with a LinkedIn URL

    • revealed_company_data
      booleannullable
      null
      deprecated

      This field is deprecated and has no effect.

    • last_funding_round_date_lte
      stringnullable
      datenull2025-05-25

      Only return companies whose last funding round date is before or on this date. Format: 'YYYY-MM-DD'

    • last_funding_round_date_gte
      stringnullable
      datenull2025-05-25

      Only return companies whose last funding round date is after or on this date. Format: 'YYYY-MM-DD'

    • include_total_results
      boolean
      default: false

      When enabled, calculates and returns total_results and total_companies fields in the response. WARNING: This significantly slows down responses as it requires reading the entire dataset. Recommended usage: enable only for the initial request to get totals, then disable for subsequent pagination requests.

    • job_filters
      objectnullable
    • tech_filters
      objectnullable
    • [key: string]
      never
  • type
    stringrequired

    Type of the saved search.

    • companies
    • jobs
  • is_alert_active
    boolean
    default: false

    Is the alert active

  • [key: string]
    any

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.theirstack.com/v0/saved_searches" \  -H "Content-Type: application/json" \  -d '{    "body": {},    "type": "companies"  }'
{
  "id": 0,
  "name": "string",
  "type": "companies",
  "body": {
    "expand_technology_slugs": [],
    "order_by": [
      {
        "desc": true,
        "field": "confidence"
      },
      {
        "desc": true,
        "field": "num_jobs_found"
      },
      {
        "desc": true,
        "field": "num_jobs"
      },
      {
        "desc": true,
        "field": "num_jobs"
      },
      {
        "desc": true,
        "field": "employee_count"
      }
    ],
    "company_name_or": [],
    "company_name_case_insensitive_or": [],
    "company_id_or": [],
    "company_domain_or": [],
    "company_domain_not": [],
    "company_name_not": [],
    "company_name_partial_match_or": [],
    "company_name_partial_match_not": [],
    "company_linkedin_url_or": [],
    "blur_company_data": false,
    "property_exists_or": [],
    "property_exists_and": [],
    "offset": 0,
    "page": 0,
    "limit": 25,
    "company_description_pattern_or": [],
    "company_description_pattern_not": [],
    "company_description_pattern_accent_insensitive": null,
    "min_revenue_usd": null,
    "max_revenue_usd": null,
    "min_employee_count": null,
    "max_employee_count": null,
    "min_employee_count_or_null": null,
    "max_employee_count_or_null": null,
    "min_funding_usd": null,
    "max_funding_usd": null,
    "funding_stage_or": [],
    "industry_or": [],
    "industry_not": [],
    "industry_id_or": [],
    "industry_id_not": [],
    "company_tags_or": [],
    "company_type": "recruiting_agency",
    "company_investors_or": [],
    "company_investors_partial_match_or": [],
    "company_technology_slug_or": [],
    "company_technology_slug_and": [],
    "company_technology_slug_not": [],
    "only_yc_companies": false,
    "company_location_pattern_or": [],
    "company_country_code_or": [],
    "company_country_code_not": [],
    "company_list_id_or": [],
    "company_list_id_not": [],
    "company_linkedin_url_exists": null,
    "revealed_company_data": null,
    "last_funding_round_date_lte": null,
    "last_funding_round_date_gte": null,
    "include_total_results": false,
    "job_filters": {
      "job_title_or": [],
      "job_title_not": [],
      "job_title_pattern_and": [],
      "job_title_pattern_or": [],
      "job_title_pattern_not": [],
      "job_country_code_or": [],
      "job_country_code_not": [],
      "posted_at_max_age_days": null,
      "posted_at_gte": null,
      "posted_at_lte": null,
      "discovered_at_max_age_days": null,
      "discovered_at_min_age_days": null,
      "discovered_at_gte": null,
      "discovered_at_lte": null,
      "job_description_pattern_or": [],
      "job_description_pattern_not": [],
      "job_description_pattern_is_case_insensitive": null,
      "job_description_contains_or": [],
      "job_description_contains_not": [],
      "job_description_pattern_case_sensitive_or": [],
      "remote": null,
      "only_jobs_with_reports_to": null,
      "reports_to_exists": null,
      "final_url_exists": null,
      "only_jobs_with_hiring_managers": null,
      "hiring_managers_exists": null,
      "job_id_or": [],
      "job_id_not": [],
      "job_ids": [],
      "job_seniority_or": [],
      "min_salary_usd": null,
      "max_salary_usd": null,
      "job_technology_slug_or": [],
      "job_technology_slug_not": [],
      "job_technology_slug_and": [],
      "job_location_pattern_or": [],
      "job_location_pattern_not": [],
      "job_location_or": [],
      "job_location_not": [],
      "url_domain_or": [],
      "url_domain_not": [],
      "scraper_name_pattern_or": [],
      "easy_apply": null,
      "employment_statuses_or": []
    },
    "tech_filters": {
      "technology_slug_or": [],
      "technology_category_slug_or": [],
      "technology_parent_category_slug_or": [],
      "max_rank": null,
      "min_jobs": null,
      "max_jobs": null,
      "min_relative_occurrence": null,
      "first_date_found_gte": null,
      "first_date_found_lte": null,
      "last_date_found_gte": null,
      "last_date_found_lte": null,
      "confidence_or": []
    }
  },
  "is_alert_active": false,
  "user_id": 0,
  "team_id": 0,
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z",
  "query": "string",
  "path": "string",
  "querystring_params": {},
  "creator": {
    "id": 0,
    "email": "string",
    "first_name": "string",
    "last_name": "string"
  },
  "is_archived": false,
  "has_active_webhooks": false,
  "frequency": "daily",
  "emails_subscribed": []
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}
{
  "request_id": null,
  "error": {
    "code": "E-001",
    "title": "Not allowed exception",
    "description": "string"
  }
}

How is this guide?

Last updated on

Update Saved Search PATCH

Previous Page

Get Webhook By Id GET

Get a webhook by ID.