Koskamo

DealMachine MCP

A remote MCP server that enables AI agents to search and enrich US property, owner, people, and company data for sales and lead generation purposes.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

DealMachine MCP logo, by DealMachineCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by DealMachine
MCP endpoint (Streamable HTTP)
https://mcp.dealmachine.com
Vendor documentation

What you can do with it

  • Search US property data
  • Enrich owner information
  • Find people and company data
  • Generate sales leads

Source and maintenance

Community listingRegistry 0.3.0
Maintenance checked

Protocol and capabilities

Server
dealmachine 0.3.0
MCP protocol
2025-06-18
Tools
128 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Use DealMachine for the property research, owner and contact data, prospect, list, task, driving or direct mail work the user requests. Each available operation has its own tool and input schema. Use only the tools listed by this connection. Counts and supported cost estimates are free. Record retrieval and exports can consume credits. Estimate the cost and obtain approval before paid work, writes, mail delivery or webhook delivery. Never automatically retry writes. Use the connected account's existing entitlements. If a feature is unavailable, explain the account limitation and stop. Do not initiate a subscription purchase or upgrade. For exports of property-owner contacts, use contact_audience=owners and anchor=person when supported. Count and bound exports before retrieving records. Never request passwords, payment details or API keys in conversation.

Tools

128 advertised

dealmachine_signup
Advertised by the server during the last successful anonymous check.
Advertised read-only

Start a free DealMachine account. Returns the secure browser signup URL. Ask the user to finish signup and connect DealMachine using OAuth. Never ask for passwords, payment details or API keys in chat. Signup does not purchase a plan.

