Overview
The LifeLoop REST API is organized around resources: facilities, residents, connections, activities, registrations, and messages. All requests are made over HTTPS to api.lifeloop.com and return JSON. List endpoints are paginated with page and pageSize.
Facilities
List facilities
/api/v1/{tenant}/facilitiesReturns a paginated list of all facilities (communities) for the tenant.
Path parameters
tenant stringrequired | Your LifeLoop tenant identifier |
Query parameters
page integeroptionaldefault: 1 | Page number |
pageSize integeroptionaldefault: 20 | Results per page (max 100) |
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/facilities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"{
"data": [
{
"id": "fac-001",
"name": "Sunrise Senior Living",
"tenant": "sunrise-001",
"timezone": "America/New_York"
}
],
"page": 1,
"pageSize": 20,
"hasMore": false
}Get facility
/api/v1/{tenant}/facilities/{facilityId}Returns a single facility by ID.
Path parameters
tenant stringrequired | Your LifeLoop tenant identifier |
facilityId stringrequired | The facility's unique ID |
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/facilities/{facilityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"{
"data": {
"id": "fac-001",
"name": "Sunrise Senior Living",
"tenant": "sunrise-001",
"timezone": "America/New_York"
}
}Residents
List residents
/api/v1/{tenant}/facilities/{facilityId}/residentsReturns a paginated list of residents for a facility.
Path parameters
tenant stringrequired | Your LifeLoop tenant identifier |
facilityId stringrequired | The facility's unique ID |
Query parameters
page integeroptionaldefault: 1 | Page number |
pageSize integeroptionaldefault: 20 | Results per page (max 100) |
search stringoptional | Filter by name |
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/facilities/{facilityId}/residents" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"{
"data": [
{
"id": "res-001",
"firstName": "Aileen",
"lastName": "Edmond",
"facilityId": "fac-001",
"status": "active"
}
],
"page": 1,
"pageSize": 20,
"hasMore": false
}Get resident
/api/v1/{tenant}/residents/{residentId}Retrieves a single resident.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Get residentCreate resident
/api/v1/{tenant}/facilities/{facilityId}/residentsCreates a new resident in a facility.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/facilities/{facilityId}/residents" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Create residentUpdate resident
/api/v1/{tenant}/residents/{residentId}Updates an existing resident.
curl -X PUT "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Update residentConnections
List connections for resident
/api/v1/{tenant}/residents/{residentId}/connectionsLists all family/friend connections for a resident.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/connections" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List connections for residentGet connection
/api/v1/{tenant}/connections/{connectionId}Retrieves a single connection.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Get connectionCreate connection
/api/v1/{tenant}/residents/{residentId}/connectionsAdds a new connection to a resident.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/connections" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Create connectionUpdate connection
/api/v1/{tenant}/connections/{connectionId}Updates a connection's details or permissions.
curl -X PUT "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Update connectionRemove connection
/api/v1/{tenant}/connections/{connectionId}Removes a connection from a resident.
curl -X DELETE "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Remove connectionActivities
List facility activities
/api/v1/{tenant}/facilities/{facilityId}/activitiesPaginated list of activities on a facility calendar.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/facilities/{facilityId}/activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List facility activitiesGet activity
/api/v1/{tenant}/activities/{activityId}Retrieves a single activity.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Get activityCreate activity
/api/v1/{tenant}/facilities/{facilityId}/activitiesCreates a new activity on a facility calendar.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/facilities/{facilityId}/activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Create activityUpdate activity
/api/v1/{tenant}/activities/{activityId}Updates an activity.
curl -X PUT "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Update activityDelete activity
/api/v1/{tenant}/activities/{activityId}Deletes an activity.
curl -X DELETE "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Delete activityList activity types
/api/v1/{tenant}/activity-typesLists all activity type taxonomy values.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/activity-types" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List activity typesPersonal Activities
List personal activities
/api/v1/{tenant}/residents/{residentId}/personal-activitiesReturns a paginated list of personal activities for a resident. Personal activities are one-on-one activities (e.g. therapy, personal care) not associated with any facility calendar.
Path parameters
tenant stringrequired | Your LifeLoop tenant identifier |
residentId stringrequired | The resident's unique ID |
Query parameters
startDate string<date-time>required | Start of date range (ISO 8601) |
endDate string<date-time>required | End of date range (ISO 8601) |
page integeroptionaldefault: 1 | Page number |
pageSize integeroptionaldefault: 20 | Page size (max 100) |
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/personal-activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"{
"data": [
{
"id": "act-001",
"name": "Physical Therapy",
"startDate": "2026-06-18T00:00:00Z",
"startTime": "10:00",
"endTime": "10:30",
"durationInMinutes": 30,
"attendedResidentIds": [
"res-001"
],
"location": "Room 4B",
"description": "Weekly PT session",
"confirmed": true,
"photos": [],
"created": "2026-06-01T00:00:00Z",
"modified": "2026-06-01T00:00:00Z"
}
],
"page": 1,
"pageSize": 20,
"hasMore": false
}Get personal activity
/api/v1/{tenant}/personal-activities/{activityId}Retrieves a single personal activity.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/personal-activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Get personal activityCreate personal activity
/api/v1/{tenant}/residents/{residentId}/personal-activitiesCreates a personal activity for a resident. The resident in the path is automatically included as an attendee.
Path parameters
tenant stringrequired | Your LifeLoop tenant identifier |
residentId stringrequired | The resident's unique ID |
Request body
name stringrequired | Activity name |
startDate string<date-time>required | Start date (ISO 8601) |
startTime stringrequired | Start time (HH:mm) |
durationInMinutes integerrequired | Duration in minutes |
location stringoptional | Location label |
description stringoptional | Optional notes |
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/personal-activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Physical Therapy",
"startDate": "2026-06-18T00:00:00Z",
"startTime": "10:00",
"durationInMinutes": 30,
"location": "Room 4B",
"description": "Weekly PT session"
}'{
"id": "act-001",
"name": "Physical Therapy",
"startDate": "2026-06-18T00:00:00Z",
"startTime": "10:00",
"endTime": "10:30",
"durationInMinutes": 30,
"attendedResidentIds": [
"res-001"
],
"location": "Room 4B",
"description": "Weekly PT session",
"confirmed": false,
"photos": [],
"created": "2026-06-18T09:00:00Z",
"modified": "2026-06-18T09:00:00Z"
}Update personal activity
/api/v1/{tenant}/personal-activities/{activityId}Updates a personal activity.
curl -X PUT "https://api.lifeloop.com/api/v1/{tenant}/personal-activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Update personal activityDelete personal activity
/api/v1/{tenant}/personal-activities/{activityId}Deletes a personal activity.
curl -X DELETE "https://api.lifeloop.com/api/v1/{tenant}/personal-activities/{activityId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Delete personal activityRegistrations
List registrations for activity
/api/v1/{tenant}/activities/{activityId}/registrationsLists registrations for a given activity.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/registrations" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List registrations for activityRegister for activity
/api/v1/{tenant}/activities/{activityId}/registrationsRegisters a resident or connection for an activity.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/registrations" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Register for activityCancel registration
/api/v1/{tenant}/registrations/{registrationId}Cancels a registration.
curl -X DELETE "https://api.lifeloop.com/api/v1/{tenant}/registrations/{registrationId}" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Cancel registrationList resident registrations
/api/v1/{tenant}/residents/{residentId}/registrationsLists registrations for a resident.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/registrations" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List resident registrationsList connection registrations
/api/v1/{tenant}/connections/{connectionId}/registrationsLists registrations made by a connection.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}/registrations" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List connection registrationsAttendance
List activity attendance
/api/v1/{tenant}/activities/{activityId}/attendanceLists attendance records for an activity.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/attendance" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List activity attendanceMark attendance
/api/v1/{tenant}/activities/{activityId}/attendanceMarks attendance for one or more residents.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/attendance" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Mark attendanceGroup Activities
List group activities (resident)
/api/v1/{tenant}/residents/{residentId}/group-activitiesLists group activities a resident is part of.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/group-activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List group activities (resident)List group activities (connection)
/api/v1/{tenant}/connections/{connectionId}/group-activitiesLists group activities visible to a connection.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}/group-activities" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List group activities (connection)Photos
List activity photos
/api/v1/{tenant}/activities/{activityId}/photosLists photos attached to an activity.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/photos" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List activity photosUpload activity photo
/api/v1/{tenant}/activities/{activityId}/photosUploads a new photo to an activity.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/activities/{activityId}/photos" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Upload activity photoMessages
List message threads
/api/v1/{tenant}/residents/{residentId}/threadsLists all message threads for a resident.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/threads" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List message threadsGet thread messages
/api/v1/{tenant}/threads/{threadId}/messagesLists messages within a thread.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/threads/{threadId}/messages" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for Get thread messagesSend message
/api/v1/{tenant}/threads/{threadId}/messagesSends a new message in a thread.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/threads/{threadId}/messages" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Send messageAnnouncements
List resident announcements
/api/v1/{tenant}/residents/{residentId}/announcementsLists announcements for a resident.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/residents/{residentId}/announcements" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List resident announcementsList connection announcements
/api/v1/{tenant}/connections/{connectionId}/announcementsLists announcements visible to a connection.
curl -X GET "https://api.lifeloop.com/api/v1/{tenant}/connections/{connectionId}/announcements" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"// Coming soon — sample response for List connection announcementsArchive announcement
/api/v1/{tenant}/announcements/{announcementId}/archiveArchives an announcement.
curl -X POST "https://api.lifeloop.com/api/v1/{tenant}/announcements/{announcementId}/archive" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for Archive announcementWebhooks
Overview
https://your-app.example.com/lifeloop/webhookLifeLoop sends webhook events to notify your application when data changes. Payloads are intentionally lightweight — they carry only the event type, timestamp, and the ID of the changed resource. Your application fetches the full object from the API.
Request body
eventId stringrequired | Unique ID for this delivery |
eventType stringrequired | Dot-namespaced event, e.g. resident.created |
tenant stringrequired | Tenant the event belongs to |
occurredAt string<date-time>required | ISO 8601 timestamp |
resourceId stringrequired | ID of the changed resource |
curl -X POST "https://api.lifeloop.comhttps://your-app.example.com/lifeloop/webhook" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"eventId": "evt-abc123",
"eventType": "resident.created",
"tenant": "sunrise-001",
"occurredAt": "2026-06-18T10:30:00Z",
"resourceId": "res-001"
}'// Coming soon — sample response for Overviewfacility.created / facility.updated
facility.*Fires when a facility is created or updated.
curl -X POST "https://api.lifeloop.comfacility.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for facility.created / facility.updatedresident.created / resident.updated / resident.deleted
resident.*Fires on any resident lifecycle change.
curl -X POST "https://api.lifeloop.comresident.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for resident.created / resident.updated / resident.deletedconnection.created / connection.updated / connection.removed
connection.*Fires when a connection is added, updated, or removed.
curl -X POST "https://api.lifeloop.comconnection.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for connection.created / connection.updated / connection.removedactivity.created / activity.updated / activity.deleted
activity.*Fires on activity lifecycle changes.
curl -X POST "https://api.lifeloop.comactivity.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for activity.created / activity.updated / activity.deletedregistration.created / registration.cancelled
registration.*Fires when registrations are created or cancelled.
curl -X POST "https://api.lifeloop.comregistration.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for registration.created / registration.cancelledthread.created / message.created
thread.* / message.*Fires when a thread starts or a message is sent.
curl -X POST "https://api.lifeloop.comthread.* / message.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for thread.created / message.createdannouncement.sent
announcement.sentFires when an announcement is sent to recipients.
curl -X POST "https://api.lifeloop.comannouncement.sent" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for announcement.sentphoto.uploaded / photo.deleted
photo.*Fires when an activity photo is added or removed.
curl -X POST "https://api.lifeloop.comphoto.*" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'// Coming soon — sample response for photo.uploaded / photo.deleted