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.
https://mcp.dealmachine.comWhat you can do with it
- Search US property data
- Enrich owner information
- Find people and company data
- Generate sales leads
Source and maintenance
- 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
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
128 advertised
dealmachine_signup
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Start a free DealMachine account",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_account
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "View plan and available credits",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_enrich_address
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.
{
"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"
}
}
}{
"title": "Enrich Property by Address",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_enrich_latlng
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.
{
"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"
}
}
}{
"title": "Enrich Property by Coordinates",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_enrich_apn
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.
{
"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"
}
}
}{
"title": "Enrich Property by APN",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_enrich_email
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).
{
"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."
}
}
}{
"title": "Enrich Person by Email",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_enrich_phone
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).
{
"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."
}
}
}{
"title": "Enrich Person by Phone",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_enrich_name
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.
{
"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."
}
}
}{
"title": "Enrich People by Name",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_filters
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.
{
"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)"
}
}
}{
"title": "List DealMachine Search Filters",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_fields
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.
{
"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"
}
}
}{
"title": "List DealMachine Data Fields",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_usage
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "View DealMachine Credit Usage",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_whoami
Returns whether the current credential is valid, the active organization name, and the authentication type. This read-only request is free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"title": "Check DealMachine Authentication",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_property_search
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.
{
"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"
}
}
}{
"title": "Search Properties",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_property_count
Returns the number of properties matching locations and filters without consuming credits.
{
"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
}
}
}{
"title": "Count Matching Properties",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_property_export
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.
{
"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"
}
}
}{
"title": "Export Property Owner Leads",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_property_get
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.
{
"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"
}
}
}{
"title": "Get Property Details",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_property_get_many
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.
{
"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"
}
}
}{
"title": "Get Multiple Properties",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_comps
Find comparable sales + active listings for up to 25 subject properties. Costs 1 property data credit per subject found. Location/criteria optional (sensible defaults).
{
"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
}
}
}{
"title": "Find Comparable Properties",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_people_search
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.
{
"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"
}
}
}{
"title": "Search People",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_people_count
Count matching people without consuming credits. Filters use the people catalog.
{
"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
}
}
}{
"title": "Count Matching People",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_people_get
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.
{
"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"
}
}
}{
"title": "Get Person Details",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_people_get_many
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.
{
"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"
}
}
}{
"title": "Get Multiple People",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_location_search
Returns location identifiers for a name query, including FIPS, ZIP, city place, state, and county IDs. This read-only request is free.
{
"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
}
}
}{
"title": "Search Locations",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_delete_lists_list_id
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.
{
"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
}{
"title": "Delete list",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_lists_list_id_items
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.
{
"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
}{
"title": "Remove items from list",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_mail_designs_id
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.
{
"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
}{
"title": "Delete design",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_mail_return_addresses_id
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.
{
"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
}{
"title": "Delete return address",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_prospects_id
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.
{
"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
}{
"title": "Remove prospect",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_prospects_id_files_file_id
Delete prospect file. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Delete prospect file",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_prospects_id_notes_note_id
Delete prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Delete prospect note",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_prospects_id_photos_photo_id
Delete prospect photo. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Delete prospect photo",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_prospects_id_tags_tag_id
Remove tag from prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Remove tag from prospect",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_tags_id
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.
{
"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
}{
"title": "Delete tag",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_tasks_id
Delete task. Delete a task. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Delete task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_delete_webhooks_id
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.
{
"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
}{
"title": "Delete webhook",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_get_activity_activity_id
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.
{
"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
}{
"title": "Get activity",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_addresses_autocomplete
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.
{
"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
}{
"title": "Autocomplete property addresses",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_driving_drives
List drives. List recorded drives for the workspace. Each drive reports how many prospects were added. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List drives",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_driving_drives_id
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.
{
"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
}{
"title": "Get drive",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_exports
List exports. List past exports for your organization with optional pagination and status filtering. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List exports",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_exports_exportId
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.
{
"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
}{
"title": "Get export by ID",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_lists
List all lists. List all saved lists for your organization with pagination, search, filtering, and sorting. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List all lists",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_lists_list_id
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.
{
"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
}{
"title": "Get list by ID",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_lists_list_id_items
Get list items. Retrieve paginated items in a list. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get list items",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_locations_locationId
Get location. Retrieve a specific location by its ID. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get location",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_analytics_summary
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.
{
"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
}{
"title": "Get mail analytics summary",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_analytics_timeseries
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.
{
"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
}{
"title": "Get mail analytics time series",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns
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.
{
"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
}{
"title": "List campaigns",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns_id
Get campaign. Get a single campaign by ID with steps. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get campaign",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns_id_analytics
Campaign analytics. Get delivery and engagement analytics for a campaign. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Campaign analytics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns_id_cost_estimate
Estimate campaign cost. Get a cost estimate for launching a campaign, including wallet balance check. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Estimate campaign cost",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns_id_properties_estimate
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.
{
"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
}{
"title": "Estimate adding properties",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_campaigns_id_recipients
List campaign recipients. List recipients enrolled in a campaign with their delivery status. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List campaign recipients",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_designs
List designs. List mail designs for your organization. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List designs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_designs_id
Get design. Get a single design by ID, including HTML content. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get design",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_return_addresses
List return addresses. List all return addresses for your organization. Default address is listed first. Retrieves data without changing records or spending credits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "List return addresses",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_return_addresses_id
Get return address. Get a single return address by ID. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get return address",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_settings
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Get mail settings",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_wallet_balance
Get wallet balance. Get the current wallet balance, including pending charges and auto-reload settings. Retrieves data without changing records or spending credits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Get wallet balance",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_wallet_pricing
Get mail pricing. Get postcard pricing for your plan. Prices are in cents per postcard. Retrieves data without changing records or spending credits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Get mail pricing",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_mail_wallet_transactions
List wallet transactions. List wallet transaction history with optional filtering. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List wallet transactions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_activity
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.
{
"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
}{
"title": "List prospect activity",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_files
List prospect files. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List prospect files",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_files_file_id_download
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.
{
"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
}{
"title": "Download prospect file",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_notes
List prospect notes. Notes on the prospect, newest first. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List prospect notes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_notes_note_id
Get prospect note. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get prospect note",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_photos
List prospect photos. Photos of the prospect’s property, newest first. Property prospects only. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List prospect photos",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_id_tags
List prospect tags. The tag catalog with an `assigned` flag for this prospect. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List prospect tags",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_by_record
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.
{
"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
}{
"title": "Get prospect by record",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_prospects_counts
Count prospects. Prospect counts by lifecycle and record type, for the workspace or one list. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Count prospects",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_subscription
Get subscription status. Get your current subscription status, including plan details, billing cycle, and credit caps. Retrieves data without changing records or spending credits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "Get subscription status",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_tags_id
Get tag. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get tag",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_tasks
List tasks. List all tasks for the organization. Optionally filter by status, search, or assignee. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "List tasks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_tasks_id
Get task. Get a single task by ID. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get task",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_webhooks_id
Get webhook. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get webhook",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_webhooks_id_deliveries
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.
{
"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
}{
"title": "List webhook deliveries",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_webhooks_id_deliveries_delivery_id
Get webhook delivery. One delivery with the full event body that was (or will be) sent. Retrieves data without changing records or spending credits.
{
"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
}{
"title": "Get webhook delivery",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_get_webhooks_events
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.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"additionalProperties": false
}{
"title": "List webhook event types",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_patch_lists_list_id
Update list. Update the name of a list. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Update list",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_mail_campaigns_id
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.
{
"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
}{
"title": "Update campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_mail_designs_id
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.
{
"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
}{
"title": "Update design",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_mail_return_addresses_id
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.
{
"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
}{
"title": "Update return address",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_mail_settings
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.
{
"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
}{
"title": "Update mail settings",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_prospects
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.
{
"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
}{
"title": "Move prospects in bulk",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_prospects_id_notes_note_id
Edit prospect note. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Edit prospect note",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_tags_id
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.
{
"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
}{
"title": "Update tag",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_tasks_id
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.
{
"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
}{
"title": "Update task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_patch_webhooks_id
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.
{
"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
}{
"title": "Update webhook",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_activity_search
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.
{
"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
}{
"title": "Search activity",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_post_addresses_validate
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.
{
"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
}{
"title": "Validate addresses",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_enrichment_reverse_geocode
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.
{
"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
}{
"title": "Reverse geocode",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_lists_list_id_build
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.
{
"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
}{
"title": "Build list from search filters",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_lists_list_id_export
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.
{
"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
}{
"title": "Export list",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_lists_list_id_import
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.
{
"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
}{
"title": "Import IDs into list",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_campaigns
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.
{
"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
}{
"title": "Create campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_campaigns_id_pause
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.
{
"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
}{
"title": "Pause campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_campaigns_id_resume
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.
{
"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
}{
"title": "Resume campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_designs
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.
{
"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
}{
"title": "Create design",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_return_addresses
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.
{
"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
}{
"title": "Create return address",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_mail_return_addresses_id_default
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.
{
"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
}{
"title": "Set default return address",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_people_export
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.
{
"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
}{
"title": "Export people to CSV",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_phones_dnc
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.
{
"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
}{
"title": "Check DNC status",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_prospects_id_files
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.
{
"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
}{
"title": "Register uploaded file",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_prospects_id_files_upload_url
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.
{
"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
}{
"title": "Get file upload URL",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_prospects_id_photos
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.
{
"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
}{
"title": "Add prospect photo",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_prospects_id_tags_tag_id
Add tag to prospect. Requires user approval and confirmed=true before changes or credit use. Writes are never retried automatically.
{
"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
}{
"title": "Add tag to prospect",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_prospects_check
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.
{
"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
}{
"title": "Check prospect state",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_post_tags
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.
{
"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
}{
"title": "Create tag",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_tags_reorder
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.
{
"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
}{
"title": "Reorder tags",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_tasks
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.
{
"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
}{
"title": "Create task",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_webhooks_id_deliveries_delivery_id_redeliver
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.
{
"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
}{
"title": "Redeliver",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_webhooks_id_rotate_secret
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.
{
"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
}{
"title": "Rotate webhook secret",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_post_webhooks_id_test
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.
{
"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
}{
"title": "Send test event",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_list_create
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.
{
"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."
}
}
}{
"title": "Create DealMachine List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}dealmachine_list_add_items
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.
{
"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."
}
}
}{
"title": "Add Records to DealMachine List",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_prospect_add
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.
{
"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."
}
}
}{
"title": "Add DealMachine Prospects",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_prospect_get
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.
{
"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."
}
}
}{
"title": "Get DealMachine Prospect",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_prospect_search
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.
{
"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"
}
}
}{
"title": "Search DealMachine Prospects",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_prospect_update
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.
{
"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`"
}
}
}{
"title": "Update DealMachine Prospect",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}dealmachine_prospect_note_add
Adds a note (up to 10,000 characters) to a prospect. Free.
{
"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`"
}
}
}{
"title": "Add DealMachine Prospect Note",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}dealmachine_prospect_tags_set
Replaces the tags on a prospect with exactly the given tag IDs; an empty list clears them. Free.
{
"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`"
}
}
}{
"title": "Set DealMachine Prospect Tags",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}dealmachine_tags_list
Lists the prospect tag catalog: the built-in tags every workspace has plus the workspace’s own, with how many prospects carry each. Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"include_inactive": {
"type": "boolean",
"description": "Include archived tags"
}
}
}{
"title": "List DealMachine Tags",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_mail_campaign_send
Launches a draft mail campaign and spends wallet dollars for its recipients and scheduled steps.
{
"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
}
}
}{
"title": "Send Mail Campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_mail_campaign_add_properties
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.
{
"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)"
}
}
}{
"title": "Add Properties to Mail Campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_mail_campaign_end
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.
{
"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
}
}
}{
"title": "End Mail Campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_mail_campaign_cancel
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.
{
"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
}
}
}{
"title": "Cancel Mail Campaign",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}dealmachine_webhook_list
Lists the workspace’s outbound webhooks with their event types and delivery health, plus the catalog of event types when asked. Free.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"include_events": {
"type": "boolean",
"description": "Also return the event catalog with example bodies"
}
}
}{
"title": "List DealMachine Webhooks",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}dealmachine_webhook_create
Registers an https URL to receive prospect and list events. Returns the signing secret once; relay it to the user. Free.
{
"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"
}
}
}{
"title": "Create DealMachine Webhook",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
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.
Claude Code
claude mcp add --transport http dealmachine-mcp https://mcp.dealmachine.comCodex
codex mcp add dealmachine-mcp --url https://mcp.dealmachine.comCursor
{
"mcpServers": {
"dealmachine-mcp": {
"url": "https://mcp.dealmachine.com"
}
}
}Cline
{
"mcpServers": {
"dealmachine-mcp": {
"type": "streamableHttp",
"url": "https://mcp.dealmachine.com",
"disabled": false
}
}
}VS Code
{
"servers": {
"dealmachine-mcp": {
"type": "http",
"url": "https://mcp.dealmachine.com"
}
}
}Gemini CLI
gemini mcp add --transport http dealmachine-mcp https://mcp.dealmachine.comClaude Desktop
{
"mcpServers": {
"dealmachine-mcp": {
"url": "https://mcp.dealmachine.com"
}
}
}Windsurf
{
"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.