dealmachine_signup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
dealmachine_signup annotations
{
  "title": "Start a free DealMachine account",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_account
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read your active plan and remaining data credits. Free accounts can use this. After Stripe payment, check plan.is_paid and the current balance before retrying approved enrichment. A checkout URL or the user saying they paid is not proof of activation.

dealmachine_account input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
dealmachine_account annotations
{
  "title": "View plan and available credits",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_enrich_address
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns a property matched by full or parsed street address, including property details and optional contacts. A matched property costs one property credit; returned contacts can consume people credits. No credits are charged when no property matches. `contact_audience=none` returns property-only data.

dealmachine_enrich_address input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "zip": {
      "type": "string",
      "description": "5-digit ZIP code"
    },
    "city": {
      "type": "string",
      "description": "City name"
    },
    "state": {
      "type": "string",
      "description": "Two-letter state code"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine property field IDs to include in results"
    },
    "street": {
      "type": "string",
      "description": "Street address component only (e.g. \"123 Main St\"); separate city, state, and ZIP fields are available"
    },
    "full_address": {
      "type": "string",
      "description": "Complete address string (e.g. \"123 Main St, Austin, TX 78701\"), as an alternative to the parsed address fields"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
    }
  }
}
dealmachine_enrich_address annotations
{
  "title": "Enrich Property by Address",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_enrich_latlng
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns the closest property within 300 feet of GPS coordinates, including property details and optional contacts. A matched property costs one property credit; returned contacts can consume people credits. No credits are charged when no property matches. `contact_audience=none` returns property-only data.

dealmachine_enrich_latlng input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "latitude",
    "longitude"
  ],
  "properties": {
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine property field IDs to include in results"
    },
    "latitude": {
      "type": "number",
      "description": "Latitude"
    },
    "longitude": {
      "type": "number",
      "description": "Longitude"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
    }
  }
}
dealmachine_enrich_latlng annotations
{
  "title": "Enrich Property by Coordinates",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_enrich_apn
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns a property matched by Assessor's Parcel Number (APN), with optional location narrowing and contacts. APN formatting is normalized automatically. A matched property costs one property credit; returned contacts can consume people credits.

dealmachine_enrich_apn input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "apn"
  ],
  "properties": {
    "apn": {
      "type": "string",
      "description": "Assessor's Parcel Number (e.g. \"0123-45-6789\")"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine property field IDs to include in results"
    },
    "location": {
      "type": "object",
      "required": [
        "type",
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
        },
        "type": {
          "enum": [
            "state",
            "zip_code",
            "county",
            "city"
          ],
          "type": "string",
          "description": "Location type"
        }
      },
      "description": "Optional location to narrow results, including a city place ID"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "`none` returns property-only data with zero people credits; other values include matching contacts"
    }
  }
}
dealmachine_enrich_apn annotations
{
  "title": "Enrich Property by APN",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_enrich_email
Advertised by the server during the last successful anonymous check.
Advertised destructive

Look up a person by email address. Returns contact info, demographics, and optionally associated properties. Costs 1 people data credit per matched person (no charge if no match).

dealmachine_enrich_email input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
      "description": "Email address"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
    },
    "location": {
      "type": "object",
      "required": [
        "type",
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
        },
        "type": {
          "enum": [
            "state",
            "zip_code",
            "county",
            "city"
          ],
          "type": "string",
          "description": "Location type"
        }
      },
      "description": "Optional match location by state, ZIP, county, or numeric city place ID"
    },
    "include_properties": {
      "type": "boolean",
      "description": "Include associated properties for each matched person. Costs 1 property data credit per property."
    }
  }
}
dealmachine_enrich_email annotations
{
  "title": "Enrich Person by Email",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_enrich_phone
Advertised by the server during the last successful anonymous check.
Advertised destructive

Look up a person by phone number. Returns contact info, demographics, and optionally associated properties. Costs 1 people data credit per matched person (no charge if no match).

dealmachine_enrich_phone input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "description": "Phone number (e.g. \"5551234567\" or \"+15551234567\")"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
    },
    "location": {
      "type": "object",
      "required": [
        "type",
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
        },
        "type": {
          "enum": [
            "state",
            "zip_code",
            "county",
            "city"
          ],
          "type": "string",
          "description": "Location type"
        }
      },
      "description": "Optional match location by state, ZIP, county, or numeric city place ID"
    },
    "include_properties": {
      "type": "boolean",
      "description": "Include associated properties for each matched person. Costs 1 property data credit per property."
    }
  }
}
dealmachine_enrich_phone annotations
{
  "title": "Enrich Person by Phone",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_enrich_name
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns paginated people matched by name, with optional location narrowing and associated properties. `estimate_cost=true` returns people and associated-property counts without records or credit use. Returned people cost one people credit each; associated properties can consume property credits.

dealmachine_enrich_name input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "last_name"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Page number (default: 1)"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit"
    },
    "location": {
      "type": "object",
      "required": [
        "type",
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "State abbreviation, ZIP code, county FIPS, or numeric city place ID"
        },
        "type": {
          "enum": [
            "state",
            "zip_code",
            "county",
            "city"
          ],
          "type": "string",
          "description": "Location type"
        }
      },
      "description": "Optional match location by state, ZIP, county, or numeric city place ID"
    },
    "per_page": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Results per page (default: 25, max: 100)"
    },
    "last_name": {
      "type": "string",
      "description": "Last name (required)"
    },
    "first_name": {
      "type": "string",
      "description": "First name to narrow results"
    },
    "estimate_cost": {
      "type": "boolean",
      "description": "Preview people counts and, when include_properties=true, associated property counts and estimated credits without returning data or consuming credits"
    },
    "middle_initial": {
      "type": "string",
      "maxLength": 1,
      "description": "Middle initial (single character) to narrow results"
    },
    "include_properties": {
      "type": "boolean",
      "description": "Include associated properties for each person. Costs 1 property data credit per property."
    }
  }
}
dealmachine_enrich_name annotations
{
  "title": "Enrich People by Name",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_filters
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns DealMachine search filters with filter IDs, source types, operators, and valid options. A `search` value performs a fuzzy concept match across labels, aliases, and option values; without it, the response includes all pages. This read-only request is free.

dealmachine_filters input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "search": {
      "type": "string",
      "description": "Fuzzy concept search across filter metadata"
    },
    "group_id": {
      "type": "string",
      "description": "Filter by group ID"
    },
    "source_type": {
      "enum": [
        "properties",
        "people"
      ],
      "type": "string",
      "description": "Filter by source type (properties or people)"
    }
  }
}
dealmachine_filters annotations
{
  "title": "List DealMachine Search Filters",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_fields
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns available DealMachine data fields with field ID, source type, data type, and description. A `search` value performs a fuzzy match across field metadata; without it, the response includes all pages. This read-only request is free.

dealmachine_fields input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "search": {
      "type": "string",
      "description": "Fuzzy concept search across field metadata"
    },
    "group_id": {
      "type": "string",
      "description": "Filter by group ID"
    },
    "source_type": {
      "enum": [
        "properties",
        "people"
      ],
      "type": "string",
      "description": "Filter by source type"
    }
  }
}
dealmachine_fields annotations
{
  "title": "List DealMachine Data Fields",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_usage
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns live credit usage for the current billing cycle, including the total cap, spendable balance, monthly and additional pools, and usage by entity type. This read-only request is free.

dealmachine_usage input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
dealmachine_usage annotations
{
  "title": "View DealMachine Credit Usage",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_whoami
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns whether the current credential is valid, the active organization name, and the authentication type. This read-only request is free.

dealmachine_whoami input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
dealmachine_whoami annotations
{
  "title": "Check DealMachine Authentication",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_property_search
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns properties matching locations and filters, with requested fields and optional contacts. `estimate_cost=true` returns a credit estimate without records or credit use. Returned property data and contacts can consume credits.

dealmachine_property_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "locations"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1
    },
    "sort": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "field_id",
          "direction"
        ],
        "properties": {
          "field_id": {
            "type": "string"
          },
          "direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          }
        }
      }
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filter_id",
          "value"
        ],
        "properties": {
          "value": {},
          "operator": {
            "type": "string"
          },
          "filter_id": {
            "type": "string",
            "description": "Valid DealMachine filter ID"
          }
        }
      }
    },
    "per_page": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
          },
          "east": {
            "type": "number"
          },
          "type": {
            "enum": [
              "state",
              "county",
              "city",
              "zip_code",
              "radius",
              "polygon",
              "bounds"
            ],
            "type": "string"
          },
          "west": {
            "type": "number"
          },
          "north": {
            "type": "number"
          },
          "south": {
            "type": "number"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "polygon: [[lng,lat],...]"
          },
          "radius_miles": {
            "type": "number"
          }
        },
        "description": "Search area. Locations OR together across the array."
      },
      "minItems": 1
    },
    "estimate_cost": {
      "type": "boolean",
      "description": "true = preview cost, no data returned"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "default: owners; \"none\" skips contacts"
    }
  }
}
dealmachine_property_search annotations
{
  "title": "Search Properties",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_property_count
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the number of properties matching locations and filters without consuming credits.

dealmachine_property_count input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "locations"
  ],
  "properties": {
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filter_id",
          "value"
        ],
        "properties": {
          "value": {},
          "operator": {
            "type": "string"
          },
          "filter_id": {
            "type": "string",
            "description": "Valid DealMachine filter ID"
          }
        }
      }
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
          },
          "east": {
            "type": "number"
          },
          "type": {
            "enum": [
              "state",
              "county",
              "city",
              "zip_code",
              "radius",
              "polygon",
              "bounds"
            ],
            "type": "string"
          },
          "west": {
            "type": "number"
          },
          "north": {
            "type": "number"
          },
          "south": {
            "type": "number"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "polygon: [[lng,lat],...]"
          },
          "radius_miles": {
            "type": "number"
          }
        },
        "description": "Search area. Locations OR together across the array."
      },
      "minItems": 1
    }
  }
}
dealmachine_property_count annotations
{
  "title": "Count Matching Properties",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_property_export
Advertised by the server during the last successful anonymous check.
Advertised destructive

Creates a downloadable CSV of properties or property-owner contacts matching locations and filters. Defaults to owner contact rows (`contact_audience=owners`, `anchor=person`) with names, phones, emails, and property addresses. `contact_audience=none` or `anchor=property` produces property rows without contacts. Exported records can consume credits.

dealmachine_property_export input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "locations"
  ],
  "properties": {
    "limit": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1,
      "description": "Maximum records to export"
    },
    "anchor": {
      "enum": [
        "person",
        "phone",
        "email",
        "property"
      ],
      "type": "string",
      "description": "default: person for property-owner contact rows"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Additional fields to include. Omit for the owner-contact default fields."
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filter_id",
          "value"
        ],
        "properties": {
          "value": {},
          "operator": {
            "type": "string"
          },
          "filter_id": {
            "type": "string",
            "description": "Valid DealMachine filter ID"
          }
        }
      }
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
          },
          "east": {
            "type": "number"
          },
          "type": {
            "enum": [
              "state",
              "county",
              "city",
              "zip_code",
              "radius",
              "polygon",
              "bounds"
            ],
            "type": "string"
          },
          "west": {
            "type": "number"
          },
          "north": {
            "type": "number"
          },
          "south": {
            "type": "number"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "polygon: [[lng,lat],...]"
          },
          "radius_miles": {
            "type": "number"
          }
        },
        "description": "Search area. Locations OR together across the array."
      },
      "minItems": 1
    },
    "scrub_dnc": {
      "type": "boolean",
      "description": "Exclude contacts on the Do Not Call registry"
    },
    "mobile_only": {
      "type": "boolean",
      "description": "Only include wireless phone numbers"
    },
    "landline_only": {
      "type": "boolean",
      "description": "Only include landline phone numbers"
    },
    "require_email": {
      "type": "boolean",
      "description": "Only include contacts with an email address"
    },
    "require_phone": {
      "type": "boolean",
      "description": "Only include contacts with a phone number"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "default: owners; \"none\" creates a property-only export"
    },
    "active_phones_only": {
      "type": "boolean",
      "description": "Only include phone numbers with active reported phone activity"
    }
  }
}
dealmachine_property_export annotations
{
  "title": "Export Property Owner Leads",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_property_get
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns one property by DealMachine property ID. Enriched data costs one property credit unless `enrich=false`; owner contacts can consume people credits. `contact_audience=none` returns property-only data.

dealmachine_property_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "prop_XXXXX"
    },
    "enrich": {
      "type": "boolean",
      "description": "false = base fields only, 0 credits"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "description": "DealMachine property field IDs"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "default: owners; use none for property-only data with zero people credits"
    }
  }
}
dealmachine_property_get annotations
{
  "title": "Get Property Details",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_property_get_many
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns up to 25 properties by DealMachine property ID. Owner contacts can consume people credits; `contact_audience=none` returns property-only data. Same-cycle repeats are free.

dealmachine_property_get_many input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 25,
      "minItems": 1
    },
    "enrich": {
      "type": "boolean"
    },
    "contact_audience": {
      "enum": [
        "owners",
        "owners_and_family",
        "renters",
        "residents",
        "none"
      ],
      "type": "string",
      "description": "default: owners; use none for property-only data with zero people credits"
    }
  }
}
dealmachine_property_get_many annotations
{
  "title": "Get Multiple Properties",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_comps
Advertised by the server during the last successful anonymous check.
Advertised destructive

Find comparable sales + active listings for up to 25 subject properties. Costs 1 property data credit per subject found. Location/criteria optional (sensible defaults).

dealmachine_comps input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "property_ids"
  ],
  "properties": {
    "criteria": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "sort_by": {
          "enum": [
            "distance",
            "price",
            "date",
            "match"
          ],
          "type": "string"
        },
        "timeframe": {
          "enum": [
            "3months",
            "6months",
            "12months",
            "all"
          ],
          "type": "string"
        },
        "max_sale_price": {
          "type": "number",
          "minimum": 0
        },
        "min_sale_price": {
          "type": "number",
          "minimum": 0
        },
        "property_types": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "sort_direction": {
          "enum": [
            "asc",
            "desc"
          ],
          "type": "string"
        },
        "include_pending": {
          "type": "boolean"
        },
        "bedroom_tolerance": {
          "type": "number",
          "maximum": 10,
          "minimum": 0
        },
        "bathroom_tolerance": {
          "type": "number",
          "maximum": 10,
          "minimum": 0
        },
        "max_days_on_market": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": 1
        },
        "max_price_per_sqft": {
          "type": "number",
          "minimum": 0
        },
        "min_price_per_sqft": {
          "type": "number",
          "minimum": 0
        },
        "match_property_type": {
          "type": "boolean"
        },
        "include_foreclosures": {
          "type": "boolean"
        },
        "sqft_tolerance_percent": {
          "type": "number",
          "maximum": 100,
          "minimum": 0
        },
        "include_active_listings": {
          "type": "boolean"
        },
        "lot_size_tolerance_percent": {
          "type": "number",
          "maximum": 100,
          "minimum": 0
        }
      }
    },
    "location": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "east": {
          "type": "number"
        },
        "type": {
          "enum": [
            "radius",
            "polygon",
            "bounds"
          ],
          "type": "string"
        },
        "west": {
          "type": "number"
        },
        "north": {
          "type": "number"
        },
        "south": {
          "type": "number"
        },
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        },
        "coordinates": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "maxItems": 2,
            "minItems": 2
          },
          "minItems": 3
        },
        "radius_miles": {
          "type": "number",
          "maximum": 25,
          "minimum": 0.1
        }
      }
    },
    "property_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 25,
      "minItems": 1
    }
  }
}
dealmachine_comps annotations
{
  "title": "Find Comparable Properties",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_people_search
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns people matching locations and filters, with requested fields. Filters use the people catalog; property filters return filter_source_mismatch. `estimate_cost=true` returns a credit estimate without records or credit use. Returned records can consume credits.

dealmachine_people_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "locations"
  ],
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1
    },
    "sort": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "field_id",
          "direction"
        ],
        "properties": {
          "field_id": {
            "type": "string"
          },
          "direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string"
          }
        }
      }
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filter_id",
          "value"
        ],
        "properties": {
          "value": {},
          "operator": {
            "type": "string"
          },
          "filter_id": {
            "type": "string",
            "description": "Valid DealMachine filter ID"
          }
        }
      }
    },
    "per_page": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
          },
          "east": {
            "type": "number"
          },
          "type": {
            "enum": [
              "state",
              "county",
              "city",
              "zip_code",
              "radius",
              "polygon",
              "bounds"
            ],
            "type": "string"
          },
          "west": {
            "type": "number"
          },
          "north": {
            "type": "number"
          },
          "south": {
            "type": "number"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "polygon: [[lng,lat],...]"
          },
          "radius_miles": {
            "type": "number"
          }
        },
        "description": "Search area. Locations OR together across the array."
      },
      "minItems": 1
    },
    "estimate_cost": {
      "type": "boolean"
    }
  }
}
dealmachine_people_search annotations
{
  "title": "Search People",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_people_count
Advertised by the server during the last successful anonymous check.
Advertised read-only

Count matching people without consuming credits. Filters use the people catalog.

dealmachine_people_count input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "locations"
  ],
  "properties": {
    "filters": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "filter_id",
          "value"
        ],
        "properties": {
          "value": {},
          "operator": {
            "type": "string"
          },
          "filter_id": {
            "type": "string",
            "description": "Valid DealMachine filter ID"
          }
        }
      }
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "state (2-letter), county (5-digit FIPS), city (place ID), or zip_code"
          },
          "east": {
            "type": "number"
          },
          "type": {
            "enum": [
              "state",
              "county",
              "city",
              "zip_code",
              "radius",
              "polygon",
              "bounds"
            ],
            "type": "string"
          },
          "west": {
            "type": "number"
          },
          "north": {
            "type": "number"
          },
          "south": {
            "type": "number"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          },
          "coordinates": {
            "type": "array",
            "items": {
              "type": "array",
              "items": {
                "type": "number"
              }
            },
            "description": "polygon: [[lng,lat],...]"
          },
          "radius_miles": {
            "type": "number"
          }
        },
        "description": "Search area. Locations OR together across the array."
      },
      "minItems": 1
    }
  }
}
dealmachine_people_count annotations
{
  "title": "Count Matching People",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_people_get
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns one person by DealMachine person ID, with optional extended fields and associated properties. The person costs one people credit; chargeable property fields or associated properties can consume property credits.

dealmachine_people_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100
    },
    "property_limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "include_properties": {
      "type": "boolean"
    }
  }
}
dealmachine_people_get annotations
{
  "title": "Get Person Details",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_people_get_many
Advertised by the server during the last successful anonymous check.
Advertised destructive

Returns up to 250 people by DealMachine person ID, with optional extended fields and associated properties. Each found person costs one people credit; chargeable property fields or associated properties can consume property credits.

dealmachine_people_get_many input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 250,
      "minItems": 1
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100
    },
    "property_limit": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "include_properties": {
      "type": "boolean"
    }
  }
}
dealmachine_people_get_many annotations
{
  "title": "Get Multiple People",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_location_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns location identifiers for a name query, including FIPS, ZIP, city place, state, and county IDs. This read-only request is free.

dealmachine_location_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1
    },
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1
    },
    "type": {
      "enum": [
        "state",
        "county",
        "city",
        "zip_code"
      ],
      "type": "string"
    },
    "state": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "description": "2-letter abbrev to narrow results"
    },
    "per_page": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    }
  }
}
dealmachine_location_search annotations
{
  "title": "Search Locations",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_delete_lists_list_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete list. Delete a list and all its items. This action cannot be undone. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_lists_list_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_lists_list_id annotations
{
  "title": "Delete list",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_lists_list_id_items
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove items from list. Remove specific property or person IDs from a list. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_lists_list_id_items input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ],
            "example": "4611686018455854538",
            "description": "A record id: a positive integer, or the same id as a decimal string. Person ids can exceed the JSON safe integer range (2^53 - 1), so pass those as strings."
          },
          "maxItems": 10000,
          "minItems": 1
        },
        "id_type": {
          "enum": [
            "internal_property_id",
            "internal_person_id"
          ],
          "type": "string",
          "default": "internal_property_id"
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_lists_list_id_items annotations
{
  "title": "Remove items from list",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_mail_designs_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Delete design. Delete a design. Designs used in active campaigns cannot be deleted. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_mail_designs_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_mail_designs_id annotations
{
  "title": "Delete design",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_mail_return_addresses_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Delete return address. Delete a return address. The default return address cannot be deleted — set another as default first. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_mail_return_addresses_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_mail_return_addresses_id annotations
{
  "title": "Delete return address",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_prospects_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove prospect. Archive the prospect and end its mail. Its notes, files, and activity are kept; it can be added again later. Pass `?cascade=false` to keep its list memberships and open opportunities. Mail always ends. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_prospects_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "cascade": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_prospects_id annotations
{
  "title": "Remove prospect",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_prospects_id_files_file_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete prospect file. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_prospects_id_files_file_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "file_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "file_id": {
          "type": "string",
          "example": "file_2",
          "description": "File ID, e.g. `file_2`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_prospects_id_files_file_id annotations
{
  "title": "Delete prospect file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_prospects_id_notes_note_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_prospects_id_notes_note_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "note_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "note_id": {
          "type": "string",
          "example": "note_9",
          "description": "Note ID, e.g. `note_9`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_prospects_id_notes_note_id annotations
{
  "title": "Delete prospect note",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_prospects_id_photos_photo_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete prospect photo. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_prospects_id_photos_photo_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "photo_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "photo_id": {
          "type": "string",
          "example": "photo_44",
          "description": "Photo ID, e.g. `photo_44`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_prospects_id_photos_photo_id annotations
{
  "title": "Delete prospect photo",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_prospects_id_tags_tag_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Remove tag from prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_prospects_id_tags_tag_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "tag_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "tag_id": {
          "type": "string",
          "example": "tag_31",
          "description": "Tag ID, e.g. `tag_31`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_prospects_id_tags_tag_id annotations
{
  "title": "Remove tag from prospect",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_tags_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete tag. Delete a workspace tag. Returns 409 while prospects still carry it unless `force=true`, which removes it from them first. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_tags_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "tag_31",
          "description": "Tag ID, e.g. `tag_31`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "force": {
          "type": "string",
          "description": "`true` removes the tag from every prospect first."
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_tags_id annotations
{
  "title": "Delete tag",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_tasks_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Delete task. Delete a task. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_tasks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Task ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_tasks_id annotations
{
  "title": "Delete task",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_delete_webhooks_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Delete webhook. Removes the webhook and its delivery log. Nothing more is sent to the URL. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_delete_webhooks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_delete_webhooks_id annotations
{
  "title": "Delete webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_get_activity_activity_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get activity. Retrieve the full details of a specific activity record, including the complete original request parameters and paginated entity IDs. Retrieves data without changing records or spending credits.

dealmachine_get_activity_activity_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "activity_id"
      ],
      "properties": {
        "activity_id": {
          "type": "string",
          "example": "act_r7s8t9u0",
          "description": "The activity ID to retrieve"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_activity_activity_id annotations
{
  "title": "Get activity",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_addresses_autocomplete
Advertised by the server during the last successful anonymous check.
Advertised read-only

Autocomplete property addresses. Return fast, bounded street-address suggestions from DealMachine property data. Every suggestion includes a DealMachine property ID and may include a normalized city or county location. Retrieves data without changing records or spending credits.

dealmachine_get_addresses_autocomplete input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "object",
      "required": [
        "q"
      ],
      "properties": {
        "q": {
          "type": "string",
          "example": "1200 Barton Springs",
          "maxLength": 200,
          "minLength": 2,
          "description": "Partial US property street address"
        },
        "limit": {
          "type": "integer",
          "default": 5,
          "example": 5,
          "maximum": 10,
          "minimum": 1,
          "description": "Maximum suggestions to return. Defaults to 5 and cannot exceed 10."
        },
        "state": {
          "type": "string",
          "example": "TX",
          "maxLength": 2,
          "minLength": 2,
          "description": "Optional two-letter state abbreviation"
        },
        "latitude": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 90,
              "minimum": -90,
              "description": "Optional latitude used with longitude to rank nearby addresses"
            },
            {
              "type": "null"
            }
          ]
        },
        "longitude": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 180,
              "minimum": -180,
              "description": "Optional longitude used with latitude to rank nearby addresses"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_addresses_autocomplete annotations
{
  "title": "Autocomplete property addresses",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_driving_drives
Advertised by the server during the last successful anonymous check.
Advertised read-only

List drives. List recorded drives for the workspace. Each drive reports how many prospects were added. Retrieves data without changing records or spending credits.

dealmachine_get_driving_drives input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "mode": {
          "enum": [
            "free_drive",
            "route_plan",
            "area_drive"
          ],
          "type": "string"
        },
        "page": {
          "type": "string"
        },
        "per_page": {
          "type": "string"
        },
        "started_after": {
          "type": "string"
        },
        "driver_user_id": {
          "type": "integer",
          "maximum": 9007199254740991,
          "exclusiveMinimum": 0
        },
        "started_before": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_driving_drives annotations
{
  "title": "List drives",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_driving_drives_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get drive. Get a recorded drive with its route, events, visits, and links to prospects added during it. Retrieves data without changing records or spending credits.

dealmachine_get_driving_drives_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "drive_session_501",
          "description": "Drive ID, e.g. `drive_session_501` or `drive_route_7`."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_driving_drives_id annotations
{
  "title": "Get drive",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_exports
Advertised by the server during the last successful anonymous check.
Advertised read-only

List exports. List past exports for your organization with optional pagination and status filtering. Retrieves data without changing records or spending credits.

dealmachine_get_exports input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "string",
          "description": "Number of exports to return (1-100, default 25)"
        },
        "offset": {
          "type": "string",
          "description": "Number of exports to skip (default 0)"
        },
        "status": {
          "type": "string",
          "description": "Filter by export status (pending, processing, completed, failed)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_exports annotations
{
  "title": "List exports",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_exports_exportId
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get export by ID. Retrieve a single export by its ID. Only exports belonging to your organization are accessible. Retrieves data without changing records or spending credits.

dealmachine_get_exports_exportId input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "exportId"
      ],
      "properties": {
        "exportId": {
          "type": "string",
          "example": "abc-123",
          "description": "Export ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_exports_exportId annotations
{
  "title": "Get export by ID",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_lists
Advertised by the server during the last successful anonymous check.
Advertised read-only

List all lists. List all saved lists for your organization with pagination, search, filtering, and sorting. Retrieves data without changing records or spending credits.

dealmachine_get_lists input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "sort": {
          "enum": [
            "newest",
            "oldest",
            "name",
            "name_desc",
            "count",
            "count_asc"
          ],
          "type": "string",
          "description": "Sort order (default: newest)"
        },
        "search": {
          "type": "string",
          "description": "Search lists by name (partial match)"
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        },
        "source_type": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "Filter by source type"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_lists annotations
{
  "title": "List all lists",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_lists_list_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get list by ID. Retrieve a list by its ID including build status, progress, and total count. Retrieves data without changing records or spending credits.

dealmachine_get_lists_list_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_lists_list_id annotations
{
  "title": "Get list by ID",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_lists_list_id_items
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get list items. Retrieve paginated items in a list. Retrieves data without changing records or spending credits.

dealmachine_get_lists_list_id_items input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_lists_list_id_items annotations
{
  "title": "Get list items",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_locations_locationId
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get location. Retrieve a specific location by its ID. Retrieves data without changing records or spending credits.

dealmachine_get_locations_locationId input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "locationId"
      ],
      "properties": {
        "locationId": {
          "type": "string",
          "example": "loc_county_48201",
          "description": "Location ID (e.g., loc_county_48201 or loc_city_7333)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_locations_locationId annotations
{
  "title": "Get location",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_analytics_summary
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get mail analytics summary. Get account-wide mail analytics: totals across all campaigns (sent, delivered, failed, opens, unique openers, average open rate) plus a paginated list of campaigns with per-campaign engagement. Retrieves data without changing records or spending credits.

dealmachine_get_mail_analytics_summary input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "end_date": {
          "type": "string",
          "description": "End of the date range (ISO, inclusive). Filters by campaign launch date."
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        },
        "start_date": {
          "type": "string",
          "description": "Start of the date range (ISO, inclusive). Filters by campaign launch date."
        },
        "launched_only": {
          "enum": [
            "true",
            "false"
          ],
          "type": "string",
          "description": "Only include campaigns that have been launched (default false)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_analytics_summary annotations
{
  "title": "Get mail analytics summary",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_analytics_timeseries
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get mail analytics time series. Get an account-wide time series for a single metric — sent, delivered, scans (QR/link views), or open_rate — bucketed by day or week. Missing buckets are filled with zeroes so the series is continuous. For "scans", each point also includes secondary_value (total scans vs unique properties). Retrieves data without changing records or spending credits.

dealmachine_get_mail_analytics_timeseries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "days": {
          "type": "string",
          "description": "Number of days back from today when no date range is given (1-365, default 30)"
        },
        "metric": {
          "enum": [
            "sent",
            "delivered",
            "scans",
            "open_rate"
          ],
          "type": "string",
          "default": "sent",
          "description": "Metric to chart over time (default sent)"
        },
        "end_date": {
          "type": "string",
          "description": "End of the date range (ISO, defaults to now)."
        },
        "group_by": {
          "enum": [
            "day",
            "week"
          ],
          "type": "string",
          "default": "day",
          "description": "Bucket size for each data point (default day)"
        },
        "start_date": {
          "type": "string",
          "description": "Start of the date range (ISO). Overrides \"days\" when provided."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_analytics_timeseries annotations
{
  "title": "Get mail analytics time series",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns
Advertised by the server during the last successful anonymous check.
Advertised read-only

List campaigns. List mail campaigns for your organization with optional filtering. Each campaign has one of five statuses: draft, ready, active, paused or ended. Use accepting_properties=true to list the campaigns properties can be added to now. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "search": {
          "type": "string",
          "description": "Search by campaign name"
        },
        "status": {
          "enum": [
            "draft",
            "ready",
            "active",
            "paused",
            "ended",
            "completed",
            "cancelled"
          ],
          "type": "string",
          "description": "Filter by campaign status: draft, ready, active, paused or ended. The older values completed and cancelled still work and match the ended campaigns they matched before."
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        },
        "accepting_properties": {
          "enum": [
            "true",
            "false"
          ],
          "type": "string",
          "description": "true returns only campaigns properties can be added to now (they accept properties and are ready, active or paused)."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns annotations
{
  "title": "List campaigns",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get campaign. Get a single campaign by ID with steps. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns_id annotations
{
  "title": "Get campaign",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns_id_analytics
Advertised by the server during the last successful anonymous check.
Advertised read-only

Campaign analytics. Get delivery and engagement analytics for a campaign. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns_id_analytics input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns_id_analytics annotations
{
  "title": "Campaign analytics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns_id_cost_estimate
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimate campaign cost. Get a cost estimate for launching a campaign, including wallet balance check. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns_id_cost_estimate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns_id_cost_estimate annotations
{
  "title": "Estimate campaign cost",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns_id_properties_estimate
Advertised by the server during the last successful anonymous check.
Advertised read-only

Estimate adding properties. What adding a number of properties to the campaign would cost: the charge due today, the amount charged later as later pieces go out, and whether your wallet or auto-reload covers it. Nothing is added or charged. The count is an upper bound; properties skipped when you add them are not charged. For a paused campaign the charge due today is 0 and charged_on_resume is true: each piece is charged as it goes out after the campaign resumes. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns_id_properties_estimate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path",
    "query"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "required": [
        "count"
      ],
      "properties": {
        "count": {
          "type": "string",
          "example": "25",
          "description": "How many properties you plan to add, a whole number from 1 to 5000"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns_id_properties_estimate annotations
{
  "title": "Estimate adding properties",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_campaigns_id_recipients
Advertised by the server during the last successful anonymous check.
Advertised read-only

List campaign recipients. List recipients enrolled in a campaign with their delivery status. Retrieves data without changing records or spending credits.

dealmachine_get_mail_campaigns_id_recipients input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string"
        },
        "per_page": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_campaigns_id_recipients annotations
{
  "title": "List campaign recipients",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_designs
Advertised by the server during the last successful anonymous check.
Advertised read-only

List designs. List mail designs for your organization. Retrieves data without changing records or spending credits.

dealmachine_get_mail_designs input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "size": {
          "enum": [
            "4x6",
            "6x9",
            "6x11"
          ],
          "type": "string",
          "description": "Filter by postcard size"
        },
        "search": {
          "type": "string",
          "description": "Search by design name"
        },
        "status": {
          "enum": [
            "draft",
            "active",
            "archived"
          ],
          "type": "string",
          "description": "Filter by design status"
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_designs annotations
{
  "title": "List designs",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_designs_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get design. Get a single design by ID, including HTML content. Retrieves data without changing records or spending credits.

dealmachine_get_mail_designs_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_designs_id annotations
{
  "title": "Get design",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_return_addresses
Advertised by the server during the last successful anonymous check.
Advertised read-only

List return addresses. List all return addresses for your organization. Default address is listed first. Retrieves data without changing records or spending credits.

dealmachine_get_mail_return_addresses input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_mail_return_addresses annotations
{
  "title": "List return addresses",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_return_addresses_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get return address. Get a single return address by ID. Retrieves data without changing records or spending credits.

dealmachine_get_mail_return_addresses_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_return_addresses_id annotations
{
  "title": "Get return address",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_settings
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get mail settings. Get the organization-level mail settings that act as defaults for new campaigns — default postcard size, sender name, contact frequency limit, QR code URL, and signature image. Retrieves data without changing records or spending credits.

dealmachine_get_mail_settings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_mail_settings annotations
{
  "title": "Get mail settings",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_wallet_balance
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get wallet balance. Get the current wallet balance, including pending charges and auto-reload settings. Retrieves data without changing records or spending credits.

dealmachine_get_mail_wallet_balance input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_mail_wallet_balance annotations
{
  "title": "Get wallet balance",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_wallet_pricing
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get mail pricing. Get postcard pricing for your plan. Prices are in cents per postcard. Retrieves data without changing records or spending credits.

dealmachine_get_mail_wallet_pricing input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_mail_wallet_pricing annotations
{
  "title": "Get mail pricing",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_mail_wallet_transactions
Advertised by the server during the last successful anonymous check.
Advertised read-only

List wallet transactions. List wallet transaction history with optional filtering. Retrieves data without changing records or spending credits.

dealmachine_get_mail_wallet_transactions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "type": {
          "type": "string",
          "description": "Filter by transaction type (purchase, spend, refund, etc.)"
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        },
        "campaign_id": {
          "type": "string",
          "description": "Filter by campaign ID"
        },
        "reference_type": {
          "type": "string",
          "description": "Filter by reference type (campaign, stripe_payment, etc.)"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_mail_wallet_transactions annotations
{
  "title": "List wallet transactions",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_activity
Advertised by the server during the last successful anonymous check.
Advertised read-only

List prospect activity. Everything that happened to the prospect’s record in this workspace, newest first: prospect changes, notes, tags, files, lists, mail, and CRM events. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_activity input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number. Defaults to 1."
        },
        "since": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "description": "Only activity after this ISO 8601 time."
        },
        "category": {
          "type": "string",
          "maxLength": 30,
          "description": "Only this activity category, e.g. `note`, `tag`, `communication`."
        },
        "per_page": {
          "type": "string",
          "description": "Results per page. Defaults to 25. Maximum 100."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_activity annotations
{
  "title": "List prospect activity",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_files
Advertised by the server during the last successful anonymous check.
Advertised read-only

List prospect files. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_files input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_files annotations
{
  "title": "List prospect files",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_files_file_id_download
Advertised by the server during the last successful anonymous check.
Advertised read-only

Download prospect file. Redirects to a 5-minute signed URL. Pass `?redirect=false` to get the URL as JSON instead. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_files_file_id_download input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "file_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "file_id": {
          "type": "string",
          "example": "file_2",
          "description": "File ID, e.g. `file_2`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "redirect": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_files_file_id_download annotations
{
  "title": "Download prospect file",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_notes
Advertised by the server during the last successful anonymous check.
Advertised read-only

List prospect notes. Notes on the prospect, newest first. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_notes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number. Defaults to 1."
        },
        "per_page": {
          "type": "string",
          "description": "Results per page. Defaults to 25. Maximum 100."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_notes annotations
{
  "title": "List prospect notes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_notes_note_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get prospect note. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_notes_note_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "note_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "note_id": {
          "type": "string",
          "example": "note_9",
          "description": "Note ID, e.g. `note_9`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_notes_note_id annotations
{
  "title": "Get prospect note",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_photos
Advertised by the server during the last successful anonymous check.
Advertised read-only

List prospect photos. Photos of the prospect’s property, newest first. Property prospects only. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_photos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_photos annotations
{
  "title": "List prospect photos",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_id_tags
Advertised by the server during the last successful anonymous check.
Advertised read-only

List prospect tags. The tag catalog with an `assigned` flag for this prospect. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_id_tags input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_id_tags annotations
{
  "title": "List prospect tags",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_by_record
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get prospect by record. Look up the prospect that tracks a property, person, or company, if there is one. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_by_record input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "object",
      "required": [
        "record_id"
      ],
      "properties": {
        "record_id": {
          "type": "string",
          "description": "Record ID: `prop_123`, `person_456`, or the bare number."
        },
        "record_type": {
          "enum": [
            "property",
            "person",
            "company"
          ],
          "type": "string",
          "default": "property",
          "description": "What kind of record the prospect tracks."
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_by_record annotations
{
  "title": "Get prospect by record",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_prospects_counts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Count prospects. Prospect counts by lifecycle and record type, for the workspace or one list. Retrieves data without changing records or spending credits.

dealmachine_get_prospects_counts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "list_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_prospects_counts annotations
{
  "title": "Count prospects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_subscription
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get subscription status. Get your current subscription status, including plan details, billing cycle, and credit caps. Retrieves data without changing records or spending credits.

dealmachine_get_subscription input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_subscription annotations
{
  "title": "Get subscription status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_tags_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get tag. Retrieves data without changing records or spending credits.

dealmachine_get_tags_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "tag_31",
          "description": "Tag ID, e.g. `tag_31`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_tags_id annotations
{
  "title": "Get tag",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_tasks
Advertised by the server during the last successful anonymous check.
Advertised read-only

List tasks. List all tasks for the organization. Optionally filter by status, search, or assignee. Retrieves data without changing records or spending credits.

dealmachine_get_tasks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string",
          "description": "Page number (default 1)"
        },
        "search": {
          "type": "string",
          "description": "Search tasks by title"
        },
        "status": {
          "enum": [
            "open",
            "completed",
            "all"
          ],
          "type": "string",
          "description": "Filter by status (default: all)"
        },
        "per_page": {
          "type": "string",
          "description": "Results per page (1-100, default 25)"
        },
        "assigned_to_user_id": {
          "type": "string",
          "description": "Filter by assigned user ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_tasks annotations
{
  "title": "List tasks",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_tasks_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get task. Get a single task by ID. Retrieves data without changing records or spending credits.

dealmachine_get_tasks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Task ID"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_tasks_id annotations
{
  "title": "Get task",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_webhooks_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get webhook. Retrieves data without changing records or spending credits.

dealmachine_get_webhooks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_webhooks_id annotations
{
  "title": "Get webhook",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_webhooks_id_deliveries
Advertised by the server during the last successful anonymous check.
Advertised read-only

List webhook deliveries. The delivery log for one webhook, newest first: status, attempts, response code and time, and any error. Retrieves data without changing records or spending credits.

dealmachine_get_webhooks_id_deliveries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "page": {
          "type": "string"
        },
        "since": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
        },
        "status": {
          "enum": [
            "pending",
            "processing",
            "delivered",
            "failed",
            "abandoned",
            "skipped"
          ],
          "type": "string"
        },
        "per_page": {
          "type": "string"
        },
        "event_type": {
          "type": "string",
          "maxLength": 60
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_webhooks_id_deliveries annotations
{
  "title": "List webhook deliveries",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_webhooks_id_deliveries_delivery_id
Advertised by the server during the last successful anonymous check.
Advertised read-only

Get webhook delivery. One delivery with the full event body that was (or will be) sent. Retrieves data without changing records or spending credits.

dealmachine_get_webhooks_id_deliveries_delivery_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "delivery_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        },
        "delivery_id": {
          "type": "string",
          "example": "dlv_9001",
          "description": "Delivery ID, e.g. `dlv_9001`"
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
dealmachine_get_webhooks_id_deliveries_delivery_id annotations
{
  "title": "Get webhook delivery",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_get_webhooks_events
Advertised by the server during the last successful anonymous check.
Advertised read-only

List webhook event types. Every event a webhook can subscribe to, with a description and a full example request body. Retrieves data without changing records or spending credits.

dealmachine_get_webhooks_events input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {},
  "additionalProperties": false
}
dealmachine_get_webhooks_events annotations
{
  "title": "List webhook event types",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_patch_lists_list_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Update list. Update the name of a list. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_lists_list_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_lists_list_id annotations
{
  "title": "Update list",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_mail_campaigns_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Update campaign. Update a draft campaign. Only draft campaigns can be updated. Audience updates must use exactly one of property_ids, contact_ids, or list_ids. Sending steps replaces the whole step set, so include every step you want to keep. To add properties to a ready, active or paused campaign, use POST /campaigns/{id}/properties. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_mail_campaigns_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "steps": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "design_id": {
                "type": "string",
                "description": "Existing design ID to use"
              },
              "delay_days": {
                "type": "integer",
                "default": 0,
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Days to wait after the previous step"
              },
              "repeat_count": {
                "type": "integer",
                "default": 1,
                "maximum": 12,
                "minimum": 1,
                "description": "How many times to send this step (1-12)"
              },
              "design_prompt": {
                "type": "string",
                "description": "Prompt to generate an HTML design on the fly"
              },
              "interval_days": {
                "type": "integer",
                "default": 0,
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Days between repeated sends"
              },
              "skip_if_responded": {
                "type": "boolean",
                "default": false,
                "description": "Skip this step if the recipient has responded"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 5,
          "minItems": 1,
          "description": "Replace the campaign mail steps (1-5). Steps are replaced as a set, so send every step you want to keep, not just the changed one."
        },
        "list_ids": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "address_to": {
          "enum": [
            "owner",
            "resident"
          ],
          "type": "string"
        },
        "contact_ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ]
          }
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 5000
            },
            {
              "type": "null"
            }
          ]
        },
        "qr_code_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "contact_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255
            },
            {
              "type": "null"
            }
          ]
        },
        "property_ids": {
          "type": "array",
          "items": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          }
        },
        "contact_email": {
          "anyOf": [
            {
              "type": "string",
              "format": "email",
              "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "contact_phone": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 50
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_mail_campaigns_id annotations
{
  "title": "Update campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_mail_designs_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Update design. Update a design. Changes go to draft fields; set `publish: true` to promote draft to active. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_mail_designs_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "theme": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "layout": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "publish": {
          "type": "boolean",
          "description": "Publish the current draft (copies draft HTML to published)"
        },
        "html_back": {
          "type": "string"
        },
        "html_front": {
          "type": "string"
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_mail_designs_id annotations
{
  "title": "Update design",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_mail_return_addresses_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Update return address. Update a return address. If address fields change, the new address is re-validated via USPS. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_mail_return_addresses_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "zip": {
          "type": "string",
          "maxLength": 10,
          "minLength": 5
        },
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1
        },
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "label": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "state": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2
        },
        "address_1": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "address_2": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_mail_return_addresses_id annotations
{
  "title": "Update return address",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_mail_settings
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Update mail settings. Update one or more organization-level mail settings. Only the fields you include are changed; omitted fields are left untouched. Pass null to clear a setting back to its default. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_mail_settings input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "default_qr_code_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri",
              "description": "Default QR code destination URL for new campaigns"
            },
            {
              "type": "null"
            }
          ]
        },
        "default_sender_name": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255,
              "description": "Default sender name pre-filled on new campaigns"
            },
            {
              "type": "null"
            }
          ]
        },
        "default_postcard_size": {
          "anyOf": [
            {
              "anyOf": [
                {
                  "type": "string",
                  "const": "4x6"
                },
                {
                  "type": "string",
                  "const": "6x9"
                },
                {
                  "type": "string",
                  "const": "6x11"
                },
                {
                  "type": "null",
                  "const": null
                }
              ],
              "description": "Default postcard size for new campaigns"
            },
            {
              "type": "null"
            }
          ]
        },
        "default_signature_image_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri",
              "description": "Default signature image URL applied to new campaigns"
            },
            {
              "type": "null"
            }
          ]
        },
        "contact_frequency_limit_days": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 3650,
              "minimum": 0,
              "description": "Minimum days between mailings to the same contact (0-3650)"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_mail_settings annotations
{
  "title": "Update mail settings",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_prospects
Advertised by the server during the last successful anonymous check.
Advertised destructive

Move prospects in bulk. Move the prospects for up to 1,000 records between active, opportunity, and archived in one call: the bulk form of the single update, and what the app’s selection action bar runs. Records that are not prospects are skipped, as are prospects already in the requested lifecycle; the response counts each. Archiving always ends each prospect’s mail and, unless `cascade` is false, closes its open opportunities. List memberships are kept either way. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_prospects input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "record_ids",
        "lifecycle"
      ],
      "properties": {
        "cascade": {
          "type": "boolean",
          "default": true,
          "description": "When archiving: also close each prospect’s open opportunities. Mail always ends, including when false. List memberships are kept either way. Default true."
        },
        "lifecycle": {
          "enum": [
            "active",
            "opportunity",
            "archived"
          ],
          "type": "string",
          "description": "Where every prospect in the selection moves. Records that are not prospects, and prospects already there, are skipped and counted."
        },
        "record_ids": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ],
            "description": "Record ID: `prop_123`, `person_456`, `company_7`, or the bare number."
          },
          "maxItems": 1000,
          "minItems": 1
        },
        "record_type": {
          "enum": [
            "property",
            "person",
            "company"
          ],
          "type": "string",
          "default": "property",
          "description": "What kind of record the prospect tracks."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_prospects annotations
{
  "title": "Move prospects in bulk",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_prospects_id_notes_note_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Edit prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_prospects_id_notes_note_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "body"
      ],
      "properties": {
        "body": {
          "type": "string",
          "maxLength": 10000,
          "minLength": 1
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id",
        "note_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "note_id": {
          "type": "string",
          "example": "note_9",
          "description": "Note ID, e.g. `note_9`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_prospects_id_notes_note_id annotations
{
  "title": "Edit prospect note",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_tags_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Update tag. Rename, describe, recolor, reorder, or archive a workspace tag. Built-in tags return 403. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_tags_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1
        },
        "is_active": {
          "type": "boolean"
        },
        "sort_order": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 0
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255
            },
            {
              "type": "null"
            }
          ]
        },
        "badge_variant": {
          "enum": [
            "default",
            "secondary",
            "info",
            "warning",
            "destructive"
          ],
          "type": "string",
          "description": "How the tag chip is colored in the app."
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "tag_31",
          "description": "Tag ID, e.g. `tag_31`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_tags_id annotations
{
  "title": "Update tag",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_tasks_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Update task. Update a task. Set `is_completed` to `true` to mark as done. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_tasks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1
        },
        "due_date": {
          "type": [
            "string",
            "null"
          ]
        },
        "person_id": {
          "anyOf": [
            {
              "type": "string",
              "description": "Link to a person. Set to null to unlink."
            },
            {
              "type": "null"
            }
          ]
        },
        "sort_order": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 5000
            },
            {
              "type": "null"
            }
          ]
        },
        "property_id": {
          "anyOf": [
            {
              "type": "string",
              "description": "Link to a property. Set to null to unlink."
            },
            {
              "type": "null"
            }
          ]
        },
        "is_completed": {
          "type": "boolean"
        },
        "opportunity_id": {
          "anyOf": [
            {
              "type": "string",
              "description": "Link to a CRM opportunity. Set to null to unlink."
            },
            {
              "type": "null"
            }
          ]
        },
        "assigned_to_user_id": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": -9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "assigned_to_agent_id": {
          "anyOf": [
            {
              "type": "null",
              "const": null,
              "description": "Retired. Only null is accepted to clear a historical assignment."
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Task ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_tasks_id annotations
{
  "title": "Update task",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_patch_webhooks_id
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Update webhook. Change the URL, events, batch size, contact opt-in, or turn the webhook on or off. Re-enabling clears its failure count. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_patch_webhooks_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 2048,
          "minLength": 1
        },
        "batch_max": {
          "type": "integer",
          "maximum": 100,
          "minimum": 1
        },
        "is_active": {
          "type": "boolean",
          "description": "`true` re-enables an endpoint that was turned off or disabled after failures."
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255
            },
            {
              "type": "null"
            }
          ]
        },
        "event_types": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 60,
            "minLength": 1
          },
          "example": [
            "prospect.added",
            "prospect.lifecycle_changed"
          ],
          "maxItems": 50,
          "minItems": 1,
          "description": "Event types to send, e.g. `[\"prospect.added\"]`. `prospect.*` subscribes to every prospect event and `*` to everything."
        },
        "include_contacts": {
          "type": "boolean"
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_patch_webhooks_id annotations
{
  "title": "Update webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_activity_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Search activity. Query your past searches, enrichments, and exports. Filter by activity type, date range, or specific entity IDs — or use free-text search. This endpoint does not consume credits. Retrieves data without changing records or spending credits. Requires confirmed=true for this request.

dealmachine_post_activity_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "default": 1,
          "example": 1,
          "maximum": 9007199254740991,
          "minimum": 1,
          "description": "Page number (default: 1)"
        },
        "sort": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "field",
              "direction"
            ],
            "properties": {
              "field": {
                "enum": [
                  "created_at",
                  "type",
                  "total_results",
                  "credits_used",
                  "relevance"
                ],
                "type": "string",
                "example": "created_at",
                "description": "Field to sort by"
              },
              "direction": {
                "enum": [
                  "asc",
                  "desc"
                ],
                "type": "string",
                "example": "desc",
                "description": "Sort direction"
              }
            },
            "additionalProperties": {}
          },
          "description": "Array of sort objects. Defaults to created_at desc."
        },
        "query": {
          "type": "string",
          "description": "Free-text search across activity history"
        },
        "types": {
          "type": "array",
          "items": {
            "enum": [
              "search_people",
              "search_properties",
              "count_people",
              "count_properties",
              "enrich_email",
              "enrich_phone",
              "enrich_address",
              "enrich_latlng",
              "enrich_reverse_geocode",
              "enrich_apn",
              "enrich_name",
              "export_properties",
              "export_people",
              "get_person",
              "get_person_batch",
              "get_property",
              "get_property_batch",
              "phone_dnc_check",
              "validate_addresses",
              "comps_analysis",
              "api_key_created",
              "api_key_rotated",
              "api_key_revoked",
              "additional_credit_grant",
              "additional_credit_purchase"
            ],
            "type": "string"
          },
          "description": "Legacy top-level activity type filter. Prefer filters.type."
        },
        "filters": {
          "type": "object",
          "properties": {
            "type": {
              "type": "array",
              "items": {
                "enum": [
                  "search_people",
                  "search_properties",
                  "count_people",
                  "count_properties",
                  "enrich_email",
                  "enrich_phone",
                  "enrich_address",
                  "enrich_latlng",
                  "enrich_reverse_geocode",
                  "enrich_apn",
                  "enrich_name",
                  "export_properties",
                  "export_people",
                  "get_person",
                  "get_person_batch",
                  "get_property",
                  "get_property_batch",
                  "phone_dnc_check",
                  "validate_addresses",
                  "comps_analysis",
                  "api_key_created",
                  "api_key_rotated",
                  "api_key_revoked",
                  "additional_credit_grant",
                  "additional_credit_purchase"
                ],
                "type": "string"
              },
              "description": "Filter by activity type"
            }
          },
          "description": "Structured filters for activity history.",
          "additionalProperties": {}
        },
        "per_page": {
          "type": "integer",
          "default": 25,
          "example": 25,
          "maximum": 100,
          "minimum": 1,
          "description": "Results per page (default: 25, max: 100)"
        },
        "date_range": {
          "type": "object",
          "properties": {
            "end": {
              "type": "string",
              "description": "ISO 8601 timestamp. Only include activities on or before this time."
            },
            "start": {
              "type": "string",
              "description": "ISO 8601 timestamp. Only include activities on or after this time."
            }
          },
          "description": "Filter to activities within a date range",
          "additionalProperties": {}
        },
        "entity_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Find activities that returned specific entity IDs (e.g., \"per_x1y2z3\", \"prop_a1b2c3\")"
        },
        "pagination": {
          "type": "object",
          "example": {
            "page": 2,
            "per_page": 25
          },
          "properties": {
            "page": {
              "type": "integer",
              "example": 1,
              "maximum": 9007199254740991,
              "minimum": 1,
              "description": "Page number (default: 1)"
            },
            "per_page": {
              "type": "integer",
              "example": 25,
              "maximum": 100,
              "minimum": 1,
              "description": "Results per page (default: 25, max: 100)"
            }
          },
          "description": "Optional nested pagination object. Takes precedence over top-level page and per_page when provided.",
          "additionalProperties": {}
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_activity_search annotations
{
  "title": "Search activity",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_post_addresses_validate
Advertised by the server during the last successful anonymous check.
Advertised destructive

Validate addresses. Validate and standardize US addresses using USPS address data. Returns USPS-standardized versions of each submitted address along with a validation status indicating whether the address is deliverable. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_addresses_validate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "zip": {
                "type": "string",
                "example": "78704",
                "description": "5-digit ZIP code. Optional when using structured fields, but improves validation accuracy."
              },
              "city": {
                "type": "string",
                "example": "Austin",
                "description": "City name. Required when not using full_address."
              },
              "unit": {
                "type": "string",
                "example": "Suite 200",
                "description": "Unit, apartment, or suite number (e.g., \"Apt 4B\", \"Suite 200\"). Optional."
              },
              "state": {
                "type": "string",
                "example": "TX",
                "description": "Two-letter state abbreviation. Required when not using full_address."
              },
              "street": {
                "type": "string",
                "example": "1200 Barton Springs Rd",
                "description": "Street address line (e.g., \"1200 Barton Springs Rd\"). Required when not using full_address."
              },
              "full_address": {
                "type": "string",
                "example": "1200 Barton Springs Rd, Austin, TX 78704",
                "description": "Complete address string (e.g., \"1200 Barton Springs Rd, Austin, TX 78704\"). Use this OR the structured fields below — not both."
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 1000,
          "minItems": 1,
          "description": "Array of address objects to validate (max 1000)."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_addresses_validate annotations
{
  "title": "Validate addresses",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_enrichment_reverse_geocode
Advertised by the server during the last successful anonymous check.
Advertised destructive

Reverse geocode. Look up properties by latitude/longitude coordinates (reverse geocoding). Returns the closest property within 300 feet. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_enrichment_reverse_geocode input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "latitude",
              "longitude"
            ],
            "properties": {
              "latitude": {
                "type": "number",
                "example": 30.25,
                "description": "Latitude"
              },
              "longitude": {
                "type": "number",
                "example": -97.75,
                "description": "Longitude"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 250,
          "minItems": 1,
          "description": "Array of coordinates to look up (max 250)"
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": [],
          "example": [
            "estimated_household_income",
            "estimated_value"
          ],
          "maxItems": 100,
          "description": "Field IDs from GET /v1/fields. People fields return on each person; property fields return under property."
        },
        "contact_audience": {
          "enum": [
            "owners",
            "owners_and_family",
            "renters",
            "residents",
            "none"
          ],
          "type": "string",
          "description": "Which contacts to include with matched properties. Returned contacts consume people credits. Use \"none\" for property data only with zero people credits."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_enrichment_reverse_geocode annotations
{
  "title": "Reverse geocode",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_lists_list_id_build
Advertised by the server during the last successful anonymous check.
Advertised destructive

Build list from search filters. Add the records matching the given filters and locations to this list. Records already on the list stay, so building again adds to it. Runs asynchronously: the response is this list with status `building`; poll `GET /v1/lists/{list_id}` until status is `completed`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_lists_list_id_build input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id"
            ],
            "properties": {
              "value": {
                "example": {
                  "max": 500000,
                  "min": 200000
                },
                "description": "Filter value (shape depends on filter type and operator)"
              },
              "operator": {
                "type": "string",
                "example": "range",
                "description": "Comparison operator. Optional for BOOLEAN filters (automatically defaults to is_boolean)."
              },
              "filter_id": {
                "type": "string",
                "example": "estimated_value",
                "description": "Filter identifier (use GET /v1/filters to discover available filters)"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 50
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "example": "29189",
                "description": "Location code. Use a state abbreviation, county FIPS, city place ID or exact \"City, ST\" name, or 5-digit ZIP."
              },
              "east": {
                "type": "number",
                "description": "East longitude of the bounding box (for bounds locations)"
              },
              "name": {
                "type": "string",
                "example": "Springfield",
                "description": "Exact city name when a city place ID is unknown."
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "school_district",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string",
                "example": "county",
                "description": "Location type"
              },
              "west": {
                "type": "number",
                "description": "West longitude of the bounding box (for bounds locations)"
              },
              "north": {
                "type": "number",
                "description": "North latitude of the bounding box (for bounds locations)"
              },
              "south": {
                "type": "number",
                "description": "South latitude of the bounding box (for bounds locations)"
              },
              "state": {
                "type": "string",
                "example": "IL",
                "maxLength": 2,
                "minLength": 2,
                "description": "Two-letter state abbreviation used to disambiguate a city name."
              },
              "latitude": {
                "type": "number",
                "description": "Center latitude for radius locations"
              },
              "longitude": {
                "type": "number",
                "description": "Center longitude for radius locations"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "Array of [longitude, latitude] coordinate pairs for polygon locations. Minimum 3 points."
              },
              "radius_miles": {
                "type": "number",
                "description": "Radius in miles for radius locations"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 15
        },
        "add_as_prospects": {
          "type": "boolean",
          "default": true,
          "description": "Whether the records filed here also become prospects in the workspace. Default true; pass false to build the list without tracking its records as prospects."
        },
        "prospect_search_id": {
          "type": "string",
          "description": "A saved search to record on the list. The build does not read its criteria, so send filters or locations as well."
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_lists_list_id_build annotations
{
  "title": "Build list from search filters",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_lists_list_id_export
Advertised by the server during the last successful anonymous check.
Advertised destructive

Export list. Export all items from a completed list. The list must have status "completed" before export. Credits are charged per record. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_lists_list_id_export input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "maximum": 1000000,
          "exclusiveMinimum": 0
        },
        "anchor": {
          "enum": [
            "property",
            "person"
          ],
          "type": "string",
          "description": "Row anchor. Property lists default to person so exports return property-owner contact rows. Use property for property-only rows."
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "minItems": 1
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_lists_list_id_export annotations
{
  "title": "Export list",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_lists_list_id_import
Advertised by the server during the last successful anonymous check.
Advertised destructive

Import IDs into list. Add property or person ids to this list, matching the list's source_type. Records already on the list stay, so importing again adds to it. Runs asynchronously: the response is this list with status `building`; poll `GET /v1/lists/{list_id}` until status is `completed`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_lists_list_id_import input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "ids"
      ],
      "properties": {
        "ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "exclusiveMinimum": 0
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ],
            "example": "4611686018455854538",
            "description": "A record id: a positive integer, or the same id as a decimal string. Person ids can exceed the JSON safe integer range (2^53 - 1), so pass those as strings."
          },
          "maxItems": 1000000,
          "minItems": 1
        },
        "source_type": {
          "enum": [
            "properties",
            "people"
          ],
          "type": "string",
          "description": "What the ids are. Defaults to the list's own source_type; any other value is rejected."
        },
        "add_as_prospects": {
          "type": "boolean",
          "default": true,
          "description": "Whether the records filed here also become prospects in the workspace. Default true; pass false to build the list without tracking its records as prospects."
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "list_id"
      ],
      "properties": {
        "list_id": {
          "type": "string",
          "description": "List ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_lists_list_id_import annotations
{
  "title": "Import IDs into list",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_campaigns
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Create campaign. Create a new mail campaign. Each step can reference an existing design or provide a design_prompt to generate one; designs are HTML, so generation is instant (no polling required). Provide at most one audience type: property IDs, contact IDs, or saved list IDs. With an audience, set launch=true to send immediately, or leave it as a draft and call POST /campaigns/{id}/send later. Set accepts_properties=true to keep adding properties with POST /campaigns/{id}/properties after it starts; without it the campaign works as before and ends when its mail is done. Without an audience, the campaign is saved as ready with no properties and no charge, and it accepts properties: add them any time with POST /campaigns/{id}/properties. Saving as ready needs a name that does not start with "Draft - " and a design on every step. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_campaigns input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "name",
        "steps"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Campaign name"
        },
        "steps": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "design_id": {
                "type": "string",
                "description": "Existing design ID to use"
              },
              "delay_days": {
                "type": "integer",
                "default": 0,
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Days to wait after the previous step"
              },
              "repeat_count": {
                "type": "integer",
                "default": 1,
                "maximum": 12,
                "minimum": 1,
                "description": "How many times to send this step (1-12)"
              },
              "design_prompt": {
                "type": "string",
                "description": "Prompt to generate an HTML design on the fly"
              },
              "interval_days": {
                "type": "integer",
                "default": 0,
                "maximum": 9007199254740991,
                "minimum": 0,
                "description": "Days between repeated sends"
              },
              "skip_if_responded": {
                "type": "boolean",
                "default": false,
                "description": "Skip this step if the recipient has responded"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 5,
          "minItems": 1,
          "description": "Mail steps (1-5). Each step can reference an existing design or provide a prompt."
        },
        "launch": {
          "type": "boolean",
          "default": false,
          "description": "Launch the campaign immediately after creation. Requires an audience. If false, a campaign with an audience is created in draft status and a campaign without one is saved as ready."
        },
        "list_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Saved list IDs to send to. Mutually exclusive with property_ids and contact_ids."
        },
        "address_to": {
          "enum": [
            "owner",
            "resident"
          ],
          "type": "string",
          "description": "Who to address mail to: owner (mailing address) or resident (property address). Required when using property_ids and for property-based list_ids. Not needed for contact_ids or people lists."
        },
        "contact_ids": {
          "type": "array",
          "items": {
            "anyOf": [
              {
                "type": "integer",
                "maximum": 9007199254740991,
                "minimum": -9007199254740991
              },
              {
                "type": "string",
                "pattern": "^[1-9]\\d*$"
              }
            ]
          },
          "description": "Contact (person) IDs to send to. Mutually exclusive with property_ids and list_ids. Pass an ID above the JSON safe integer range (2^53 - 1) as a decimal string."
        },
        "description": {
          "type": "string",
          "maxLength": 5000,
          "description": "Campaign description"
        },
        "qr_code_url": {
          "type": "string",
          "format": "uri",
          "description": "URL for the QR code on the postcard"
        },
        "contact_name": {
          "type": "string",
          "maxLength": 255
        },
        "property_ids": {
          "type": "array",
          "items": {
            "type": "integer",
            "maximum": 9007199254740991,
            "minimum": -9007199254740991
          },
          "description": "Property IDs to send to. Mutually exclusive with contact_ids and list_ids. Omit all three audience fields to save the campaign as Ready with no properties; add properties later with POST /v1/mail/campaigns/{id}/properties."
        },
        "contact_email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "contact_phone": {
          "type": "string",
          "maxLength": 50
        },
        "return_address": {
          "type": "object",
          "required": [
            "name",
            "address_1",
            "city",
            "state",
            "zip"
          ],
          "properties": {
            "zip": {
              "type": "string",
              "maxLength": 10,
              "minLength": 5
            },
            "city": {
              "type": "string",
              "maxLength": 100,
              "minLength": 1
            },
            "name": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "state": {
              "type": "string",
              "maxLength": 2,
              "minLength": 2
            },
            "address_1": {
              "type": "string",
              "maxLength": 255,
              "minLength": 1
            },
            "address_2": {
              "type": "string",
              "maxLength": 255
            }
          },
          "description": "Inline return address (alternative to return_address_id)",
          "additionalProperties": {}
        },
        "return_address_id": {
          "type": "string",
          "description": "ID of a saved return address"
        },
        "accepts_properties": {
          "type": "boolean",
          "description": "Keep the campaign open to new properties after it starts, so POST /v1/mail/campaigns/{id}/properties can add more while it is ready, active or paused. Defaults to false when an audience is given, and the campaign ends when its mail is done, as before. A campaign created without an audience is saved as ready and always accepts properties, so false is refused there."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_campaigns annotations
{
  "title": "Create campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_campaigns_id_pause
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Pause campaign. Pause an active campaign, or a ready campaign that accepts properties. Properties added while it is paused wait at step 1 until it is resumed. Mail already submitted to the vendor will still be delivered. An ended campaign cannot be paused. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_campaigns_id_pause input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_campaigns_id_pause annotations
{
  "title": "Pause campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_campaigns_id_resume
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Resume campaign. Resume a paused campaign. An ended campaign cannot be resumed. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_campaigns_id_resume input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_campaigns_id_resume annotations
{
  "title": "Resume campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_designs
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Create design. Create a mail design from custom HTML or an AI prompt. The response includes the design and its HTML; no polling is required. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_designs input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Design name"
        },
        "size": {
          "enum": [
            "4x6",
            "6x9",
            "6x11"
          ],
          "type": "string",
          "default": "4x6"
        },
        "theme": {
          "type": "string",
          "maxLength": 100,
          "description": "Theme preset (e.g., professional, warm-friendly)"
        },
        "layout": {
          "type": "string",
          "maxLength": 100,
          "description": "Layout preset (e.g., l-left-image, l-split-equal)"
        },
        "prompt": {
          "type": "string",
          "maxLength": 5000,
          "minLength": 1,
          "description": "AI prompt to generate an HTML design. Returns immediately since HTML generation is fast."
        },
        "html_back": {
          "type": "string",
          "description": "Custom HTML for the back side"
        },
        "html_front": {
          "type": "string",
          "description": "Custom HTML for the front side (alternative to prompt)"
        },
        "orientation": {
          "type": "string",
          "const": "landscape",
          "default": "landscape",
          "description": "Postcard orientation. Portrait is temporarily unavailable."
        },
        "auto_publish": {
          "type": "boolean",
          "default": false,
          "description": "Automatically publish the design after creation"
        },
        "include_street_view": {
          "type": "boolean",
          "default": true,
          "description": "Include a Street View image placeholder in the design"
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_designs annotations
{
  "title": "Create design",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_return_addresses
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Create return address. Create a new return address. The address is validated via USPS before saving. If the address is invalid, the request is rejected. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_return_addresses input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "name",
        "address_1",
        "city",
        "state",
        "zip"
      ],
      "properties": {
        "zip": {
          "type": "string",
          "maxLength": 10,
          "minLength": 5
        },
        "city": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1
        },
        "name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Name on the return address"
        },
        "label": {
          "type": "string",
          "maxLength": 100,
          "description": "Friendly label (e.g., \"Office\", \"Home\")"
        },
        "state": {
          "type": "string",
          "maxLength": 2,
          "minLength": 2,
          "description": "Two-letter state code"
        },
        "address_1": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1,
          "description": "Street address"
        },
        "address_2": {
          "type": "string",
          "maxLength": 255,
          "description": "Apt/Suite/Unit"
        },
        "set_as_default": {
          "type": "boolean",
          "default": false,
          "description": "Make this the default return address"
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_return_addresses annotations
{
  "title": "Create return address",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_mail_return_addresses_id_default
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Set default return address. Set a return address as the default for your organization. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_mail_return_addresses_id_default input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Resource ID"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_mail_return_addresses_id_default annotations
{
  "title": "Set default return address",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_people_export
Advertised by the server during the last successful anonymous check.
Advertised destructive

Export people to CSV. Export matching people as a CSV file. Returns signed download URLs. Limited to 1,000,000 records per export. Pass limit to export only the first N matching records. The request is synchronous — the response is returned once the export is complete (typically up to 30 seconds). Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_people_export input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "example": 1000,
          "maximum": 1000000,
          "description": "Maximum file rows for a filter-based export, from 1 to 1,000,000. For person, phone or email output with chargeable property fields, property credits are scoped to the limited contact-row selection.",
          "exclusiveMinimum": 0
        },
        "anchor": {
          "enum": [
            "person",
            "phone",
            "email"
          ],
          "type": "string",
          "default": "person",
          "example": "person",
          "description": "Controls the export anchor type. \"person\" exports one row per person (default). \"phone\" or \"email\" exports one row per phone/email."
        },
        "fields": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "person_coordinates",
            "full_name",
            "phones",
            "emails"
          ],
          "description": "Field IDs to include in the export. Omit for the default set. Use person_coordinates to add separate person_latitude and person_longitude columns."
        },
        "filters": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "filter_id"
            ],
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "example": true,
                    "description": "Filter value (shape depends on filter type and operator)"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "operator": {
                "type": "string",
                "example": "is_boolean",
                "description": "Comparison operator. Optional for BOOLEAN filters (automatically defaults to is_boolean)."
              },
              "filter_id": {
                "type": "string",
                "example": "has_phone",
                "description": "Filter identifier (use GET /v1/filters to discover available filters)"
              }
            },
            "additionalProperties": {}
          },
          "default": [],
          "maxItems": 50,
          "description": "Array of filters to apply. Omit or pass an empty array to export with no filters."
        },
        "locations": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "code": {
                "type": "string",
                "example": "29189",
                "description": "Location code. Use a state abbreviation, county FIPS, city place ID or exact \"City, ST\" name, or 5-digit ZIP."
              },
              "east": {
                "type": "number",
                "description": "East longitude of the bounding box (for bounds locations)"
              },
              "name": {
                "type": "string",
                "example": "Springfield",
                "description": "Exact city name when a city place ID is unknown."
              },
              "type": {
                "enum": [
                  "state",
                  "county",
                  "city",
                  "zip_code",
                  "radius",
                  "polygon",
                  "bounds"
                ],
                "type": "string",
                "example": "county",
                "description": "Location type"
              },
              "west": {
                "type": "number",
                "description": "West longitude of the bounding box (for bounds locations)"
              },
              "north": {
                "type": "number",
                "description": "North latitude of the bounding box (for bounds locations)"
              },
              "south": {
                "type": "number",
                "description": "South latitude of the bounding box (for bounds locations)"
              },
              "state": {
                "type": "string",
                "example": "IL",
                "maxLength": 2,
                "minLength": 2,
                "description": "Two-letter state abbreviation used to disambiguate a city name."
              },
              "latitude": {
                "type": "number",
                "description": "Center latitude for radius locations"
              },
              "longitude": {
                "type": "number",
                "description": "Center longitude for radius locations"
              },
              "coordinates": {
                "type": "array",
                "items": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "description": "Array of [longitude, latitude] coordinate pairs for polygon locations. Minimum 3 points."
              },
              "radius_miles": {
                "type": "number",
                "description": "Radius in miles for radius locations"
              }
            },
            "additionalProperties": {}
          },
          "default": [],
          "maxItems": 15,
          "description": "Array of locations defining where to export. Required unless people_ids is provided."
        },
        "scrub_dnc": {
          "type": "boolean",
          "description": "Exclude contacts on the Do Not Call registry."
        },
        "people_ids": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "per_12345",
            "per_67890"
          ],
          "maxItems": 1000,
          "description": "Array of DealMachine person IDs to export (e.g., [\"per_12345\"]). Max 1000. When provided, locations become optional."
        },
        "mobile_only": {
          "type": "boolean",
          "description": "Only include wireless phone numbers. Cannot be combined with landline_only."
        },
        "exclude_lists": {
          "anyOf": [
            {
              "example": {
                "people_list_ids": [
                  123,
                  456
                ]
              },
              "description": "Query Builder list protocol object. For people, use people_list_ids with numeric list IDs."
            },
            {
              "type": "null"
            }
          ]
        },
        "include_lists": {
          "anyOf": [
            {
              "example": {
                "people_list_ids": [
                  123,
                  456
                ]
              },
              "description": "Query Builder list protocol object. For people, use people_list_ids with numeric list IDs."
            },
            {
              "type": "null"
            }
          ]
        },
        "landline_only": {
          "type": "boolean",
          "description": "Only include landline phone numbers. Cannot be combined with mobile_only."
        },
        "require_email": {
          "type": "boolean",
          "description": "Only include records where the contact has an email address."
        },
        "require_phone": {
          "type": "boolean",
          "description": "Only include records where the contact has a phone number."
        },
        "property_match": {
          "enum": [
            "owner",
            "resident",
            "renter"
          ],
          "type": "string",
          "example": "owner",
          "description": "Defines the person-to-property relationship for the export."
        },
        "active_phones_only": {
          "type": "boolean",
          "description": "Only include phone numbers with active reported phone activity. Numbers with inactive or unknown activity are excluded."
        },
        "bigquery_data_environment": {
          "anyOf": [
            {
              "type": "number",
              "const": 1
            },
            {
              "type": "number",
              "const": 2
            },
            {
              "type": "number",
              "const": 3
            }
          ],
          "example": 3,
          "description": "Query Builder BigQuery dataset environment: 1 production, 2 staging, 3 development."
        },
        "exclude_previously_exported": {
          "anyOf": [
            {
              "example": true,
              "description": "Query Builder export exclusion protocol. Pass true to exclude previously exported people, or pass a full exclude_previously_exported object."
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_people_export annotations
{
  "title": "Export people to CSV",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_phones_dnc
Advertised by the server during the last successful anonymous check.
Advertised destructive

Check DNC status. Check Do Not Call (DNC) registry status and phone type for an array of phone numbers. Returns DNC status and phone type without performing a full person enrichment. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_phones_dnc input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "body"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "phones"
      ],
      "properties": {
        "phones": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "number"
            ],
            "properties": {
              "number": {
                "type": "string",
                "example": "5125551234",
                "description": "Phone number (digits only or with formatting)"
              }
            },
            "additionalProperties": {}
          },
          "maxItems": 1000,
          "minItems": 1,
          "description": "Array of phone numbers to check (max 1,000)"
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_phones_dnc annotations
{
  "title": "Check DNC status",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_prospects_id_files
Advertised by the server during the last successful anonymous check.
Advertised destructive

Register uploaded file. Step two: after the PUT succeeds, record the file on the prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_prospects_id_files input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "s3_key",
        "file_name",
        "file_size"
      ],
      "properties": {
        "s3_key": {
          "type": "string",
          "maxLength": 512,
          "minLength": 1
        },
        "file_name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "file_size": {
          "type": "integer",
          "maximum": 26214400,
          "minimum": 0
        },
        "content_type": {
          "type": "string",
          "default": "application/octet-stream",
          "maxLength": 100,
          "minLength": 1
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_prospects_id_files annotations
{
  "title": "Register uploaded file",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_prospects_id_files_upload_url
Advertised by the server during the last successful anonymous check.
Advertised destructive

Get file upload URL. Step one of attaching a file: returns a presigned URL to PUT the bytes to (valid 5 minutes, max 25 MB) and the `s3_key` to register afterwards with `POST /files`. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_prospects_id_files_upload_url input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "file_name"
      ],
      "properties": {
        "file_name": {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        "file_size": {
          "type": "integer",
          "maximum": 26214400,
          "minimum": 0
        },
        "content_type": {
          "type": "string",
          "default": "application/octet-stream",
          "maxLength": 100,
          "minLength": 1
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_prospects_id_files_upload_url annotations
{
  "title": "Get file upload URL",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_prospects_id_photos
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Add prospect photo. Attach a photo to the prospect’s property from base64 (small images) or a public https URL (up to 10 MB). Needs an API key created by a user. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_prospects_id_photos input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "caption": {
          "type": "string",
          "maxLength": 500
        },
        "latitude": {
          "type": "number",
          "maximum": 90,
          "minimum": -90
        },
        "image_url": {
          "type": "string",
          "format": "uri",
          "description": "Public https URL of the image to copy in (max 10 MB)."
        },
        "longitude": {
          "type": "number",
          "maximum": 180,
          "minimum": -180
        },
        "photo_type": {
          "enum": [
            "street_view",
            "property_front",
            "property_side",
            "property_back",
            "condition",
            "damage",
            "other"
          ],
          "type": "string",
          "default": "other"
        },
        "image_base64": {
          "type": "string",
          "minLength": 1,
          "description": "Base64 image (JPEG, PNG, or WebP). Keep the request under 1 MB; use `image_url` for larger files."
        }
      },
      "additionalProperties": {}
    },
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_prospects_id_photos annotations
{
  "title": "Add prospect photo",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_prospects_id_tags_tag_id
Advertised by the server during the last successful anonymous check.
Advertised destructive

Add tag to prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_prospects_id_tags_tag_id input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "tag_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "prospect_123",
          "description": "Prospect ID, e.g. `prospect_123`"
        },
        "tag_id": {
          "type": "string",
          "example": "tag_31",
          "description": "Tag ID, e.g. `tag_31`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_prospects_id_tags_tag_id annotations
{
  "title": "Add tag to prospect",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_prospects_check
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check prospect state. For up to 500 record IDs, say which are prospects and where they are. Use it to avoid duplicate adds. Retrieves data without changing records or spending credits. Requires confirmed=true for this request.

dealmachine_post_prospects_check input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "record_ids"
      ],
      "properties": {
        "record_ids": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ],
            "description": "Record ID: `prop_123`, `person_456`, `company_7`, or the bare number."
          },
          "maxItems": 500,
          "minItems": 1
        },
        "record_type": {
          "enum": [
            "property",
            "person",
            "company"
          ],
          "type": "string",
          "default": "property",
          "description": "What kind of record the prospect tracks."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_prospects_check annotations
{
  "title": "Check prospect state",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_post_tags
Advertised by the server during the last successful anonymous check.
Advertised destructive

Create tag. Add a workspace tag. Names are unique per workspace and cannot reuse a built-in tag’s name. Up to 200 tags per workspace. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_tags input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1
        },
        "sort_order": {
          "type": "integer",
          "maximum": 65535,
          "minimum": 0
        },
        "description": {
          "anyOf": [
            {
              "type": "string",
              "maxLength": 255
            },
            {
              "type": "null"
            }
          ]
        },
        "badge_variant": {
          "enum": [
            "default",
            "secondary",
            "info",
            "warning",
            "destructive"
          ],
          "type": "string",
          "description": "How the tag chip is colored in the app."
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_tags annotations
{
  "title": "Create tag",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_tags_reorder
Advertised by the server during the last successful anonymous check.
Advertised destructive

Reorder tags. Set the display order of workspace tags. IDs not listed keep their order after the listed ones. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_tags_reorder input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "tag_ids"
      ],
      "properties": {
        "tag_ids": {
          "type": "array",
          "items": {
            "type": [
              "string",
              "number"
            ]
          },
          "maxItems": 200,
          "minItems": 1
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_tags_reorder annotations
{
  "title": "Reorder tags",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_tasks
Advertised by the server during the last successful anonymous check.
Advertised destructive

Create task. Create a new task. Optionally link it to an opportunity, property, or person. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_tasks input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "body": {
      "type": "object",
      "required": [
        "title"
      ],
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1
        },
        "due_date": {
          "type": "string"
        },
        "person_id": {
          "type": "string",
          "description": "Link to a person"
        },
        "description": {
          "type": "string",
          "maxLength": 5000
        },
        "property_id": {
          "type": "string",
          "description": "Link to a property"
        },
        "opportunity_id": {
          "type": "string",
          "description": "Link to a CRM opportunity (numeric or UUID)"
        },
        "assigned_to_user_id": {
          "type": "integer",
          "maximum": 9007199254740991,
          "minimum": -9007199254740991
        },
        "assigned_to_agent_id": {
          "anyOf": [
            {
              "type": "null",
              "const": null,
              "description": "Retired. AI agent assignment is no longer supported."
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": {}
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_tasks annotations
{
  "title": "Create task",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_webhooks_id_deliveries_delivery_id_redeliver
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Redeliver. Queue one delivery to be sent again. Pass `delivery_id=all` with `since` to requeue every delivery after a time. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_webhooks_id_deliveries_delivery_id_redeliver input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id",
        "delivery_id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        },
        "delivery_id": {
          "type": "string",
          "example": "dlv_9001",
          "description": "Delivery ID, e.g. `dlv_9001`"
        }
      },
      "additionalProperties": false
    },
    "query": {
      "type": "object",
      "properties": {
        "since": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
          "description": "Requeue every delivery created after this time instead of one."
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_webhooks_id_deliveries_delivery_id_redeliver annotations
{
  "title": "Redeliver",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_webhooks_id_rotate_secret
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Rotate webhook secret. Issue a new signing secret. The old one keeps validating signatures for 24 hours so your consumer can switch over. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_webhooks_id_rotate_secret input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_webhooks_id_rotate_secret annotations
{
  "title": "Rotate webhook secret",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_post_webhooks_id_test
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Send test event. Sends one `ping` event to the URL right now, signed like a real delivery, and returns what came back. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.

dealmachine_post_webhooks_id_test input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "path"
  ],
  "properties": {
    "path": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "whk_12",
          "description": "Webhook ID, e.g. `whk_12`"
        }
      },
      "additionalProperties": false
    },
    "confirmed": {
      "type": "boolean",
      "description": "Set true only after the user approves this change or credit use."
    }
  },
  "additionalProperties": false
}
dealmachine_post_webhooks_id_test annotations
{
  "title": "Send test event",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_list_create
Advertised by the server during the last successful anonymous check.

Creates a list in the workspace, optionally pre-filled with up to 250 property or person IDs. Filed records become prospects unless `add_as_prospects` is false. Free; no credits are charged.

dealmachine_list_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 100,
      "minLength": 1,
      "description": "List name"
    },
    "record_ids": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          },
          {
            "type": "string",
            "pattern": "^[1-9]\\d*$"
          }
        ]
      },
      "maxItems": 250,
      "minItems": 1,
      "description": "Internal property or person IDs to file right away (max 250). Omit to create an empty list."
    },
    "source_type": {
      "enum": [
        "properties",
        "people"
      ],
      "type": "string",
      "description": "What the list holds. Defaults to properties."
    },
    "add_as_prospects": {
      "type": "boolean",
      "description": "Whether the records also become prospects in the workspace. Defaults to true. Pass false only when the user does not want these records tracked as prospects."
    }
  }
}
dealmachine_list_create annotations
{
  "title": "Create DealMachine List",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
dealmachine_list_add_items
Advertised by the server during the last successful anonymous check.

Adds property or person IDs to an existing list (max 10,000 per request; duplicates are skipped). Filed records become prospects unless `add_as_prospects` is false. Free; no credits are charged.

dealmachine_list_add_items input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "list_id",
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          },
          {
            "type": "string",
            "pattern": "^[1-9]\\d*$"
          }
        ]
      },
      "maxItems": 10000,
      "minItems": 1,
      "description": "Internal property or person IDs to add"
    },
    "id_type": {
      "enum": [
        "internal_property_id",
        "internal_person_id"
      ],
      "type": "string",
      "description": "Which kind of IDs these are. Defaults to internal_property_id."
    },
    "list_id": {
      "type": "string",
      "minLength": 1,
      "description": "The list ID to add to"
    },
    "add_as_prospects": {
      "type": "boolean",
      "description": "Whether the records also become prospects in the workspace. Defaults to true. Pass false only when the user does not want these records tracked as prospects."
    }
  }
}
dealmachine_list_add_items annotations
{
  "title": "Add Records to DealMachine List",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_prospect_add
Advertised by the server during the last successful anonymous check.

Tracks one record or up to 1,000 records as prospects in the workspace. Records that are prospects already are returned unchanged; archived ones come back to active. Free; no credits are charged.

dealmachine_prospect_add input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "record_ids"
  ],
  "properties": {
    "favorite": {
      "type": "boolean",
      "description": "Also star them for the connected user"
    },
    "record_ids": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "number"
        ]
      },
      "maxItems": 1000,
      "minItems": 1,
      "description": "Record IDs such as `prop_12345` or `person_777`, or bare numbers"
    },
    "record_type": {
      "enum": [
        "property",
        "person",
        "company"
      ],
      "type": "string",
      "description": "What kind of record. Defaults to property."
    }
  }
}
dealmachine_prospect_add annotations
{
  "title": "Add DealMachine Prospects",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_prospect_get
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns one prospect by prospect ID, or by the record it tracks, with its lifecycle, status (Hot, Warm, Cold, Follow up, Do Not Contact; read only), tags, and note and file counts. Free.

dealmachine_prospect_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "record_id": {
      "type": "string",
      "description": "Record ID such as `prop_12345`, used when prospect_id is not known"
    },
    "prospect_id": {
      "type": "string",
      "description": "Prospect ID such as `prospect_8812`"
    },
    "record_type": {
      "enum": [
        "property",
        "person",
        "company"
      ],
      "type": "string",
      "description": "What kind of record. Defaults to property."
    }
  }
}
dealmachine_prospect_get annotations
{
  "title": "Get DealMachine Prospect",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_prospect_search
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the workspace prospects by lifecycle and source, optionally scoped to a list or a tag, starred only, or matching address or name words. Paged, up to 100 per page. Free.

dealmachine_prospect_search input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "page": {
      "type": "integer",
      "maximum": 9007199254740991,
      "minimum": 1
    },
    "sort": {
      "enum": [
        "newest",
        "oldest"
      ],
      "type": "string"
    },
    "search": {
      "type": "string",
      "maxLength": 120,
      "description": "Address words for properties; name or city words for people"
    },
    "source": {
      "enum": [
        "direct",
        "list",
        "favorite",
        "driving",
        "import",
        "opportunity",
        "mail",
        "api",
        "zapier",
        "cli",
        "mcp"
      ],
      "type": "string",
      "description": "How the prospect was added. Use driving for prospects added during drives."
    },
    "tag_id": {
      "type": "string",
      "description": "Only prospects with this tag, such as `tag_31`"
    },
    "list_id": {
      "type": "string",
      "description": "Only members of this list"
    },
    "per_page": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
    },
    "lifecycle": {
      "enum": [
        "active",
        "opportunity",
        "archived"
      ],
      "type": "string",
      "description": "Defaults to active"
    },
    "record_type": {
      "enum": [
        "property",
        "person"
      ],
      "type": "string",
      "description": "Defaults to property"
    },
    "favorites_only": {
      "type": "boolean"
    }
  }
}
dealmachine_prospect_search annotations
{
  "title": "Search DealMachine Prospects",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_prospect_update
Advertised by the server during the last successful anonymous check.
Advertised destructive

Moves a prospect between active, opportunity, and archived, or stars it. Archiving ends its mail. With cascade enabled, it also closes open opportunities. List memberships are kept either way. Free.

dealmachine_prospect_update input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "prospect_id"
  ],
  "properties": {
    "cascade": {
      "type": "boolean",
      "description": "When archiving, close open opportunities. Mail ending is unaffected and list memberships are kept either way. Defaults to true"
    },
    "favorite": {
      "type": "boolean"
    },
    "lifecycle": {
      "enum": [
        "active",
        "opportunity",
        "archived"
      ],
      "type": "string"
    },
    "prospect_id": {
      "type": "string",
      "description": "Prospect ID such as `prospect_8812`"
    }
  }
}
dealmachine_prospect_update annotations
{
  "title": "Update DealMachine Prospect",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
dealmachine_prospect_note_add
Advertised by the server during the last successful anonymous check.

Adds a note (up to 10,000 characters) to a prospect. Free.

dealmachine_prospect_note_add input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "prospect_id",
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "maxLength": 10000,
      "minLength": 1,
      "description": "The note text"
    },
    "prospect_id": {
      "type": "string",
      "description": "Prospect ID such as `prospect_8812`"
    }
  }
}
dealmachine_prospect_note_add annotations
{
  "title": "Add DealMachine Prospect Note",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
dealmachine_prospect_tags_set
Advertised by the server during the last successful anonymous check.
Advertised destructive

Replaces the tags on a prospect with exactly the given tag IDs; an empty list clears them. Free.

dealmachine_prospect_tags_set input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "prospect_id",
    "tag_ids"
  ],
  "properties": {
    "tag_ids": {
      "type": "array",
      "items": {
        "type": [
          "string",
          "number"
        ]
      },
      "maxItems": 100,
      "description": "Tag IDs such as `tag_31`"
    },
    "prospect_id": {
      "type": "string",
      "description": "Prospect ID such as `prospect_8812`"
    }
  }
}
dealmachine_prospect_tags_set annotations
{
  "title": "Set DealMachine Prospect Tags",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": true
}
dealmachine_tags_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the prospect tag catalog: the built-in tags every workspace has plus the workspace’s own, with how many prospects carry each. Free.

dealmachine_tags_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "include_inactive": {
      "type": "boolean",
      "description": "Include archived tags"
    }
  }
}
dealmachine_tags_list annotations
{
  "title": "List DealMachine Tags",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_mail_campaign_send
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Launches a draft mail campaign and spends wallet dollars for its recipients and scheduled steps.

dealmachine_mail_campaign_send input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "campaign_id",
    "confirmed"
  ],
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user approves the current cost estimate"
    },
    "campaign_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
dealmachine_mail_campaign_send annotations
{
  "title": "Send Mail Campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_mail_campaign_add_properties
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Adds properties to a Ready, Active or Paused campaign and spends wallet dollars. Each added property starts at step 1 on its own schedule; properties already in the campaign are untouched. Before calling this, call dealmachine_mail_read with operation add_properties_estimate and the property count, tell the user the charge due today (pay_today_cents) and the amount charged later as mail goes out (pay_later_cents), and get their approval. A paused campaign charges nothing today; each piece is charged as it goes out after it resumes (charged_on_resume). Auto-reload must be on when the campaign has more than one step, a repeating step, or any delay. The response lists added_count and each skipped property with its reason: already_in_campaign, do_not_contact, no_mailing_address, duplicate_mailing_address, archived_prospect or not_found. Find campaigns that accept properties with dealmachine_mail_read search_campaigns and accepting_properties=true.

dealmachine_mail_campaign_add_properties input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "campaign_id",
    "property_ids",
    "recipient",
    "confirmed"
  ],
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user approves the charge due today from the estimate"
    },
    "recipient": {
      "enum": [
        "owner",
        "resident"
      ],
      "type": "string",
      "description": "owner mails the owner's mailing address; resident mails the current resident at the property"
    },
    "campaign_id": {
      "type": "string",
      "minLength": 1
    },
    "property_ids": {
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "integer",
            "maximum": 9007199254740991,
            "exclusiveMinimum": 0
          },
          {
            "type": "string",
            "pattern": "^[1-9]\\d*$"
          }
        ]
      },
      "maxItems": 5000,
      "minItems": 1,
      "description": "Property IDs to add (1 to 5000)"
    }
  }
}
dealmachine_mail_campaign_add_properties annotations
{
  "title": "Add Properties to Mail Campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_mail_campaign_end
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Ends a Ready, Active or Paused mail campaign permanently. Unsent mail is stopped, no properties can be added, and it can never be resumed. Mail already printed or with the carrier still delivers. To reuse its steps, create a new campaign. A draft has not started and cannot be ended (campaign_is_draft). Warn the user that ending cannot be undone.

dealmachine_mail_campaign_end input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "campaign_id",
    "confirmed"
  ],
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user confirms ending this campaign for good"
    },
    "campaign_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
dealmachine_mail_campaign_end annotations
{
  "title": "End Mail Campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_mail_campaign_cancel
Advertised by the server during the last successful anonymous check.
Advertised destructiveOpen-world

Cancels a mail campaign, kept for existing clients. A started campaign ends as with dealmachine_mail_campaign_end; a draft is cancelled; a campaign that has already ended is returned unchanged. Unsent mail stops, while mail already submitted still delivers.

dealmachine_mail_campaign_cancel input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "campaign_id",
    "confirmed"
  ],
  "properties": {
    "confirmed": {
      "type": "boolean",
      "const": true,
      "description": "Set to true only after the user approves cancelling this campaign"
    },
    "campaign_id": {
      "type": "string",
      "minLength": 1
    }
  }
}
dealmachine_mail_campaign_cancel annotations
{
  "title": "Cancel Mail Campaign",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": true
}
dealmachine_webhook_list
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists the workspace’s outbound webhooks with their event types and delivery health, plus the catalog of event types when asked. Free.

dealmachine_webhook_list input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "include_events": {
      "type": "boolean",
      "description": "Also return the event catalog with example bodies"
    }
  }
}
dealmachine_webhook_list annotations
{
  "title": "List DealMachine Webhooks",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
dealmachine_webhook_create
Advertised by the server during the last successful anonymous check.
Open-world

Registers an https URL to receive prospect and list events. Returns the signing secret once; relay it to the user. Free.

dealmachine_webhook_create input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url",
    "event_types"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "Public https URL that accepts POST requests"
    },
    "batch_max": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "Most events per request. Default 50"
    },
    "description": {
      "type": "string",
      "maxLength": 255
    },
    "event_types": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "description": "Event types such as `prospect.added`, `prospect.*`, or `*`"
    },
    "include_contacts": {
      "type": "boolean",
      "description": "Include phone numbers and emails on person prospects"
    }
  }
}
dealmachine_webhook_create annotations
{
  "title": "Create DealMachine Webhook",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2212 ms
95th percentile latency
2212 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2212 ms · metadata changed · 128 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http dealmachine-mcp https://mcp.dealmachine.com

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add dealmachine-mcp --url https://mcp.dealmachine.com

Cursor

Merge this server into .cursor/mcp.json in your project, then enable dealmachine-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "dealmachine-mcp": {
      "url": "https://mcp.dealmachine.com"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "dealmachine-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.dealmachine.com",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start dealmachine-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "dealmachine-mcp": {
      "type": "http",
      "url": "https://mcp.dealmachine.com"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http dealmachine-mcp https://mcp.dealmachine.com

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "dealmachine-mcp": {
      "url": "https://mcp.dealmachine.com"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "dealmachine-mcp": {
      "serverUrl": "https://mcp.dealmachine.com"
    }
  }
}

Let your agent find its tools

Find servers like DealMachine MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.