GoliathDevelopersGet an API key
Webhooks / Catalyst Property Event

Catalyst Property Event

Shared type definitions used across Goliath webhook payloads.

Triggered when a configured catalyst signal is detected on a property (e.g. pre-probate, foreclosure).

Overview

When a catalyst event is detected, Goliath sends a POST request to your configured webhook URL.

The payload includes:

  • Event metadata (version, timestamp)
  • Catalyst signal details
  • Property details and valuation
  • Ownership data
  • Skip tracing results (phones, emails, relatives)

Example Payload

{
  "version": "2026-01-21",
  "triggeredAt": "2026-03-19T14:00:48.135Z",
  "catalystEvent": {
    "type": "PREPROBATE",
    "summary": "{\"city\":\"Springfield\",\"deceasedAge\":\"99\",\"deceasedDate\":\"January 1, 2026\",\"deceasedName\":\"John Doe\"}",
    "publicationDate": "2026-03-19",
    "url": "https://example.com/fake-preprobate-record.json"
  },
  "property": {
    "url": "https://app.example.com/properties/123-main-st",
    "address": "123 MAIN ST, SPRINGFIELD, USA 00000",
    "metrics": {
      "zestimate": 123456,
      "beds": 3,
      "baths": 2,
      "livingAreaSqFt": 1500,
      "lotSizeAcres": 0.15,
      "propertyType": "SINGLE_FAMILY",
      "yearBuilt": 1900,
      "occupancyStatus": "OWNER_OCCUPIED",
      "estimatedTax": 1234.56,
      "estimatedPrice": 120000,
      "estimatedRent": 1500,
      "lastSaleAmount": 50000,
      "lastSaleDate": "2000-01-01",
      "nameOnTitle": "DOE, JOHN; DOE, JANE",
      "ownerMailingAddress": "PO BOX 123, SPRINGFIELD, USA 00000"
    },
    "parcel": {
      "apn": "000-FAKE-APN",
      "countyFips": "00000",
      "legalDescription": "LOT 1, BLOCK 1, FAKE SUBDIVISION",
      "lotSqFt": 6500,
      "lotAcres": 0.15,
      "zoningCode": "FAKE-R1"
    },
    "owners": [
      {
        "type": "person",
        "name": "john doe",
        "nameOnDeed": true,
        "skipTrace": {
          "phones": [
            { "number": "5550000001", "type": "Mobile", "ranking": 1 },
            { "number": "5550000002", "type": "Residential", "ranking": 2 }
          ],
          "emails": [
            { "email": "john.doe@example.com", "ranking": 1 },
            { "email": "jd@example.com", "ranking": 2 }
          ]
        }
      }
    ],
    "skipTraceResults": [
      {
        "firstName": "John",
        "lastName": "Doe",
        "age": 99,
        "deceased": true,
        "isRelative": false,
        "isNameOnDeed": true,
        "ranking": 1,
        "phones": [
          { "number": "5550000001", "type": "Mobile", "ranking": 1 }
        ],
        "emails": [
          { "email": "john.doe@example.com", "ranking": 1 }
        ]
      },
      {
        "firstName": "Jane",
        "lastName": "Doe",
        "age": 95,
        "deceased": false,
        "isRelative": true,
        "isNameOnDeed": true,
        "ranking": 2,
        "phones": [
          { "number": "5550000003", "type": "Mobile", "ranking": 1 }
        ],
        "emails": [
          { "email": "jane.doe@example.com", "ranking": 1 }
        ]
      },
      {
        "firstName": "Jimmy",
        "lastName": "Doe",
        "age": 60,
        "deceased": false,
        "isRelative": true,
        "isNameOnDeed": false,
        "ranking": 3,
        "phones": [
          { "number": "5550000004", "type": "Mobile", "ranking": 1 }
        ],
        "emails": []
      }
    ]
  }
}

Payload Fields

Field Type Description
version string Schema version of this webhook payload
triggeredAt string (ISO 8601) Timestamp when the event was triggered
catalystEvent CatalystEvent Details about the triggering signal
property Property Enriched property and ownership data

Type Reference

All types used in this payload are documented in the Types section.

Type Description
CatalystEvent The trigger signal
CatalystSummary Parsed contents of catalystEvent.summary
Property Full property object
PropertyMetrics Valuation and physical details
Parcel Legal and assessor data
Owner A single owner entry
SkipTrace Contact bundle attached to an owner
SkipTraceResult An individual in the expanded people graph
Phone Phone number with type and ranking
Email Email address with ranking

Notes

  • Opt-in only — you will only receive this payload if your account is configured for webhook delivery.
  • summary must be parsed — it is a stringified JSON object, not a nested object. Call JSON.parse() on it before accessing its fields.
  • Ranking — lower ranking = higher confidence across phones, emails, and skip trace results.
  • Partial data — some fields (emails, ownerMailingAddress, etc.) may be null or empty arrays.
  • Relatives included — skipTraceResults may include relatives of the owner, not just the owner themselves. Use isRelative to filter.