The Search Workflow
Searching follows three steps:Discover
Use the discovery endpoints to find available filters and fields: - List
Filters — see what you can search by - List
Fields — see what data you can return
Build
Construct your search request: - Pick filters and set their operators and values - Choose which
fields to include in the response - Set pagination and sorting preferences
Search
Send your request to the appropriate search endpoint: - Search
Properties —
POST /v1/properties/search -
Search People — POST /v1/people/searchSearch Endpoints
| Endpoint | Method | Description |
|---|---|---|
/v1/properties/search | POST | Search for properties |
/v1/people/search | POST | Search for people/contacts |
Request Structure
Every search request has the same structure:| Parameter | Type | Required | Description |
|---|---|---|---|
locations | array | Conditional | Array of location objects defining where to search (max 15, OR logic). Required unless filters or Query Builder protocol filters are provided. |
filters | array | Conditional | Array of filter objects. Required unless locations or Query Builder protocol filters are provided. |
fields | string[] | No | Field IDs to include in results. Omit for defaults. |
page | integer | No | Page number (default: 1) |
per_page | integer | No | Results per page (default: 25, max: 250) |
sort | array | No | Sort objects for ordering results |
include_lists | object | No | Restrict results to records in list IDs for the searched entity (property_list_ids, people_list_ids, or company_list_ids). |
exclude_lists | object | No | Exclude records in list IDs for the searched entity. |
exclude_previously_exported | boolean/object | No | Exclude records already exported by your organization. Pass true for the default entity criteria or a full Query Builder object. |
bigquery_data_environment | integer | No | Query Builder dataset environment: 1 production, 2 staging, 3 development. |
Search Logic
Locations use OR logic — a record is included if it falls within any of the provided locations. Filters use AND logic — every filter must match for a record to be included.- In Harris County, TX OR ZIP 78704 (locations — OR)
- AND valued between 600k (filter — AND)
- AND owned by an absentee owner (filter — AND)
contains_any or any_of. For geographic OR logic, use multiple locations.
List And Export Protocol Filters
Search, count, and export endpoints also accept the Query Builder protocol fields for list membership and previous-export exclusion. The API fillsorganization_id and organization_partition_key from your API key, so most requests only need list IDs or true for export exclusion:
people_list_ids; for property endpoints, use property_list_ids. You may also pass the full exclude_previously_exported object when you need date, source, export type, credit type, or credits_used criteria.
Field Selection
Use thefields array to control which data points appear in the response:
- Pass an array of
field_idstrings from the List Fields endpoint. - Omit
fieldsor pass an empty array to get the default set of fields. - Some base fields (address, internal ID) are always included regardless. See Response Format.
Complete Example
Here’s a full end-to-end example: find high-equity absentee-owned single-family homes across Harris County and Dallas County in Texas, sorted by value.Example Response
Related Guides
Locations
Define where to search — states, counties, ZIP codes, radius, and polygons.
Filter Values
Complete reference for every operator and its expected value shape.
Pagination & Sorting
Control page size, navigate results, and sort by multiple fields.
Response Format
Understand the data + pagination response envelope.
Filters
Learn about filter types, operators, and categories.
Fields
Explore available data fields and their capabilities.
Credits
Understand how search requests consume credits.