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

# Contact Search API

> Find B2B contacts by title, seniority, department, company, location, industry, technology, funding, and company news. Reverse-look up contacts by email or phone on v2.

The Contact Search API returns people who match your filters, with the job, company, and location attributes you need to choose who to enrich. Each result carries a `searchResultId` that you pass to the [Contact Research API](/api-catalog/contact-enrichment) to unlock emails and phone numbers.

> **Endpoint**
>
> `POST /search/contacts`

> **Credits**
>
> Charged per results returned. Empty pages are free. [Details](/rate-limits-and-credits)

> **Page size**
>
> Up to 500 per page. Paginate with `nextToken`.

## Use it for

* Building prospect lists by persona: title, seniority, and department at target accounts.
* Finding the buying committee at a list of domains (up to 100 domains per request).
* Trigger-based prospecting: recent job changes, funding rounds, and company news.
* **Reverse lookup (v2):** pass `emailAddress` or `phoneNumber` to find who an email or phone number belongs to.

## Filters

| Category | Filters |
| - | - |
| Person | `fullName`, `jobTitle`, `titlesExactMatch`, `seniority`, `department`, `contactKeyword`, `keywordsIsOr` |
| Company | `companyName`, `companyNameSearchType`, `companyDomain`, `companySize`, `companyRevenue`, `companyFoundedOn`, `companyType` |
| Industry | `industry`, `industrySicCodes`, `industryNaicsCodes` |
| Location | `locations`, `locationRadius`, `contactState`, `contactCountry`, `contactZipCode`, `zipCodesRadius`, `locationType`, `timezones` |
| Technology | `technologies`, `technologiesIsOr` |
| Signals | `jobChanges`, `pastCompany`, `newsTypes`, `newsTypeDates`, `companyLatestFundingDates`, `companyLatestFundingClassifications`, `companyLatestFundingTotals` |
| Freshness | `lastModifiedAfter`, `lastModifiedBefore` |
| Reverse lookup (v2 only) | `emailAddress`, `phoneNumber` (up to 100 each) |
| Paging | `limit`, `nextToken`, `page`, `savedSearchId` |

Allowed values:

* `seniority`: `C-Level`, `VP`, `Director`, `Manager`, `Senior`, `Mid-Level`, `Entry Level`, `Other`
* `department`: `Sales`, `Marketing`, `Engineering`, `IT`, `Finance`, `Human Resources`, `Operations`, `Support`, `Legal`, `Project Management`, `Other`
* `companySize`: `2 - 10` through `10,001+`
* `companyRevenue`: `$0 - $100K` through `$1B+`
* `newsTypes`: `Acquisition`, `Corporate Challenges`, `Cost Cutting`, `Expansion`, `Investment`, `Leadership`, `Partnership`, `Recognition`

The [API reference](/api-reference/v1/contact-search/search-contacts) has the full schema and every allowed value.

### Every filter as its own API

Each filter has a dedicated page with an example, a parameter reference, allowed values, and an AI agent prompt.

| Person | Company | Location | Signals |
| - | - | - | - |
| [Job Title](/api-catalog/contact-filters/job-title) | [Company Name](/api-catalog/contact-filters/company-name) | [Location](/api-catalog/contact-filters/location) | [Job Change](/api-catalog/contact-filters/job-changes) |
| [Seniority](/api-catalog/contact-filters/seniority) | [Company Domain](/api-catalog/contact-filters/company-domain) | [State or Region](/api-catalog/contact-filters/state) | [Past Company](/api-catalog/contact-filters/past-company) |
| [Department](/api-catalog/contact-filters/department) | [Company Size](/api-catalog/contact-filters/company-size) | [Country](/api-catalog/contact-filters/country) | [Company News](/api-catalog/contact-filters/company-news) |
| [Full Name](/api-catalog/contact-filters/full-name) | [Company Revenue](/api-catalog/contact-filters/company-revenue) | [Zip Code](/api-catalog/contact-filters/zip-code) | [Funding Date](/api-catalog/contact-filters/funding-date) |
| [Profile Keyword](/api-catalog/contact-filters/profile-keyword) | [Company Age](/api-catalog/contact-filters/company-age) | [Timezone](/api-catalog/contact-filters/timezone) | [Funding Stage](/api-catalog/contact-filters/funding-stage) |
| [Saved Search](/api-catalog/contact-filters/saved-search) | [Company Type](/api-catalog/contact-filters/company-type) | | [Total Funding](/api-catalog/contact-filters/funding-total) |
| [Last Updated Date](/api-catalog/contact-filters/last-modified) | [Industry](/api-catalog/contact-filters/industry) · [SIC](/api-catalog/contact-filters/sic-code) · [NAICS](/api-catalog/contact-filters/naics-code) | | [Technology](/api-catalog/contact-filters/technologies) |

Reverse lookup by email or phone: [Email → Profile](/api-catalog/email-to-profile) and [Phone → Profile](/api-catalog/phone-to-profile).

> [!TIP]
>
> Location values must match Seamless spelling exactly. Resolve them first with the [Location Lookup API](/api-catalog/location-lookup). Search returns non-fatal `warnings` with suggestions when a location matches nothing.

## Example

```bash Persona search theme={null}
curl -X POST https://api.seamless.ai/api/client/v1/search/contacts \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jobTitle": ["Head of Revenue Operations"],
    "seniority": ["VP", "Director"],
    "companySize": ["201 - 500", "501 - 1,000"],
    "locations": ["Texas"],
    "limit": 25
  }'
```

```bash Reverse email lookup (v2) theme={null}
curl -X POST https://api.seamless.ai/api/client/v2/search/contacts \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "emailAddress": ["jane.doe@example.com"] }'
```

```bash Recent new hires theme={null}
curl -X POST https://api.seamless.ai/api/client/v1/search/contacts \
  -H "Token: $SEAMLESS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jobChanges": { "changeType": "New Hire" },
    "seniority": ["C-Level"],
    "limit": 50
  }'
```

```json Response (trimmed) theme={null}
{
  "data": [
    {
      "searchResultId": "ctc_sr_...",
      "fullName": "Jane Doe",
      "jobTitle": "VP, Revenue Operations",
      "seniority": "VP",
      "department": "Operations",
      "companyName": "Acme Corp",
      "domain": "acme.com",
      "city": "Austin",
      "state": "Texas",
      "country": "United States",
      "liUrl": "https://www.linkedin.com/in/...",
      "companySize": "201 - 500",
      "timeAtRole": "1 year 4 months"
    }
  ],
  "supplementalData": { "isMore": true, "total": 1243, "nextToken": "..." }
}
```

Search results do not include emails or phone numbers. Send the `searchResultId` to the [Contact Research API](/api-catalog/contact-enrichment) to get them.

## Related

* [Company Search API](/api-catalog/company-search)
* [Data dictionary](/api-catalog/data-dictionary)
* [API reference: Search contacts](/api-reference/v1/contact-search/search-contacts)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.