Search and enrich US property, owner, people, and company data for sales and lead generation.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
This tool takes no arguments.
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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Create a Stripe-hosted checkout link after the customer explicitly approves the exact plan, price, billing interval and quantity from dealmachine_plans. Requires confirmed=true. Never call for a declined or hypothetical purchase. Creating the link does not charge the customer or activate a subscription. The customer completes payment in Stripe (Link may be offered); then check dealmachine_account and dealmachine_usage. Never automatically retry checkout or collect card details in chat.
| Argument | Type | Description |
|---|---|---|
| price_id* | string | |
| quantity | integer | |
| confirmed | boolean |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"price_id"
],
"properties": {
"price_id": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"quantity": {
"type": "integer",
"default": 1,
"maximum": 100,
"minimum": 1
},
"confirmed": {
"type": "boolean",
"default": false
}
}
}Find comparable sales + active listings for up to 25 subject properties. Costs 1 property data credit per subject found. Location/criteria optional (sensible defaults).
| Argument | Type | Description |
|---|---|---|
| criteria | object | |
| location | object | |
| property_ids* | array |
{
"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
}
}
}Lists recorded drives or returns one drive with its route, visits, events, and linked prospects. Free.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| page | integer | |
| drive_id | string | Required for get_drive. For example, drive_session_501 or drive_route_7. |
| per_page | integer | |
| operation* | string | |
| started_after | string | |
| driver_user_id | integer | |
| started_before | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"mode": {
"enum": [
"free_drive",
"route_plan",
"area_drive"
],
"type": "string"
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"drive_id": {
"type": "string",
"description": "Required for get_drive. For example, drive_session_501 or drive_route_7."
},
"per_page": {
"type": "integer",
"maximum": 100,
"exclusiveMinimum": 0
},
"operation": {
"enum": [
"list_drives",
"get_drive"
],
"type": "string"
},
"started_after": {
"type": "string"
},
"driver_user_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"started_before": {
"type": "string"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| zip | string | 5-digit ZIP code |
| city | string | City name |
| state | string | Two-letter state code |
| fields | array | DealMachine property field IDs to include in results |
| street | string | Street address component only (e.g. "123 Main St"); separate city, state, and ZIP fields are available |
| full_address | string | Complete address string (e.g. "123 Main St, Austin, TX 78701"), as an alternative to the parsed address fields |
| contact_audience | string | `none` returns property-only data with zero people credits; other values include matching contacts |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| apn* | string | Assessor's Parcel Number (e.g. "0123-45-6789") |
| fields | array | DealMachine property field IDs to include in results |
| location | object | Optional location to narrow results, including a city place ID |
| contact_audience | string | `none` returns property-only data with zero people credits; other values include matching contacts |
{
"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"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| email* | string | Email address |
| fields | array | DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit |
| location | object | Optional match location by state, ZIP, county, or numeric city place ID |
| include_properties | boolean | Include associated properties for each matched person. Costs 1 property data credit per property. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| fields | array | DealMachine property field IDs to include in results |
| latitude* | number | Latitude |
| longitude* | number | Longitude |
| contact_audience | string | `none` returns property-only data with zero people credits; other values include matching contacts |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| fields | array | DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit |
| location | object | Optional match location by state, ZIP, county, or numeric city place ID |
| per_page | integer | Results per page (default: 25, max: 100) |
| last_name* | string | Last name (required) |
| first_name | string | First name to narrow results |
| estimate_cost | boolean | Preview people counts and, when include_properties=true, associated property counts and estimated credits without returning data or consuming credits |
| middle_initial |
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).
| Argument | Type | Description |
|---|---|---|
| phone* | string | Phone number (e.g. "5551234567" or "+15551234567") |
| fields | array | DealMachine field IDs; people fields return on each person, while property fields return under property and may cost a property credit |
| location | object | Optional match location by state, ZIP, county, or numeric city place ID |
| include_properties | boolean | Include associated properties for each matched person. Costs 1 property data credit per property. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| search | string | Fuzzy concept search across field metadata |
| group_id | string | Filter by group ID |
| source_type | string | Filter by source type |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| search | string | Fuzzy concept search across filter metadata |
| group_id | string | Filter by group ID |
| source_type | string | Filter by source type (properties or people) |
{
"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)"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ids* | array | Internal property or person IDs to add |
| id_type | string | Which kind of IDs these are. Defaults to internal_property_id. |
| list_id* | string | The list ID to add to |
| add_as_prospects | boolean | 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. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| name* | string | List name |
| record_ids | array | Internal property or person IDs to file right away (max 250). Omit to create an empty list. |
| source_type | string | What the list holds. Defaults to properties. |
| add_as_prospects | boolean | 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. |
{
"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."
}
}
}Returns location identifiers for a name query, including FIPS, ZIP, city place, state, and county IDs. This read-only request is free.
| Argument | Type | Description |
|---|---|---|
| q* | string | |
| page | integer | |
| type | string | |
| state | string | 2-letter abbrev to narrow results |
| per_page | integer |
{
"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
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| confirmed* | boolean | Set to true only after the user approves the charge due today from the estimate |
| recipient* | string | owner mails the owner's mailing address; resident mails the current resident at the property |
| campaign_id* | string | |
| property_ids* | array | Property IDs to add (1 to 5000) |
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.
| Argument | Type | Description |
|---|---|---|
| confirmed* | boolean | Set to true only after the user approves cancelling this campaign |
| campaign_id* | string |
{
"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
}
}
}Creates or updates a draft mail campaign, or pauses or resumes a campaign. Free. Create with one audience (property_ids, contact_ids or list_ids) to make a draft. Create with no audience to save a Ready campaign that properties can be added to later with dealmachine_mail_campaign_add_properties. Set accepts_properties to true on create to keep adding properties to a campaign with an audience after it is sent. Pause works on Active campaigns, and on Ready campaigns that accept properties; an ended campaign cannot be paused or resumed.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| steps | array | |
| list_ids | array | |
| operation* | string | |
| address_to | string | |
| campaign_id | string | Required except for create |
| contact_ids | array | |
| description | any | |
| qr_code_url | any | |
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.
| Argument | Type | Description |
|---|---|---|
| confirmed* | boolean | Set to true only after the user confirms ending this campaign for good |
| campaign_id* | string |
{
"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
}
}
}Launches a draft mail campaign and spends wallet dollars for its recipients and scheduled steps.
| Argument | Type | Description |
|---|---|---|
| confirmed* | boolean | Set to true only after the user approves the current cost estimate |
| campaign_id* | string |
{
"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
}
}
}Reads mail campaigns, recipients, delivery analytics, cost estimates, designs, pricing, or wallet balance. Free. Campaign status is draft, ready, active, paused or ended. search_campaigns with accepting_properties=true lists campaigns properties can be added to now. add_properties_estimate (campaign_id, count) returns the charge due today (pay_today_cents) and later (pay_later_cents) for adding that many properties.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| size | string | |
| count | integer | add_properties_estimate: how many properties you plan to add |
| search | string | |
| status | string | Campaign status filter. completed and cancelled are legacy values; both are ended now |
| end_date | string | |
| per_page | integer | |
| design_id | string | |
| operation* | string |
Execute one discovered public API operation using the connected account. Read its schema first. May mutate data, delete records, spend credits, charge a saved payment method or send mail/webhooks. Obtain user approval for those actions, estimate costs before paid work, and pass confirmed=true when required. Never automatically retry writes. No arbitrary URLs or headers.
| Argument | Type | Description |
|---|---|---|
| body | any | |
| path | object | |
| query | object | |
| confirmed | boolean | |
| operation* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"body": {},
"path": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
}
}
]
}
},
"query": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": [
"string",
"number",
"boolean"
]
},
{
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
}
}
]
}
},
"confirmed": {
"type": "boolean"
},
"operation": {
"type": "string",
"maxLength": 200
}
}
}Get the published parameters, JSON body, response schemas, credit guidance and confirmation requirement for one operation ID returned by search.
| Argument | Type | Description |
|---|---|---|
| operation* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"operation": {
"type": "string",
"maxLength": 200
}
}
}Find public API operations for tasks, addresses, activity, exports, lists, prospects, files, photos, tags, webhooks, driving, mail, billing and property/people data. Returns compact summaries; fetch one schema before executing. Empty query browses the paginated catalog.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | |
| offset | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
}
}
}Count matching people without consuming credits. Filters use the people catalog.
| Argument | Type | Description |
|---|---|---|
| filters | array | |
| locations* | array |
{
"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
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| id* | string | |
| fields | array | |
| property_limit | integer | |
| include_properties | boolean |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ids* | array | |
| fields | array | |
| property_limit | integer | |
| include_properties | boolean |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | array | |
| fields | array | |
| filters | array | |
| per_page | integer | |
| locations* | array | |
| estimate_cost | boolean |
{
"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"
}
}
}Read live plan prices, billing intervals, included credits, features and free API capabilities. Works before signup. Connected customers get their workspace prices. Counts and supported estimates are free; enrichment needs paid access. Read this before explaining or recommending a plan. Never invent credits, discounts or prices.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Returns the number of properties matching locations and filters without consuming credits.
| Argument | Type | Description |
|---|---|---|
| filters | array | |
| locations* | array |
{
"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
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum records to export |
| anchor | string | default: person for property-owner contact rows |
| fields | array | Additional fields to include. Omit for the owner-contact default fields. |
| filters | array | |
| locations* | array | |
| scrub_dnc | boolean | Exclude contacts on the Do Not Call registry |
| mobile_only | boolean | Only include wireless phone numbers |
| landline_only | boolean | Only include landline phone numbers |
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.
| Argument | Type | Description |
|---|---|---|
| id* | string | prop_XXXXX |
| enrich | boolean | false = base fields only, 0 credits |
| fields | array | DealMachine property field IDs |
| contact_audience | string | default: owners; use none for property-only data with zero people credits |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| ids* | array | |
| enrich | boolean | |
| contact_audience | string | default: owners; use none for property-only data with zero people credits |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | array | |
| fields | array | |
| filters | array | |
| per_page | integer | |
| locations* | array | |
| estimate_cost | boolean | true = preview cost, no data returned |
| contact_audience | string | default: owners; "none" skips contacts |
{
"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"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| favorite | boolean | Also star them for the connected user |
| record_ids* | array | Record IDs such as `prop_12345` or `person_777`, or bare numbers |
| record_type | string | What kind of record. Defaults to property. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| record_id | string | Record ID such as `prop_12345`, used when prospect_id is not known |
| prospect_id | string | Prospect ID such as `prospect_8812` |
| record_type | string | What kind of record. Defaults to property. |
{
"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."
}
}
}Adds a note (up to 10,000 characters) to a prospect. Free.
| Argument | Type | Description |
|---|---|---|
| body* | string | The note text |
| prospect_id* | string | Prospect ID such as `prospect_8812` |
{
"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`"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | |
| sort | string | |
| search | string | Address words for properties; name or city words for people |
| source | string | How the prospect was added. Use driving for prospects added during drives. |
| tag_id | string | Only prospects with this tag, such as `tag_31` |
| list_id | string | Only members of this list |
| per_page | integer | |
| lifecycle | string | Defaults to active |
| record_type | string | Defaults to property |
| favorites_only |
Replaces the tags on a prospect with exactly the given tag IDs; an empty list clears them. Free.
| Argument | Type | Description |
|---|---|---|
| tag_ids* | array | Tag IDs such as `tag_31` |
| prospect_id* | string | Prospect ID such as `prospect_8812` |
{
"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`"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| cascade | boolean | When archiving, close open opportunities. Mail ending is unaffected and list memberships are kept either way. Defaults to true |
| favorite | boolean | |
| lifecycle | string | |
| prospect_id* | string | Prospect ID such as `prospect_8812` |
{
"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`"
}
}
}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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Lists the prospect tag catalog: the built-in tags every workspace has plus the workspace’s own, with how many prospects carry each. Free.
| Argument | Type | Description |
|---|---|---|
| include_inactive | boolean | Include archived tags |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"include_inactive": {
"type": "boolean",
"description": "Include archived tags"
}
}
}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.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Registers an https URL to receive prospect and list events. Returns the signing secret once; relay it to the user. Free.
| Argument | Type | Description |
|---|---|---|
| url* | string | Public https URL that accepts POST requests |
| batch_max | integer | Most events per request. Default 50 |
| description | string | |
| event_types* | array | Event types such as `prospect.added`, `prospect.*`, or `*` |
| include_contacts | boolean | Include phone numbers and emails on person prospects |
{
"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"
}
}
}Lists the workspace’s outbound webhooks with their event types and delivery health, plus the catalog of event types when asked. Free.
| Argument | Type | Description |
|---|---|---|
| include_events | boolean | Also return the event catalog with example bodies |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"include_events": {
"type": "boolean",
"description": "Also return the event catalog with example bodies"
}
}
}Returns whether the current credential is valid, the active organization name, and the authentication type. This read-only request is free.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}| string |
| Middle initial (single character) to narrow results |
| include_properties | boolean | Include associated properties for each person. Costs 1 property data credit per property. |
{
"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."
}
}
}{
"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)"
}
}
}| contact_name |
| any |
| property_ids | array | Draft audience. Omit every audience field on create to save a Ready campaign |
| contact_email | any |
| contact_phone | any |
| return_address | object |
| return_address_id | string |
| accepts_properties | boolean | Create only. true keeps the campaign open to new properties after it is sent. Defaults to false with an audience; a campaign with no audience always accepts properties |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"design_id": {
"type": "string"
},
"delay_days": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"repeat_count": {
"type": "integer",
"maximum": 12,
"minimum": 1
},
"design_prompt": {
"type": "string",
"maxLength": 5000,
"minLength": 1
},
"interval_days": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"skip_if_responded": {
"type": "boolean"
}
}
},
"maxItems": 5,
"minItems": 1
},
"list_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"operation": {
"enum": [
"create",
"update",
"pause",
"resume"
],
"type": "string"
},
"address_to": {
"enum": [
"owner",
"resident"
],
"type": "string"
},
"campaign_id": {
"type": "string",
"description": "Required except for create"
},
"contact_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
},
"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,
"exclusiveMinimum": 0
},
"description": "Draft audience. Omit every audience field on create to save a Ready campaign"
},
"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"
}
]
},
"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
}
}
},
"return_address_id": {
"type": "string"
},
"accepts_properties": {
"type": "boolean",
"description": "Create only. true keeps the campaign open to new properties after it is sent. Defaults to false with an audience; a campaign with no audience always accepts properties"
}
}
}| start_date | string |
| campaign_id | string |
| launched_only | boolean |
| accepting_properties | boolean | search_campaigns: true returns only campaigns properties can be added to now |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"size": {
"enum": [
"4x6",
"6x9",
"6x11"
],
"type": "string"
},
"count": {
"type": "integer",
"maximum": 5000,
"minimum": 1,
"description": "add_properties_estimate: how many properties you plan to add"
},
"search": {
"type": "string",
"maxLength": 255
},
"status": {
"enum": [
"draft",
"ready",
"active",
"paused",
"ended",
"completed",
"cancelled"
],
"type": "string",
"description": "Campaign status filter. completed and cancelled are legacy values; both are ended now"
},
"end_date": {
"type": "string"
},
"per_page": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"design_id": {
"type": "string"
},
"operation": {
"enum": [
"search_campaigns",
"get_campaign",
"campaign_recipients",
"campaign_analytics",
"cost_estimate",
"search_designs",
"get_design",
"wallet_balance",
"mail_pricing",
"analytics_summary",
"add_properties_estimate"
],
"type": "string"
},
"start_date": {
"type": "string"
},
"campaign_id": {
"type": "string"
},
"launched_only": {
"type": "boolean"
},
"accepting_properties": {
"type": "boolean",
"description": "search_campaigns: true returns only campaigns properties can be added to now"
}
}
}| require_email |
| boolean |
| Only include contacts with an email address |
| require_phone | boolean | Only include contacts with a phone number |
| contact_audience | string | default: owners; "none" creates a property-only export |
| active_phones_only | boolean | Only include phone numbers with active reported phone activity |
{
"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"
}
}
}| boolean |
{
"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"
}
}
}