Skip to main content
GET
/
v1
/
filters
curl "https://api.v2.dealmachine.com/v1/filters?source_type=properties&per_page=50" \
  -H "Authorization: Bearer dm_sk_live_xxx"
{
  "data": [
    {
      "filter_id": "estimated_value",
      "name": "Estimated Value",
      "description": "Current estimated market value of the property",
      "type": "NUMBER",
      "source_type": "properties",
      "group_id": "financial",
      "options": null,
      "allowed_operators": [
        "range",
        "greater_than",
        "greater_than_or_equal",
        "less_than",
        "less_than_or_equal",
        "equals",
        "not_equals"
      ]
    },
    {
      "filter_id": "property_type",
      "name": "Property Type",
      "description": "Classification of the property",
      "type": "MULTI_SELECT",
      "source_type": "properties",
      "group_id": "property_details",
      "options": [
        { "option_id": 1, "label": "Single Family" },
        { "option_id": 2, "label": "Multi-Family" },
        { "option_id": 3, "label": "Condo" }
      ],
      "allowed_operators": [
        "contains_any",
        "contains_none",
        "contains_all"
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total_results": 215,
    "total_pages": 5,
    "has_next_page": true,
    "has_previous_page": false
  }
}
Discover all available filters for querying properties and people. Returns filter metadata including types, available options, and allowed operators. Use this endpoint to build dynamic filter UIs or to understand which filters are available before constructing search queries.

Query Parameters

ParameterTypeDescription
source_typestringFilter by source type: properties or people
searchstringSearch filters by name or description
pageintegerPage number (default: 1, min: 1)
per_pageintegerResults per page (default: 25, min: 1, max: 250)
curl "https://api.v2.dealmachine.com/v1/filters?source_type=properties&per_page=50" \
  -H "Authorization: Bearer dm_sk_live_xxx"
{
  "data": [
    {
      "filter_id": "estimated_value",
      "name": "Estimated Value",
      "description": "Current estimated market value of the property",
      "type": "NUMBER",
      "source_type": "properties",
      "group_id": "financial",
      "options": null,
      "allowed_operators": [
        "range",
        "greater_than",
        "greater_than_or_equal",
        "less_than",
        "less_than_or_equal",
        "equals",
        "not_equals"
      ]
    },
    {
      "filter_id": "property_type",
      "name": "Property Type",
      "description": "Classification of the property",
      "type": "MULTI_SELECT",
      "source_type": "properties",
      "group_id": "property_details",
      "options": [
        { "option_id": 1, "label": "Single Family" },
        { "option_id": 2, "label": "Multi-Family" },
        { "option_id": 3, "label": "Condo" }
      ],
      "allowed_operators": [
        "contains_any",
        "contains_none",
        "contains_all"
      ]
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 50,
    "total_results": 215,
    "total_pages": 5,
    "has_next_page": true,
    "has_previous_page": false
  }
}

Response Fields

The response follows the standard response envelope with a data array and pagination object. Each filter object in data contains:
FieldTypeDescription
filter_idstringUnique identifier for the filter (e.g., estimated_value)
namestringDisplay name
descriptionstring | nullHuman-readable description
typestringData type: NUMBER, STRING, DATE, MULTI_SELECT, BOOLEAN
source_typestringproperties or people
group_idstring | nullFilter group identifier (e.g., financial, property_details)
optionsarray | nullAvailable values for MULTI_SELECT filters
options[].option_idstring | numberUnique identifier for the option
options[].labelstringDisplay label for the option
allowed_operatorsarrayValid operators for this filter type

Allowed Operators by Type

TypeOperators
NUMBERrange, greater_than, greater_than_or_equal, less_than, less_than_or_equal, equals, not_equals
STRINGcontains, any_of, starts_with, ends_with, equals, not_equals, not_contains
DATEdate_range, is_after, is_before, equals, relative_time
MULTI_SELECTcontains_any, contains_none, contains_all
BOOLEAN(automatic — no operator needed)
This is a discovery endpoint — it returns metadata about available filters, not property data. Use the returned filter definitions to construct queries against the search endpoints.