---
title: "Search"
method: POST
path: "/search"
tags: ["search"]
---

# Search

`POST /search`

## Request

- Base URL: `https://api.leadsforge.ai`
- URL: `https://api.leadsforge.ai/search`
- Auth: `ApiKeyAuth` (a scheme the document does not define)

Search leads. Accepts the full person filter set. Beyond the documented fields the body also accepts exclusion filters to skip contacts you already own: excludeEmails ([]string), excludeDomains ([]string), excludeLinkedInURLs ([]string). Use companyDomains.include to target specific companies (e.g. domains returned by /lookalikes/preview or /lookalikes/search). Free-text fields (jobTitles, leadLocations, companyLocations, technologies, keywords, companyNames) accept any value (casing and partial terms are matched), so there is no value list to fetch. Controlled fields must use exact values from their discovery endpoints under /search/filters (industries, seniorities, departments, companyTypes, fundingTypes, revenueRanges).

## Query parameters

- `cursor` string

## Request body

- PersonSearchRequest
  - `companyBusinessModels` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyDomains` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyEmployeeNumberRange` MinMaxFilter
    - `max` integer
    - `min` integer
  - `companyFoundedYearRange` MinMaxFilter
    - `max` integer
    - `min` integer
  - `companyFundingRounds` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyIDs` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyIndustries` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyKeywords` IncludeExcludeAllFilter
    - `exclude` string[]
    - `include` string[]
    - `matchAll` boolean
  - `companyLocations` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyNames` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyNiches` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyRequired` boolean
  - `companyRevenueRanges` RevenueCategory[]
  - `companyTechnologies` AnyAllFilter
    - `all` string[]
    - `any` string[]
  - `companyTypes` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `companyYearsInBusinessRange` MinMaxFilter
    - `max` integer
    - `min` integer
  - `leadDepartments` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `leadIDs` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `leadJobTitles` JobTitleFilter
    - `exactMatch` boolean
    - `exclude` string[]
    - `include` string[]
  - `leadLanguages` LanguageFilter
    - `exclude` string[]
    - `include` string[]
    - `primaryOnly` boolean
  - `leadLocations` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `leadSeniorities` IncludeExcludeFilter
    - `exclude` string[]
    - `include` string[]
  - `leadTenure` MinMaxFilter
    - `max` integer
    - `min` integer
  - `limit` integer
  - `maxContactsPerCompany` integer

## Response `200`

Search response

- SearchResponse
  - `cursor` string
  - `leads` Lead[]
    - `company` Company
      - `domain` string
      - `employeeCount` integer
      - `id` string
      - `industry` string
      - `keywords` string[]
      - `location` Location
        - `city` string
        - `country` string
        - `state` string
      - `revenueRange` RevenueRange
        - `end` integer
        - `start` integer
      - `website` string
      - `yearsInBusiness` integer
    - `firstName` string
    - `id` string
    - `jobTitle` string
    - `lastName` string
    - `linkedinUrl` string
    - `location` Location
      - `city` string
      - `country` string
      - `state` string
  - `warnings` FilterWarning[]
    - `filter` string
    - `value` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `410`: Cursor expired or invalid, or the search has returned the maximum number of results - start a new search with narrower filters
- `429`: Too Many Requests
- `500`: Internal Server Error

---

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