# How do I push properties in?

POST them to https://app.closemagnet.com/api/v2/properties with your account API token in the Authorization: Bearer header. The one required field is address; without it the request is refused with a 400 bad_request.

The recognized keys are address, street, city, state, zip, contract_price, asking_price, arv, repair_estimate, and exit_type, plus the seller's contact id from your LeadAttractor CRM under the key shown in the sample payload on the Integrations tab of Properties (https://app.closemagnet.com/properties?view=integrations). Anything else in the body is ignored rather than rejected, so you can send your LeadAttractor CRM's full payload.

For a native webhook shape, point it at the native webhook address shown on that same Integrations tab. That adapter dedupes on address, so a repeat send updates the existing deal rather than creating a duplicate.

To create or update one deal and get the saved record back, for example from an AI agent or your own system, use POST https://app.closemagnet.com/api/v2/properties/upsert instead (the upsert_property tool for an agent). It needs a scoped credential with Write ticked on the Properties row, not the account token. It matches an existing deal by your own external_ref first, so send one per deal, and it never overwrites a different deal. Send dry_run true to see what would change without saving, and an idempotency_key so a retry changes nothing twice. The answer carries the full record after the change. The seller's contact id is the code at the end of the contact's link in your LeadAttractor CRM; send only that code. The full field list is in the API reference, under Settings, then API.

Links to the app require your CloseMagnet login.

Read online: https://docs.closemagnet.com/articles/questions/how-do-i-push-properties-in
