Webhooks

Photo Events

LifeLoop emits photo events — a photo was uploaded, updated, or deleted. Webhook event for photo domain mutations (uploaded, updated or deleted). resourceId is the photo ID — fetch the photo via GET /api/v1/{tenant}/photos/{resourceId}. Note: for photo.deleted events the photo will no longer be available via the API.

Events

Event typeTriggered when
photo.uploadedFired when a new photo is added to a facility.
photo.updatedFired when a photo is edited — in LifeLoop or through PUT /api/v1/{tenant}/photos/{photoId} — and at least one of these actually changed: tagged residents, caption, albums, tags or facilities.
photo.deletedFired when a photo is deleted from a facility.

What to do after receiving this event

  1. Check the X-API-KEY header.
  2. Read resourceId from the payload — this is the photoId.
  3. Call GET /api/v1/{tenant}/photos/{resourceId} to fetch the full object.
  4. Update your local data store.
  5. Return HTTP 200.
Sample payloadphoto.uploaded.json
{
  "eventType": "photo.uploaded",
  "aggregateType": "photo",
  "occurredAt": "2026-06-18T10:30:00Z",
  "tenant": "sunrise-001",
  "eventId": "f3a91bc2-4d12-4e88-a1c3-8f2901dd7c94",
  "resourceId": "pho-001"
}
Fetch the full objectbash
curl https://api.lifeloop.com/api/v1/sunrise-001/photos/pho-001 \
  -H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
  -H "X-Acting-User-Id: ACTING_USER_ID" \
  -H "X-Acting-User-Tenant: sunrise-001"