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

The prospect timeline mirrors what the broker sees in-app for this prospect. With include_rollups=true (the default) it interleaves the prospect's own notes and workflow events (viewed, accepted, communicated, …) with the linked Case Room activity and the underlying contact/company notes; each rolled-up entry carries a subject (room, contact, or company). The prospect's own note rows include an etag for PATCH /api/v1/projects/{projectId}/prospects/{id}/notes/{noteId}. Note rows are mutable (archive / supersede). Audit rows record events and are not edited, except three that can be taken back through their own endpoints: a follow-up task (POST .../tasks/{taskId}/cancel), a task completion (POST .../tasks/{taskId}/reopen) and a manual stage correction (DELETE .../prospects/{id}/stage-override). A row taken back leaves the default timeline; include_archived=true still returns it. The same dual-visibility rules that gate the in-app timeline gate this read.

Path Parameters
  • projectId
    Type: string
    required

    Project ID

  • id
    Type: string
    required

    Prospect ID

Query Parameters
  • cursor
    Type: string

    Opaque cursor token from a previous response for pagination.

  • page_size
    Type: integer | string Format: int32

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

  • type
    Type: string

    Filter by action type: all (default), audit, notes, tasks.

  • include_rollups
    Type: boolean

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

  • include_archived
    Type: boolean

    Include archived rows in the response: archived notes (rows with archivedAt set), canceled tasks, undone task completions and withdrawn stage corrections. Default false hides them. Archived predecessors of a supersede chain are still hidden unless include_superseded is also set.

  • include_superseded
    Type: boolean

    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/{projectId}/prospects/{id}/actions
curl 'https://app.propstreet.com/api/v1/projects/{projectId}/prospects/{id}/actions' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "data": [
    {
      "id": "string",
      "type": "string",
      "event": null,
      "subject": {
        "type": "string",
        "id": "string",
        "name": null
      },
      "timestampUtc": "2026-09-14T08:01:13.747Z",
      "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
  }
}