Webhooks

Get pushed an event when something changes instead of polling: the payload, signature verification, delivery guarantees and the event list.

A webhook is a URL of yours that Seayora POSTs to when something happens — a work order is created, a payment settles. Set them up under Settings → AI & integrations → Webhooks; each one carries the events you chose and a signing secret.

Payload

POST https://your-endpoint.example.com
Seayora-Event: work_order.created
Seayora-Delivery: 40213
Seayora-Signature: t=1786411896,v1=9f86d081884c7d…

{
  "event": "work_order.created",
  "created_at": "2026-08-11T01:31:00.000Z",
  "account": "[email protected]",
  "data": { "id": 318, "title": "Kitchen sink leaking", "urgency": "high" }
}

Verifying

Compute HMAC-SHA256(secret, "<t>.<raw body>") and compare it to v1. Use the raw body, before any JSON parsing — re-serializing changes the bytes and the signature will not match. Reject anything whose t is more than a few minutes old to stop replays.

Delivery guarantees

  • At least once. Answer 2xx quickly and process afterwards; if you answer slowly we retry and you will see the event twice. Deduplicate on Seayora-Delivery.
  • Failures retry with growing gaps for roughly seven hours.
  • Twenty consecutive failures pause the endpoint so it stops burning retries — resume it from the Webhooks screen once it is fixed.

Events (13)

EventWhen it fires
listing.publishedA new rental listing went live and is publicly visible.
property.updatedRent, availability or listing copy changed.
work_order.createdA new maintenance job was opened.
work_order.updatedStatus, urgency, schedule or assignee changed.
work_order.completedA maintenance job was closed out.
task.createdA property-management task was added.
task.updatedA task changed status, priority or due date.
task.completedA task was marked done.
application.decidedAn application was pre-approved, accepted or rejected.
calendar_event.createdA showing, inspection or meeting was booked.
message.sentA message went out through the API.
iot.alert.raisedA connected device tripped a rule — a leak, a freeze risk, carbon monoxide — or stopped reporting.
iot.alert.resolvedA device alert cleared, automatically or by a person.

Related guides

Related features and guides

  • API Requests & Responses — Documentation. The response envelope, paging, the money and date conventions, and how writes work on the Seayora REST API.
  • API Rate Limits & Error Codes — Documentation. The error shape, every stable error code and what to do about it, rate-limit headers, and how to retry well.
  • Approvals: How an Assistant Proposes Changes — Documentation. Why a connected assistant usually proposes rather than performs, what the Approvals queue is, and the one action that can never be automated.
  • Apartment & Rental Search — Feature. Search rentals by city, neighborhood, price, bedrooms, and amenities. Save homes, get alerts when something changes, and apply online in minutes with a reusable renter profile.
  • Rental Listing Software — 60 Days Free, Then $9/Month — Feature. Advertise apartments, houses, condos, and townhomes for rent. Every listing gets its first 60 days free, then $9/month while the unit stays vacant — prorated daily and stopped the moment it rents. No brokerage fee, no setup fee, no subscription.

Explore Seayora