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

# Fields

> Understanding fields in the DealMachine API

The individual data points available for properties and people in DealMachine. Each field has a type, a source, and capabilities that determine how it can be used.

## Source Types

Fields are organized by source type:

| Source Type  | Description                                              |
| ------------ | -------------------------------------------------------- |
| `properties` | Property-related fields (address, value, lot size, etc.) |
| `people`     | Contact/owner-related fields (name, phone, email, etc.)  |

## Field Types

Each field has a data type that determines how its values are stored and queried:

| Type           | Description            | Examples                                  |
| -------------- | ---------------------- | ----------------------------------------- |
| `NUMBER`       | Numeric values         | Estimated value, square footage, bedrooms |
| `STRING`       | Text values            | City name, owner name, address            |
| `DATE`         | Date values            | Sale date, list date, year built          |
| `MULTI_SELECT` | Predefined option sets | Property type, zoning, MLS status         |
| `BOOLEAN`      | True/false values      | Is absentee owner, has pool, is vacant    |

## Field Capabilities

Each field has a capability flag that indicates how it can be used:

| Capability      | Description                    |
| --------------- | ------------------------------ |
| `is_filterable` | Can be used as a search filter |

## Field Groups

Fields are organized into [groups](/concepts/groups). Use the `group_id` to browse fields by category:

```bash theme={null}
curl "https://api.v2.dealmachine.com/v1/fields?source_type=properties&group_id=equity_and_value_info" \
  -H "Authorization: Bearer dm_sk_live_xxx"
```

See the [Groups](/concepts/groups) page for the complete list of all group IDs.

## Discovering Fields

Use the [List Fields](/api-reference/fields/list-fields) endpoint to discover all available fields:

```bash theme={null}
curl "https://api.v2.dealmachine.com/v1/fields?source_type=properties" \
  -H "Authorization: Bearer dm_sk_live_xxx"
```

You can filter by source type, group, or search by name:

```bash theme={null}
# Get only financial fields
curl "https://api.v2.dealmachine.com/v1/fields?group_id=financial" \
  -H "Authorization: Bearer dm_sk_live_xxx"

# Search for equity-related fields
curl "https://api.v2.dealmachine.com/v1/fields?search=equity" \
  -H "Authorization: Bearer dm_sk_live_xxx"
```

## Selecting Fields in Queries

Use the `fields` parameter to control which data points appear in supported search, lookup, export,
and enrichment responses:

```json theme={null}
{
  "fields": ["estimated_value", "equity_percent", "last_sale_date"]
}
```

* Pass an array of `field_id` strings from the discovery endpoint above.
* **Omit `fields`** or pass an empty array to receive the default set of fields.
* Some base fields (address, internal ID) are **always included** regardless of your selection. See [Response Format](/concepts/response-format#always-included-fields).
* Requesting fewer fields results in smaller payloads and faster responses.
* In a people-anchored property search, requesting property fields beyond address/context adds
  property credits. Filters do not add output credits by themselves. See [Credit-efficient
  queries](/concepts/credit-efficient-queries) before selecting fields for mixed property and people
  searches.

Only fields available for your chosen `source_type` can be requested. Use `source_type=properties` with [Search Properties](/api-reference/properties/search-properties) and `source_type=people` with [Search People](/api-reference/people/search-people).

For example, `has_pets` is an API-available people field and people filter. Request it from a
people lookup, people search, person enrichment, or a search with a people result anchor. It is not
a property attribute and is not returned by `GET /v1/properties/{id}`.

The following public Endpoints accept `fields`:

| Workflow             | Endpoints                                             | Format                       |
| -------------------- | ----------------------------------------------------- | ---------------------------- |
| Search and export    | Property and people search/export                     | JSON array                   |
| Single-record lookup | `GET /v1/properties/{id}`, `GET /v1/people/{id}`      | Comma-separated query string |
| Batch person lookup  | `POST /v1/people/ids`                                 | JSON array                   |
| Property enrichment  | Address, reverse-geocode, latitude/longitude, and APN | JSON array                   |
| Person enrichment    | Email, phone, and name                                | JSON array                   |

`GET /v1/addresses/autocomplete` is intentionally discovery-only and does not accept `fields` or
perform enrichment. Select a suggestion first, then send its address or normalized location to the
appropriate search or enrichment Endpoint with the fields you need.

For the full search workflow, see [Searching](/concepts/searching).

## Fields vs Filters

* **Fields** describe what data is available (columns in your results)
* **Filters** describe how you can query that data (search criteria)

Fields with `is_filterable: true` have a corresponding filter. Use the [List Filters](/api-reference/filters/list-filters) endpoint to see filter-specific metadata like allowed operators and options.
