Project activity
The per-project activity feed: one append-only row per domain event. Rows are server-emitted — they cannot be created, edited or deleted. Pass ?projectId[eq]=<id> to fetch a single project’s feed. Exactly one of taskId, listId, documentId and fileId is set on any given row, determined by type; project-level events set none of them. The mapping is: taskCompleted → taskId; listCreated, listMilestoneCreated and listUnlocked → listId; docCreated → documentId; fileUploaded → fileId; usersJoined and usersLeft → memberId; projectCreated → none. Newest first by default.
List Project activities
List projectActivities. Returns a paginated envelope (data, total, limit, hasMore, nextCursor). Filterable by 8 fields. Ordered by -createdAt unless you pass sort.
Required scope: project-activities:read
query Parameters
projectIdRestrict the list to one project. Omit to list projectActivities across every project you can access.
sortField to sort by. Prefix with - for descending (-createdAt); a createdAt:desc / createdAt:asc suffix works too, but never both markers at once. Default: -createdAt. Listing without projectId orders by -updatedAt instead.
cursorOpaque cursor for the next page (the envelope nextCursor).
limitItems per page (1–200, default 50). A larger value is clamped to the cap rather than rejected, so always follow nextCursor instead of assuming one page held everything.
includeTotalWhen true, the response envelope includes the total number of matching rows. Omit it for cheaper pagination.
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
type[eq]Filter where type equals.
type[in]Filter where type is one of (comma-separated list).
projectId[eq]Filter where projectId equals.
projectId[in]Filter where projectId is one of (comma-separated list).
taskId[eq]Filter where taskId equals.
taskId[in]Filter where taskId is one of (comma-separated list).
listId[eq]Filter where listId equals.
listId[in]Filter where listId is one of (comma-separated list).
documentId[eq]Filter where documentId equals.
documentId[in]Filter where documentId is one of (comma-separated list).
fileId[eq]Filter where fileId equals.
fileId[in]Filter where fileId is one of (comma-separated list).
triggeredById[eq]Filter where triggeredById equals.
triggeredById[in]Filter where triggeredById is one of (comma-separated list).
createdAt[gt]Filter where createdAt is greater than.
createdAt[gte]Filter where createdAt is greater than or equal to.
createdAt[lt]Filter where createdAt is less than.
createdAt[lte]Filter where createdAt is less than or equal to.
List Project activities › Responses
OK
The page of results.
totalTotal rows matching the query (across pages).
limithasMorenextCursorOpaque cursor for the next page; null on the last page.
Get Project activity
Retrieve a single Project activity by id.
Required scope: project-activities:read
path Parameters
id^[0-9A-Za-z_!]+$ · requiredId of the Project activity.
query Parameters
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
Get Project activity › Responses
OK
idUnique identifier for this resource.
createdAtWhen the event happened.
projectIdThe project this activity belongs to.
typeWhat happened: projectCreated, usersJoined, usersLeft, listCreated, listMilestoneCreated, listUnlocked, taskCompleted, fileUploaded or docCreated. This value determines which of the reference ids below is set.
taskIdThe task this activity references. Set for taskCompleted; null otherwise.
listIdThe list this activity references. Set for listCreated, listMilestoneCreated and listUnlocked; null otherwise.
documentIdThe document this activity references. Set for docCreated; null otherwise.
fileIdThe file this activity references. Set for fileUploaded; null otherwise.
memberIdThe team member who joined or left. Set for usersJoined and usersLeft; null otherwise.
triggeredByIdThe team member who triggered this event, or null when it was triggered by an automation, an agent or a scheduled job. A member id — resolve it with GET /members/{id}.
The related Project, present only when you pass ?expand=project.
The related Task, present only when you pass ?expand=task.
The related List, present only when you pass ?expand=list.
The related Document, present only when you pass ?expand=document.
The related File, present only when you pass ?expand=file.
The related Team Member, present only when you pass ?expand=triggeredBy.