fields. Credits are consumed by entity type: 1 credit per property and 1 credit per person/contact returned.estimate_cost: true on search endpoints to preview the credit cost of a request before
committing to it. Count endpoints are also free.dm_property_id, full_address, address, unit, city, state, zip, latitude, longitude, images, num_bedrooms, num_bathrooms, living_area_sqftdm_person_id, first_name, last_name, full_name, middle_initial, is_likely_owner, is_in_owner_family, is_resident, is_likely_renterphones[] (with number, type, do_not_call), emails[] (with address)fields parameter (e.g., estimated_value, year_built, equity_percent, person_age, etc.)| Entity | Cost | Rule |
| Property lead | 1 credit | Per unique property result |
| People lead | 1 credit | Per unique person/contact result (same person with 3 phones = 1 credit) |
| Returned property contacts | 1 credit | Per unique person/contact returned under a property |
| Returned associated property | 1 credit | Per unique property returned under a person/contact |
POST /v1/properties/search)anchor | contact_audience | Property Credits | People Credits |
"properties" | "none" | 1 per property | 0 |
"properties" | "owners" etc. | 1 per property | 1 per returned contact |
"people" | Required | Depends on selected property fields | 1 per returned person |
contact_audience defaults to "owners" on property search. Set it to "none" when you do not
need contacts in the response.POST /v1/people/search)GET /v1/properties/:id, GET /v1/people/:id)none consume people credits. Use contact_audience=none for property-only data and zero people credits.include_properties=true consume property creditsPOST /v1/properties/ids, POST /v1/people/ids)total_cap and the live
total_available balance. Monthly credits reset at the start of each billing period. Purchased
additional credits remain in the additional-credit wallet until used.credits object so you always know what was charged:123456789{ "data": [ ... ], "credits": { "used": 7, "properties": 5, "people": 2, "deduplicated": 3 } }
| Field | Description |
used | New credits charged after deduplication |
properties | Property lead records evaluated in this response |
people | People lead records evaluated in this response |
deduplicated | Entities already accessed this billing period (free) |
deduplicated field tells you how many entities you already accessed this month — these are
returned for free. Use this to understand your effective cost per request.credits object in the response.credits object — only endpoints that access property or contact data.estimate_cost parameter on search endpoints to preview the credit cost of a request before committing to it. A cost estimate validates your request and returns a page-aware cost estimate without returning data or consuming credits.1234567891011121314151617181920212223// POST /v1/properties/search { "estimate_cost": true, "per_page": 25, "page": 1, "filters": [...] } { "totals": { "properties": 1847, "people": 2134 }, "pagination": { "page": 1, "per_page": 25, "total_results": 1847, "total_pages": 74 }, "estimated_credits": { "this_page": 25, "total_all_pages": 1847, "breakdown": { "properties": 25, "people": 0, "already_accessed": 0, "note": "Estimate based on requested output. Actual credits may be lower due to returned contact counts, active licenses, and deduplication within your billing period." } } }
this_page — estimated credits for this page before deduplication and licensingtotal_all_pages — credits all pages combined would consumealready_accessed — currently 0; prior access is reflected in the final response instead1dm usage
12curl https://api.v2.dealmachine.com/v1/usage \ -H "Authorization: Bearer dm_sk_live_xxx"