Skip to main content
Version: v1.0

Lifecycle

What happens to a property from the moment you send it until it's no longer listed on Spot2.


Possible states

StateWhat it means for you
NewThe property appears in your feed for the first time.
ModifiedThe property already exists but some of its data changed (price, description, photos, etc.).
UnchangedThe property already exists and no data has changed since the last sync.
DeactivatedIts external_id appeared in the /properties/deleted endpoint.
ResurrectedThe property was deactivated but reappeared in the main feed.

When a property is published

A property is published when:

  1. It is new and passes all mandatory validations.
  2. It is modified and still passes all validations.

If the property fails a validation, it remains pending. You'll receive the details of the issues via the feedback webhook.


When a property is deactivated

A property is deactivated when its external_id appears in the deletion endpoint (/properties/deleted). This indicates the property was delisted in your CRM and should no longer be published.

Spot2 queries the deletion endpoint on each sync cycle. The delisting is immediate: the property is deactivated in the same cycle.

The absence of a property from the main feed is never interpreted as deletion. Only the deletion endpoint can deactivate properties.

More details in Deletion Protocol.


When a property is resurrected

If a property was deactivated and then reappears in your main feed with the same external_id, it is republished with the current data. It goes through all validations again before being published.

If the external_id changes, it is treated as a new property.


Fault tolerance

The incremental model is designed to tolerate failures:

  • API returns empty (temporary bug): If Spot2 sends updated_since and your API responds with 0 items, nothing is deleted. Absence is never deletion.
  • Timeout mid-pagination: The cycle is marked as failed. The next cycle retries from the same timestamp — no information is lost.
  • Spot2 is down for N days: On return, it sends updated_since with the last successful cycle's date. Your API returns all accumulated changes.