Lists a project's activity timeline — notes and lifecycle/activity events — with cursor-based pagination, newest first.

​

The project timeline mirrors what the broker sees in-app. With include_rollups=true (the default) it interleaves three streams — the project's own notes/lifecycle events, its prospects' activity, and its Case Rooms' activity — into one chronological feed; each rolled-up entry carries a subject (prospect or room) so you can tell where it came from. The project's own note rows include an etag for PATCH /api/v1/projects/{id}/notes/{noteId}. Note rows are mutable (archive / supersede). Audit rows record events and are not edited, except a prospect's follow-up tasks, task completions and manual stage corrections, which are taken back through that prospect's task and stage-override endpoints. The same dual-visibility rules that gate the in-app timeline gate this read — the API is never broader than the UI.

Path Parameters

  • Project ID

Query Parameters

  • Opaque cursor token from a previous response for pagination.

  • Signed 32-bit integers (commonly used integer type).

  • Filter by action type: all (default), notes (news items included), news, chat, audit, tasks.

  • Interleave the project's prospect and Case Room activity into the timeline (each rolled-up row carries a subject). Default true; set false for the project's own notes and events only.

  • Include archived notes (rows with archivedAt set) in the response. Default false hides them. Archived predecessors of a supersede chain are still hidden unless include_superseded is also set.

  • Include superseded predecessor notes (notes that have been replaced by a newer revision) in the response. Default false returns only the active head of each supersede chain.

Responses

  • application/json
  • application/problem+json
  • application/problem+json
  • application/problem+json
  • application/problem+json
Request Example for get/api/v1/projects/{id}/actions
curl 'https://app.propstreet.com/api/v1/projects/{id}/actions?type=all&include_rollups=true&include_archived=false&include_superseded=false' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "data": [
    {
      "id": "string",
      "type": "string",
      "event": null,
      "subject": {
        "type": "string",
        "id": "string",
        "name": null
      },
      "timestampUtc": "2026-10-16T16:23:10.050Z",
      "user": {
        "id": "string",
        "name": "string"
      },
      "details": {
        "kind": "note",
        "message": "string",
        "noteType": null,
        "contentFormat": null,
        "file": {
          "id": "string",
          "fileName": "string",
          "url": null
        },
        "archivedAt": null,
        "supersedesActivityId": null,
        "supersededByActivityId": null
      },
      "etag": null,
      "cursor": "string"
    }
  ],
  "page": {
    "nextCursor": null,
    "pageSize": 1,
    "hasMore": true
  }
}