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

# Zip Code → Contacts

> Target postal codes, optionally widened to a 25-250 mile radius. One filter of the Seamless.AI Contact Search API.

> [!NOTE]
>
> `POST /search/contacts` · Credits charged per results returned · v1, v2 · Part of the [Contact Search API](/api-catalog/contact-search)

## Introduction

Target postal codes, optionally widened to a 25-250 mile radius. Built for territory-based field sales. Combine it with any other filter in the same request (AND logic).

## AI agent prompt

```text theme={null}
Read https://docs.seamless.ai/api-catalog/contact-filters/zip-code. Using SEAMLESS_API_KEY, call POST https://api.seamless.ai/api/client/v1/search/contacts with the `contactZipCode` filter to find contacts matching: <your target>. Page with nextToken and keep each searchResultId.
```

## Example

```bash cURL 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 '{"contactZipCode": ["10001"], "zipCodesRadius": "25", "limit": 25}'
```

```python Python theme={null}
import os, requests
rows = requests.post("https://api.seamless.ai/api/client/v1/search/contacts",
    headers={"Token": os.environ["SEAMLESS_API_KEY"]},
    json={"contactZipCode": ["10001"], "zipCodesRadius": "25", "limit": 25}).json()["data"]
```

## Reference

| Parameter | Type | Required | Description |
| - | - | - | - |
| `contactZipCode` | string\[] | Yes | Filter by the contact's or company's zip/postal code. Prefix a value with `-` to exclude it. Behavior depends on the `locationType` parameter. Any zip/postal code is accepted. Up to 10 values. |
| `zipCodesRadius` | string | No | Widen `contactZipCode` to everything within a radius of each zip code, in miles, sent as a string or number. The spelled-out label (`25 miles`) and the legacy options `1`-`4` (25, 50, 100, 250 miles) are accepted too. |
| `locationType` | string | No | Determines how location filters are applied. `contact` matches the contact's personal location only, `company` the company's headquarters only, `bothOR` either (default), `bothAND` both. Default `"bothOR"`. |
| `limit` | integer | No | Results per page, up to 500. Default `50`. |
| `nextToken` | string | No | Cursor from `supplementalData.nextToken` to fetch the next page. |

**Allowed values for `zipCodesRadius`:** `25`, `50`, `100`, `250`

**Allowed values for `locationType`:** `bothOR`, `bothAND`, `company`, `contact`

## Response

Rows are contact previews with `searchResultId`, name, title, seniority, company, location, and LinkedIn URL, but no emails or phones. Send `searchResultId` to [Contact Research](/api-catalog/contact-enrichment) to get them. Fields: [Contact Search](/api-catalog/contact-search).

Auth: `Token` header ([API keys](/authentication/api-keys)) · Errors: [status codes](/api-http-status-codes) · Billing: [rate limits and credits](/rate-limits-and-credits)


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