Enquiries Channel manager Bookings Your website Booking engine Pricing
v2026-09

property.changed

Listing identity, status and coverage.

When it fires

A listing was renamed, archived or reactivated, or its coverage or external id changed.

This event describes a thing rather than a period, so window is null.

What to do with it

  • coverage: "inactive" means the property has been removed from your integration. Stop selling it. You will receive no further events for it.
  • status: "archived" means the host took it off market entirely. Bookings against it are refused with PROPERTY_ARCHIVED.
  • Doorloom supports property clusters: a main property with sub-properties that block each other. is_master and master_property_id tell you where this listing sits. If you do not model clusters, availability events already account for the mutual blocking, so you can ignore both fields.

The data block

Field Type Description
doorloom_id integer Doorloom's permanent id.
external_id string|null Your alias for the property, if one has been mapped.
coverage string "active" or "inactive". Whether this property is in your integration's scope.
name string The listing name, falling back to the internal property name.
property_type string|null Villa, apartment, homestay and so on, as the host classified it.
status string "active", "inactive" or "archived".
is_master boolean True when this property is the head of its cluster, or has no cluster.
master_property_id integer The cluster head's id. Equals doorloom_id when is_master is true.
units[] array The ACTIVE units only. Use inventory.changed when you need the retired ones.
units[].inventory_id integer Doorloom's permanent id for the unit.
units[].external_unit_id string|null Your alias for it, if one has been mapped. Null means unmapped — you can still book the unit by inventory_id, or omit both and let Doorloom allocate.
units[].name string Host-facing unit name, e.g. "Garden Suite".
units[].code string|null Host-entered short code, if any.
units[].is_active boolean False for a unit the host deactivated or deleted. An inactive unit cannot be booked.
units[].is_default boolean True for the property's default unit. Single-unit properties have exactly one.
units[].max_occupancy integer|null Maximum guests the unit sleeps. Null means the host has not set one; Doorloom does not enforce it.
units[].deleted boolean True once the host deletes the unit. Retire your alias when you see this.

Example

The full envelope, as it arrives on the wire.

json
{
    "id": "01J6Y0V9R2T5W7Y9A1C3E5G7H9",
    "type": "property.changed",
    "version": "2026-09",
    "sequence": 1046,
    "occurred_at": "2026-10-01T15:06:02+05:30",
    "integration": {
        "id": 12,
        "slug": "acme-pms"
    },
    "property": {
        "doorloom_id": 902,
        "external_id": "VILLA-9",
        "master_property_id": 902
    },
    "window": null,
    "data": {
        "doorloom_id": 902,
        "external_id": "VILLA-9",
        "coverage": "active",
        "name": "Amber Villa, Alibaug",
        "property_type": "Villa",
        "status": "active",
        "is_master": true,
        "master_property_id": 902,
        "units": [
            {
                "inventory_id": 31,
                "external_unit_id": "ROOM-A",
                "name": "Garden Suite",
                "code": "GS",
                "is_active": true,
                "is_default": true,
                "max_occupancy": 4,
                "deleted": false
            },
            {
                "inventory_id": 32,
                "external_unit_id": "ROOM-B",
                "name": "Pool Suite",
                "code": "PS",
                "is_active": true,
                "is_default": false,
                "max_occupancy": 4,
                "deleted": false
            }
        ]
    }
}

Related

Something unclear or wrong on this page? Write to [email protected] and tell us which page — we would rather fix the doc than answer the ticket twice.