The DealMachine API lets you access real estate data and automate workflows programmatically — including enriching or appending your own list of properties with data like mailing address, ownership, and vacancy.
Can I connect my own list and append data to it?
Yes. If you have a list of properties (for example a parcel number and address, or just an address), you can use the API to look those properties up and pull back the data you want, then add it to your file. You can:
Search for properties or people by location and filters — including custom polygon and radius searches,
Look up a single property or person, or
Batch look up many at once,
and choose exactly which fields come back. The API can search with polygons and radius, apply property filters, and return owner and contact information without any manual use of the DealMachine website. You can also build a list and export it as a CSV.
What data can I get?
Hundreds of property and owner fields, including mailing address, owner information, vacancy, beds, baths, year built, square footage, estimated value and equity, mortgage, tax, sale history, and more. Contact data for the people tied to a property includes names, phones, emails, phone type (mobile or landline), carrier, and National DNC status. There is also a "usage last 2 months" column that helps remove unused or disconnected numbers (and, with the family/relative filters, helps identify deceased homeowners and curative-title deals). The full field and filter reference lives in the API docs.
How do I get access?
You need a DealMachine account. Create an API key in Developer Settings at dealmachine.com/settings/developer
Send the key as a Bearer token in the Authorization header, e.g.
Authorization: Bearer dm_sk_live_...Base URL:
https://api.v2.dealmachine.com/v1Full documentation, endpoints, examples, CLI, and MCP server: api.docs.dealmachine.com
How does pricing work?
API usage is billed in data credits, the same way data works in the DealMachine app:
1 credit per property details export and 1 credit per person report (a person with multiple phones or emails still counts as 1). If one property has two owners and you request both people, that is 2 person credits.
Re-accessing the same record within the same billing month is free — records are de-duplicated, so you're not charged twice. A "last export date" filter remembers when you last exported a record, so you can avoid pulling the same ones again.
You can look up person/contact data only for the properties you choose after your own internal filtering — you don't have to enrich every property a search returns.
You can preview the credit cost of a request before running it, and count endpoints (applying filters and seeing how many records match) are free.
What's free vs. what uses a credit
Some fields return without using a property credit. This is the same whether you export in the app or through the API:
Free (no property credit): address, APN, mailing address, and latitude/longitude. Useful for filtering and deciding which properties to enrich before spending credits.
Uses 1 property credit: exporting property fields such as liens, beds, baths, and other property details.
Plans and volume pricing
$99 per 10,000 data credits per month. You can upgrade in 10,000-credit increments as needed, up to 60,000 data credits per month.
Beyond 60,000 per month, credits are sold in 100,000 increments at $599 per month each, which require a 12-month commitment (billed monthly). Multiple 100,000-credit packages can be used on one account.
DealMachine sells these as subscriptions (not pay-as-you-go). If you go over your monthly credits on the cancel-anytime plan, you can wait for the plan to renew or arrange an upgrade with the team; there isn't a separate per-credit overage charge.
Rate limits
The default API limit is 60 calls per minute and 5,000 calls per day.
Higher rate limits are available for Scale Plan customers (100,000 data credits per month and above). The next level up is 60 calls per minute and 10,000 per day for an added $100 per month on an annual Scale Plan agreement.
Storing and using the data
You can store API-returned records in your own CRM and use those contacts in your own outbound calling systems, including an external AI voice platform, subject to your own compliance obligations. One exception: if you are serving DealMachine API data inside your own customer-facing app, we ask that you do not cache it.
Keeping records after you cancel
On normal accounts (under 1,000,000 records per month), you can keep using records you've already acquired even if you later cancel. If you need to go above 1,000,000 records per month, that moves to a data license — under a license you would not be able to keep using the records after cancelling.
Advanced API behavior: IDs, exclusions, sorting, and date filters
These details answer common developer questions that aren't fully covered in the main docs:
Property IDs. A
dm_property_idis the prefixprop_followed by the numeric property ID (soprop_123456789is123456789). To add properties to a list, strip the prefix and send the numbers toPOST /v1/lists/{list_id}/itemsas{"ids": [123456789, ...]}. The ID type defaults to property IDs.Excluding a list from a search. Pass the string
list_idreturned byPOST /v1/lists(for example"abc-123-def-456") inexclude_lists.property_list_ids. Make sure it is a property list — a list ID that doesn't resolve is ignored, not rejected. Setting"add_as_prospects": falseonly skips adding the records to your CRM prospects; list membership and exclusion still work. Excluded properties are removed in the query itself, so they are never returned and never charged. Allow a couple of minutes after adding items before relying on the exclusion.exclude_previously_exported: true. Records bought through
POST /v1/properties/searchcount as exported, as do exports from the DealMachine web app on the same account. It applies across your whole account with no time limit, so it carries into later billing cycles. A purchase normally becomes excludable within a few minutes. For a guarantee you never receive a record twice, add each purchased page to a dedicated "purchased" list and pass that list inexclude_lists— that is the most dependable method.Sorting by date. When sorting newest-first (descending) by
foreclosure_default_dateormls_last_initial_listing_date, records with no date come last — they are not left out. Sorting oldest-first (ascending) puts them first. These dates are only populated from a recent (last 12 months) foreclosure or MLS record, so many properties have none.Date filters.
is_afteris strictly after the date (the date itself is not included) andis_beforeis strictly before.date_rangeis inclusive of both the start and end dates. Dates are compared as calendar dates, with no time-of-day or timezone effect. No date filter ever matches a record whose date is empty.Do-Not-Call refresh. The
do_not_callflag comes from our data provider's DNC flag, which is refreshed monthly. A value offalsemeans the number wasn't flagged at the last refresh — not a live registry check — so for TCPA compliance we recommend scrubbing against the registry yourself before dialing.
Credit limits and partial results in API responses
Out of credits: the API returns HTTP 402 with
error.codeset to"export_limit_exceeded"and the message "Data credit limit reached for this billing cycle." Theerror.detailsobject includesremaining_creditsandbilling_cycle_end, and aRetry-Afterheader gives the seconds until the cycle resets.Partial page: if your balance covers only part of a page, you receive the records that could be paid for plus a top-level
warningstring (for example "Data credit limit reached. 37 of 100 results included…"). In thecreditsobject,usedis the credits actually charged andpropertiesis the number of records returned. After a partial page, add credits and request the same page again — moving to the next page would skip the records that were cut off.
Is there a free API trial?
We can't offer free trials of this type of data (for legal reasons). The best way to evaluate it is to start on the $99/month plan, which you can cancel any time — generate an API key from inside the account and fully test the API, data coverage, and match rates that way.
For a plan tailored to very high volume, enterprise or licensing needs, reach out and we'll connect you with our team.