Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Move Prospects in Bulk

The bulk form of Update Prospect, addressed by record ID rather than prospect ID. It is the same move the app's selection action bar runs when a user archives a map or grid selection, so a mixed selection is fine: records that are not prospects are skipped, as are prospects already in the requested lifecycle, and the response counts each.
body record_typestringdefault: property
property, person, or company.
body record_idsarrayrequired
Up to 1,000 record IDs, such as prop_12345 or the bare number.
body lifecyclestringrequired
active, opportunity, or archived.
body cascadebooleandefault: true
When archiving: also close each prospect's open opportunities. Pass false to keep them open. Mail always ends, and list memberships are kept either way.
changed is how many prospects moved. already_in_lifecycle counts prospects that were there before the call and were left as they were. not_prospects counts requested records that are not prospects in the workspace. Repeating the same call is safe: it reports zero changes and still ends mail for any archived record in the selection.
Request example
curl -X PATCH "https://api.v2.dealmachine.com/v1/prospects" \ -H "Authorization: Bearer dm_sk_live_xxx" \ -H "Content-Type: application/json" \ -d '{ "record_ids": ["prop_12345", "prop_67890", "prop_24680"], "lifecycle": "archived" }'
Response example
{ "data": { "lifecycle": "archived", "changed": 1, "already_in_lifecycle": 1, "not_prospects": 1, "changed_record_ids": ["prop_12345"] } }