mark_report_seen

Mark a customer report seen

act entity tenant-private since 2026-10-01

Marks a customer report seen by the caller, through one event of its timeline (through, an event's at) or, left out, its newest: it then shows unread to them only once something newer happens. It never moves back, and writes no event. Open to anyone who may get the report.

Contract

shape
entity
authority
act
evidence
none
subscription
false
permission
any one of: org.member (carried by the caller's role template in the org `org_id`); account.owner (account role owner or higher in the account of the org `org_id`); a deactivated caller is refused first
idempotency
natural
emits
none
MCP tool
mark_report_seen
decision_set
approve, reject
REST
POST https://api.containertradehq.com/v1/cap/mark_report_seen

Through MCP this call returns an approval request first; see Approvals.

Idempotency: keyed by the contract's own inputs: the same inputs replay the first call's result

Inputs

nametyperequiredvalidation
org_idorg_idrequiredtradehq-org-id; 1 to 20 characters
The org the report is in.
report_iduuidrequiredUUID
The report: its CUS ticket's Linear id, as list_reports and get_report answer it.
throughtimestampoptionaltimestamp, RFC 3339
The newest event the caller has seen, by its at on the report's timeline. Absent, the newest event.

Response

  • report_id · string · The report.
  • seen_through · string · How far the caller has seen the report's timeline now: the at of the newest event seen.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "report_id": {
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$",
      "format": "uuid",
      "description": "The report.",
      "x-data-class": "operational"
    },
    "seen_through": {
      "type": "string",
      "format": "date-time",
      "description": "How far the caller has seen the report's timeline now: the at of the newest event seen.",
      "x-data-class": "operational"
    }
  },
  "required": [
    "report_id",
    "seen_through"
  ],
  "additionalProperties": false
}

Refusals

  • report_not_found · 422 · no report by that id in that org is one the caller may get: it does not exist, it is another org's, or it is private to its reporter

The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.

Surfaces

DesktopF
MobileF
APIF
MCPF*
VoiceD2
PushN
OneBoxF
OutboundN
  • MCP: approval required
  • Voice: degraded: confirmation
  • Push: emits nothing
  • Outbound: crosses to no counterparty

Events

None emitted.

Related

confirm_report, follow_report, get_report, reopen_report, reply_to_report, unfollow_report