Skip to main content
Version: 26.2

Activity feed

Use this endpoint to read the activity feed of a project. For example, to export an audit trail of changes, or to react to changes made by others.

MethodPathDescription
GET/api/collaboration/activity-feedList the activity of a project, newest first.

The request requires the X-Project-Id header and the Project viewer role or higher. Only events of that project are returned.

Query parameters​

ParameterDescription
pageThe page number, starting at 0. Default: 0.
sizeThe page size, from 1 to 100. Default: 100.
sortThe sort order. See Sorting. Default: occurredAt,desc.
artifactTypesOnly return these artifact types. Repeat the parameter for several values: ATTRIBUTE, ATTRIBUTE_CONNECTOR, POLICY, CACHE_PROFILE, PROJECT, TEMPLATE, REPORT, or DOMAIN.
operationsOnly return these operations. Repeat the parameter for several values: CREATE, UPDATE, DELETE, or LEAVE_PROJECT.
actorIdsOnly return changes made by these users or clients. Repeat the parameter for several IDs.
artifactFqnOnly return changes to artifacts whose name contains this text, ignoring case.
fromOccurredAt, toOccurredAtOnly return events in this period, inclusive, as ISO-8601 date and times, such as 2026-10-01T00:00:00Z.

All filters are combined, with one exception: when you use both actorIds and artifactFqn, an event is returned if it matches either of them.

Sorting​

Sort by occurredAt, actorId, artifactType, or operation. Add asc or desc after the field names. Fields without a direction are sorted in ascending order. You can repeat the parameter for several sort criteria.

sort=occurredAt,desc
sort=actorId,operation,asc&sort=occurredAt,desc

Any other field is rejected with 400 and the INVALID_SORT_FIELD error code.

Example​

curl -G "https://<authorization-hub-url>/api/collaboration/activity-feed" \
-H "Authorization: Bearer <access_token>" \
-H "X-Project-Id: <project-id>" \
--data-urlencode "artifactTypes=ATTRIBUTE" \
--data-urlencode "operations=CREATE" \
--data-urlencode "fromOccurredAt=2026-10-01T00:00:00Z" \
--data-urlencode "size=20"

Response​

{
"pageMetadata": {
"requestedPageSize": 20,
"requestedPageNumber": 0,
"totalElements": 1,
"totalPages": 1,
"currentPageNumberOfElements": 1,
"currentPageNumber": 0,
"hasNextPage": false,
"hasPrevPage": false
},
"content": [
{
"id": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
"projectId": "e00f12c8-8f3a-40ac-81a7-5a762abc7288",
"occurredAt": "2026-10-13T09:15:30Z",
"actorId": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"artifactType": "ATTRIBUTE",
"artifactFqn": "resource.department",
"versionId": "0f7b5bd2-9d5f-45f0-a9b9-8c8d0f4a6a11",
"operation": "CREATE",
"fieldChanges": []
}
]
}
FieldDescription
occurredAtWhen the change was applied.
actorIdThe ID of the user or M2M client that made the change. For changes saved from My workspace, it is whoever staged the change.
artifactType, artifactFqnWhat changed. A policy is named <package>/<file>, a project by its name, and a domain by its name.
versionId, previousVersionIdThe versions the change created and replaced.
operationCREATE, UPDATE, DELETE, or LEAVE_PROJECT.
fieldChangesThe fields that changed, each with a field, an oldValue, and a newValue. Adding or removing a project member is recorded under the field member: the newValue is the user ID when a member is added, and the oldValue is the user ID when a member is removed or leaves, with the other value empty. Member role changes use the field memberRole, with values in the format <userId>:<ROLE>.

What is recorded​

The feed records the creation, update, and deletion of:

  • attributes
  • attribute connectors
  • cache profiles
  • policies
  • policy insights templates and reports
  • projects, including changes to their members

Composing a domain is recorded as a creation, and rolling one back as an update. Changes made through the API are recorded in the same way as changes made in the interface.